Compare commits

..

16 Commits

Author SHA1 Message Date
506abc9f1c xsession: rename .xsession to .xinitrc (note: restow needed) 2026-07-18 12:28:02 +02:00
6949fb75a0 kakoune: add keys to send selection and paragraph to the repl 2026-07-18 00:27:15 +02:00
6034323fb9 lazygit-use-zsh: trick lazygit to use zsh instead of bash 2026-07-17 23:08:57 +02:00
6e82a49ba6 shell: add aliases for ash shell 2026-07-17 23:08:48 +02:00
4719e8d355 kakoune: use editorconfig; lazygit: disable auto fetch 2026-07-17 23:08:41 +02:00
2d79c5728a kakoune: fix for busybox awk: use middle dot unicode character instead of unicode escape for nbsp 2026-07-17 23:08:35 +02:00
7c91379f6c kakoune: add kak-tree-sitter config for odin 2026-07-17 23:08:25 +02:00
f7a7f031ff kakoune: add kak-tree-sitter config for gotmpl
modify file
~/.local/share/kak-tree-sitter/queries/gotmpl/7275b7f85014aad7e15d4987ec4f2249572eecfb/injections.scm
adding:
((text) @injection.content
 (#set! injection.language "html")
 (#set! injection.combined))
2026-07-17 23:08:20 +02:00
994e3b4662 kakoune: add kak-tree-sitter config for templ 2026-07-17 23:08:13 +02:00
6a5f15c86b kakoune: use kak-tree-sitter, update five-colors themes 2026-07-17 23:08:08 +02:00
61b6984dca lupan-set-theme: now works with busybox readlink 2026-07-17 23:08:00 +02:00
fdc95f72e3 kakoune: keys to comment block and line 2026-07-17 23:07:50 +02:00
f375076fe1 waybar: restart on theme change 2026-07-17 23:07:43 +02:00
ac18f6be8b mango config with waybar 2026-07-17 23:07:18 +02:00
e0aa5923e9 kak: remove packages: themes and peneira 2026-06-29 22:31:59 +02:00
3d1c25ebfe default to dwm on X11 2026-06-29 22:31:59 +02:00
20 changed files with 571 additions and 23 deletions

View File

@@ -0,0 +1,34 @@
# gotmpl
[grammar.gotmpl.source.git]
url = "https://github.com/ngalaiko/tree-sitter-go-template"
pin = "aa71f63de226c5592dfbfc1f29949522d7c95fac"
[language.gotmpl.queries.source.git]
url = "https://github.com/helix-editor/helix"
pin = "7275b7f85014aad7e15d4987ec4f2249572eecfb"
# odin
[grammar.odin.source.git]
url = "https://github.com/tree-sitter-grammars/tree-sitter-odin"
pin = "d2ca8efb4487e156a60d5bd6db2598b872629403"
[grammar.odin]
compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."]
link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "odin.so"]
[language.odin.queries.source.git]
url = "https://github.com/helix-editor/helix"
pin = "7275b7f85014aad7e15d4987ec4f2249572eecfb"
# templ
[grammar.templ.source.git]
url = "https://github.com/vrischmann/tree-sitter-templ"
pin = "04bae7c82de2fcfec94254fef50f5f1c5924f5f5"
[grammar.templ]
compile_args = ["-c", "-fpic", "../scanner.c", "../parser.c", "-I", ".."]
link_args = ["-shared", "-fpic", "scanner.o", "parser.o", "-o", "templ.so"]
[language.templ.queries.source.git]
url = "https://github.com/helix-editor/helix"
pin = "7275b7f85014aad7e15d4987ec4f2249572eecfb"

View File

@@ -121,5 +121,55 @@ evaluate-commands %sh{
set-face global SnippetsNextPlaceholders $bg,$green2
set-face global SnippetsOtherPlaceholders $bg,$yellow2
# kak-tree-sitter
set-face global ts_attribute $green3
set-face global ts_comment $gray
set-face global ts_constant $violet2
set-face global ts_conceal $red1
set-face global ts_constructor $red1
set-face global ts_diff_plus $green2
set-face global ts_diff_minus $red2
set-face global ts_diff_delta $blue2
set-face global ts_error $red2
set-face global ts_function $blue2
set-face global ts_hint $green2
set-face global ts_info $blue2
set-face global ts_keyword $violet3
set-face global ts_label $red1
set-face global ts_bold $green2+b
set-face global ts_markup_heading $red3
set-face global ts_markup_italic $green2+i
set-face global ts_markup_list_checked $red2
set-face global ts_markup_list_numbered $red2
set-face global ts_markup_list_unchecked $red2
set-face global ts_markup_list_unnumbered $red2
set-face global ts_markup_link_label $green2
set-face global ts_markup_link_url $blue2
set-face global ts_markup_link_uri $blue2
set-face global ts_markup_link_text $red1
set-face global ts_markup_quote $blue3
set-face global ts_markup_raw $yellow2
set-face global ts_markup_strikethrough $red2+s
set-face global ts_namespace $green3
set-face global ts_operator $red2
set-face global ts_property $green3
set-face global ts_punctuation $red3
set-face global ts_special $red3
set-face global ts_spell $red1+c
set-face global ts_string $yellow2
set-face global ts_string_regex $yellow1+b
set-face global ts_string_regexp $yellow1+b
set-face global ts_string_escape $yellow1+b
set-face global ts_string_special $yellow1+b
set-face global ts_string_symbol $yellow1+b
set-face global ts_tag $green2
set-face global ts_tag_error $red2+c
set-face global ts_text $red1
set-face global ts_text_title $red3
set-face global ts_type $green2
set-face global ts_variable $blue3
set-face global ts_warning $yellow2+c
"
}

View File

@@ -121,5 +121,55 @@ evaluate-commands %sh{
set-face global SnippetsNextPlaceholders $bg,$green2
set-face global SnippetsOtherPlaceholders $bg,$yellow2
# kak-tree-sitter
set-face global ts_attribute $green3
set-face global ts_comment $gray
set-face global ts_constant $violet2
set-face global ts_conceal $red1
set-face global ts_constructor $red1
set-face global ts_diff_plus $green2
set-face global ts_diff_minus $red2
set-face global ts_diff_delta $blue2
set-face global ts_error $red2
set-face global ts_function $blue2
set-face global ts_hint $green2
set-face global ts_info $blue2
set-face global ts_keyword $violet3
set-face global ts_label $red1
set-face global ts_bold $green2+b
set-face global ts_markup_heading $red3
set-face global ts_markup_italic $green2+i
set-face global ts_markup_list_checked $red2
set-face global ts_markup_list_numbered $red2
set-face global ts_markup_list_unchecked $red2
set-face global ts_markup_list_unnumbered $red2
set-face global ts_markup_link_label $green2
set-face global ts_markup_link_url $blue2
set-face global ts_markup_link_uri $blue2
set-face global ts_markup_link_text $red1
set-face global ts_markup_quote $blue3
set-face global ts_markup_raw $yellow2
set-face global ts_markup_strikethrough $red2+s
set-face global ts_namespace $green3
set-face global ts_operator $red2
set-face global ts_property $green3
set-face global ts_punctuation $red3
set-face global ts_special $red3
set-face global ts_spell $red1+c
set-face global ts_string $yellow2
set-face global ts_string_regex $yellow1+b
set-face global ts_string_regexp $yellow1+b
set-face global ts_string_escape $yellow1+b
set-face global ts_string_special $yellow1+b
set-face global ts_string_symbol $yellow1+b
set-face global ts_tag $green2
set-face global ts_tag_error $red2+c
set-face global ts_text $red1
set-face global ts_text_title $red3
set-face global ts_type $green2
set-face global ts_variable $blue3
set-face global ts_warning $yellow2+c
"
}

View File

@@ -6,7 +6,11 @@ set-option global ui_options terminal_assistant=none
hook global WinCreate .* %{
add-highlighter window/number-lines number-lines -relative -hlcursor
}
add-highlighter global/ show-matching
hook global BufCreate .*\.templ %{ set buffer filetype templ }
hook global BufCreate .*\.html.tmpl %{ set buffer filetype gotmpl }
hook global WinCreate ^[^*]+$ %{editorconfig-load}
# LOCAL
@@ -34,6 +38,8 @@ map global -docstring 'Grep previous match' file-mode 'p' ': grep-prev-match<ret
map global -docstring 'Grep current file' file-mode 'l' ':grep-file '
map global -docstring 'Grep current file' file-mode 'L' ': grep-file %val{selection}<ret>'
map global -docstring 'Delete buffer' file-mode 'x' ': delete-buffer '
map global -docstring 'REPL send selection' file-mode 'u' ': repl-send-text<ret>'
map global -docstring 'REPL send paragraph' file-mode 'U' ': repl-send-paragraph<ret>'
declare-user-mode git-mode
map global -docstring 'Git' user 'g' ': enter-user-mode git-mode<ret>'
@@ -69,6 +75,12 @@ map global -docstring 'Next' make-mode 'n' ': make-next-error<ret>'
map global -docstring 'Previous' make-mode 'p' ': make-previous-error<ret>'
map global -docstring 'General messages' make-mode 'g' ': set window make_error_pattern "^([^:\n]+):(\d+):(?:(\d+):)? ([^\n]+)?"<ret>'
declare-user-mode code-mode
map global -docstring 'Code' user 'c' ': enter-user-mode code-mode<ret>'
map global -docstring 'Comment block' code-mode 'b' ': comment-block<ret>'
map global -docstring 'Comment line' code-mode 'l' ': comment-line<ret>'
evaluate-commands %sh{
if [ -n "$WAYLAND_DISPLAY" ]; then
echo "
@@ -117,6 +129,10 @@ define-command -override open-create-in-dir %{
execute-keys ': edit ' %sh{dirname "$kak_buffile"}/
}
define-command -override repl-send-paragraph %{
execute-keys -draft '<a-i>p: repl-send-text<ret>'
}
define-command git-log-show-current-commit %{
execute-keys ';<a-/>^commit\s[0-9a-f]+<ret>b'
git show %val{selection}
@@ -234,6 +250,14 @@ bundle kak-harpoon 'https://codeberg.org/raiguard/kak-harpoon' %{
harpoon-add-bindings
}
# TREE SITTER
eval %sh{ kak-tree-sitter -dks --init $kak_session }
define-command -override tree-sitter-user-after-highlighter %{
add-highlighter -override buffer/show-matching show-matching
}
# LOCAL
define-command set-dark-or-light-colorscheme %{

View File

@@ -2,7 +2,7 @@
for (i = 3; i < NF; ++i) {
if ($i ~ /^[0-9]+$/) {
j = match($0, "[ ]+" $(i-1) "[ ]+" $i " ")
print substr($0, 0, j - 1) "\u00a0" $(i-1) "\u00a0" $i
print substr($0, 0, j - 1) "·" $(i-1) "·" $i
break
}
}

View File

@@ -1,5 +1,5 @@
BEGIN {
n = split(ENVIRON["kak_text"], a, "\u00a0")
n = split(ENVIRON["kak_text"], a, "·")
line = a[3]
if (n == 3 && line ~ /^[0-9]+/) {
pat = a[1]

View File

@@ -2,7 +2,7 @@
for (i = 3; i < NF; ++i) {
if ($i ~ /^[0-9]+$/) {
j = match($0, "[ ]+" $(i-1) "[ ]+" $i " ")
print substr($0, 0, j - 1) "\u00a0" $(i-1) "\u00a0" $i "\u00a0" $(i+1)
print substr($0, 0, j - 1) "·" $(i-1) "·" $i "·" $(i+1)
break
}
}

View File

@@ -1,5 +1,5 @@
BEGIN {
n = split(ENVIRON["kak_text"], a, "\u00a0")
n = split(ENVIRON["kak_text"], a, "·")
line = a[3]
if (n == 4 && line ~ /^[0-9]+/) {
pat = a[1]

View File

@@ -0,0 +1 @@
/bin/zsh

2
lazygit-use-zsh/bin/lazygit Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/sh
PATH="$PATH:$HOME/.config/lazygit/bin" exec /usr/bin/lazygit "$@"

View File

@@ -11,3 +11,6 @@ gui:
theme:
selectedLineBgColor:
- reverse
git:
autoFetch: false

View File

@@ -0,0 +1,311 @@
# More option see https://mangowm.github.io/docs/configuration
exec-once=waybar
exec-once=openrc -q -U gui
# Window effect
blur=0
blur_layer=0
blur_optimized=1
blur_params_num_passes = 2
blur_params_radius = 5
blur_params_noise = 0.02
blur_params_brightness = 0.9
blur_params_contrast = 0.9
blur_params_saturation = 1.2
shadows = 0
layer_shadows = 0
shadow_only_floating = 1
shadows_size = 10
shadows_blur = 15
shadows_position_x = 0
shadows_position_y = 0
shadowscolor= 0x000000ff
border_radius=6
no_radius_when_single=0
focused_opacity=1.0
unfocused_opacity=1.0
# Animation Configuration(support type:zoom,slide)
# tag_animation_direction: 1-horizontal,0-vertical
animations=1
layer_animations=1
animation_type_open=slide
animation_type_close=slide
animation_fade_in=1
animation_fade_out=1
tag_animation_direction=1
zoom_initial_ratio=0.4
zoom_end_ratio=0.8
fadein_begin_opacity=0.5
fadeout_begin_opacity=0.8
animation_duration_move=500
animation_duration_open=400
animation_duration_tag=350
animation_duration_close=800
animation_duration_focus=0
animation_curve_open=0.46,1.0,0.29,1
animation_curve_move=0.46,1.0,0.29,1
animation_curve_tag=0.46,1.0,0.29,1
animation_curve_close=0.08,0.92,0,1
animation_curve_focus=0.46,1.0,0.29,1
animation_curve_opafadeout=0.5,0.5,0.5,0.5
animation_curve_opafadein=0.46,1.0,0.29,1
# Scroller Layout Setting
scroller_structs=20
scroller_default_proportion=0.8
scroller_focus_center=0
scroller_prefer_center=0
edge_scroller_pointer_focus=1
edge_scroller_focus_allow_speed=0.0
scroller_default_proportion_single=1.0
scroller_proportion_preset=0.5,0.8,1.0
# Master-Stack Layout Setting
new_is_master=1
default_mfact=0.55
default_nmaster=1
smartgaps=0
# Dwindle Layout Setting
dwindle_smart_split=0
dwindle_drop_simple_split=1
dwindle_manual_split=0
dwindle_hsplit=1
dwindle_vsplit=1
dwindle_preserve_split=0
# Overview Setting
hotarea_size=10
enable_hotarea=0
ov_tab_mode=1
ov_no_resize=1
overviewgappi=5
overviewgappo=30
# Misc
no_border_when_single=0
axis_bind_apply_timeout=100
focus_on_activate=1
idleinhibit_ignore_visible=0
sloppyfocus=1
warpcursor=1
focus_cross_monitor=0
focus_cross_tag=0
enable_floating_snap=0
snap_distance=30
cursor_size=24
drag_tile_to_tile=1
drag_tile_small=1
# keyboard
repeat_rate=25
repeat_delay=600
numlockon=0
xkb_rules_layout=pl
# Trackpad
# need relogin to make it apply
disable_trackpad=0
tap_to_click=1
tap_and_drag=1
drag_lock=1
trackpad_natural_scrolling=0
disable_while_typing=1
left_handed=0
middle_button_emulation=0
swipe_min_threshold=1
# mouse
# need relogin to make it apply
mouse_natural_scrolling=0
# Appearance
gappih=5
gappiv=5
gappoh=10
gappov=10
scratchpad_width_ratio=0.8
scratchpad_height_ratio=0.9
borderpx=4
rootcolor=0x201b14ff
bordercolor=0x444444ff
dropcolor=0x8FBA7C55
splitcolor=0xEB441EFF
focuscolor=0xc9b890ff
maximizescreencolor=0x89aa61ff
urgentcolor=0xad401fff
scratchpadcolor=0x516c93ff
globalcolor=0xb153a7ff
overlaycolor=0x14a57cff
# layout support:
# tile,scroller,grid,deck,monocle,center_tile,vertical_tile,vertical_scroller
tagrule=id:1,layout_name:tile
tagrule=id:2,layout_name:tile
tagrule=id:3,layout_name:tile
tagrule=id:4,layout_name:tile
tagrule=id:5,layout_name:tile
tagrule=id:6,layout_name:tile
tagrule=id:7,layout_name:tile
tagrule=id:8,layout_name:tile
tagrule=id:9,layout_name:tile
# Key Bindings
# key name refer to `xev` or `wev` command output,
# mod keys name: super,ctrl,alt,shift,none
# reload config
bind=SUPER,r,reload_config
# menu and terminal
bind=SUPER,p,spawn,rofi -show drun
bind=SUPER,Return,spawn,foot
# lock and toggle theme
bind=SUPER+CTRL+SHIFT,l,spawn,swaylock
bind=SUPER+CTRL+SHIFT,t,spawn,lupan-set-theme toggle
# exit
bind=SUPER+SHIFT,q,quit
bind=SUPER+SHIFT,c,killclient,
# switch window focus
bind=SUPER,Tab,focusstack,next
bind=SUPER,h,focusdir,left
bind=SUPER,l,focusdir,right
bind=SUPER,k,focusdir,up
bind=SUPER,j,focusdir,down
# swap window
bind=SUPER+SHIFT,k,exchange_client,up
bind=SUPER+SHIFT,j,exchange_client,down
bind=SUPER+SHIFT,h,exchange_client,left
bind=SUPER+SHIFT,l,exchange_client,right
# switch window status
bind=SUPER,g,toggleglobal,
bind=SUPER,Tab,toggleoverview,
bind=SUPER,backslash,togglefloating,
bind=SUPER,m,togglemaximizescreen,
bind=SUPER,f,togglefullscreen,
bind=SUPER+SHIFT,f,togglefakefullscreen,
bind=SUPER,i,minimized,
bind=SUPER,o,toggleoverlay,
bind=SUPER+SHIFT,I,restore_minimized
bind=SUPER,z,toggle_scratchpad
# scroller layout
bind=SUPER,e,set_proportion,1.0
bind=SUPER,x,switch_proportion_preset,
bind=alt+super+ctrl,Left,scroller_stack,left
bind=alt+super+ctrl,Right,scroller_stack,right
bind=alt+super+ctrl,Up,scroller_stack,up
bind=alt+super+ctrl,Down,scroller_stack,down
#dwindle layout(manual split mode)
bind=SUPER+shift,Return,dwindle_toggle_split_direction
# switch layout
bind=SUPER,n,switch_layout
bind=SUPER+CTRL,c,setlayout,center_tile
bind=SUPER+CTRL,d,setlayout,deck
bind=SUPER+CTRL,e,setlayout,vertical_deck
bind=SUPER+CTRL,f,setlayout,fair
bind=SUPER+CTRL,g,setlayout,grid
bind=SUPER+CTRL,i,setlayout,vertical_fair
bind=SUPER+CTRL,r,setlayout,right_tile
bind=SUPER+CTRL,s,setlayout,scroller
bind=SUPER+CTRL,t,setlayout,tile
bind=SUPER+CTRL,u,setlayout,vertical_scroller
bind=SUPER+CTRL,v,setlayout,vertical_tile
bind=SUPER+CTRL,w,setlayout,dwindle
# tag switch
bind=SUPER,Left,viewtoleft,0
bind=SUPER+CTRL,Left,viewtoleft_have_client,0
bind=SUPER,Right,viewtoright,0
bind=SUPER+CTRL,Right,viewtoright_have_client,0
bind=CTRL+SHIFT+SUPER,Left,tagtoleft,0
bind=CTRL+SHIFT+SUPER,Right,tagtoright,0
bind=SUPER+Alt,h,viewtoleft_have_client,0
bind=SUPER+Alt,l,viewtoright_have_client,0
bind=SUPER,1,view,1,0
bind=SUPER,2,view,2,0
bind=SUPER,3,view,3,0
bind=SUPER,4,view,4,0
bind=SUPER,5,view,5,0
bind=SUPER,6,view,6,0
bind=SUPER,7,view,7,0
bind=SUPER,8,view,8,0
bind=SUPER,9,view,9,0
# tag: move client to the tag and focus it
# tagsilent: move client to the tag and not focus it
# bind=Alt,1,tagsilent,1
bind=SUPER+shift,1,tag,1,0
bind=SUPER+shift,2,tag,2,0
bind=SUPER+shift,3,tag,3,0
bind=SUPER+shift,4,tag,4,0
bind=SUPER+shift,5,tag,5,0
bind=SUPER+shift,6,tag,6,0
bind=SUPER+shift,7,tag,7,0
bind=SUPER+shift,8,tag,8,0
bind=SUPER+shift,9,tag,9,0
# monitor switch
bind=SUPER+alt+shift,Left,focusmon,left
bind=SUPER+alt+shift,Right,focusmon,right
bind=SUPER+Alt,Left,tagmon,left
bind=SUPER+Alt,Right,tagmon,right
bind=SUPER,comma,focusmon,left
bind=SUPER,period,focusmon,right
bind=SUPER+shift,comma,tagmon,left
bind=SUPER+shift,period,tagmon,right
# gaps
bind=SUPER+SHIFT,X,incgaps,1
bind=SUPER+SHIFT,Z,incgaps,-1
bind=SUPER+SHIFT,R,togglegaps
# movewin
bind=SUPER+CTRL,k,movewin,+0,-50
bind=SUPER+CTRL,j,movewin,+0,+50
bind=SUPER+CTRL,h,movewin,-50,+0
bind=SUPER+CTRL,l,movewin,+50,+0
# resizewin
bind=SUPER+CTRL+ALT,Up,resizewin,+0,-50
bind=SUPER+CTRL+ALT,Down,resizewin,+0,+50
bind=SUPER+CTRL+ALT,Left,resizewin,-50,+0
bind=SUPER+CTRL+ALT,Right,resizewin,+50,+0
bind=SUPER+CTRL+ALT,k,resizewin,+0,-50
bind=SUPER+CTRL+ALT,j,resizewin,+0,+50
bind=SUPER+CTRL+ALT,h,resizewin,-50,+0
bind=SUPER+CTRL+ALT,l,resizewin,+50,+0
# Mouse Button Bindings
# btn_left and btn_right can't bind none mod key
mousebind=SUPER,btn_left,moveresize,curmove
mousebind=NONE,btn_middle,togglemaximizescreen,0
mousebind=SUPER,btn_right,moveresize,curresize
# Axis Bindings
axisbind=SUPER,UP,viewtoleft_have_client
axisbind=SUPER,DOWN,viewtoright_have_client
# layer rule
layerrule=animation_type_open:zoom,layer_name:rofi
layerrule=animation_type_close:zoom,layer_name:rofi
monitorrule=name:^HDMI-A-1$,scale:2,x:0
monitorrule=name:^HDMI-A-2$,scale:2,x:1920

View File

@@ -0,0 +1,20 @@
{
"modules-left": [
"ext/workspaces",
"dwl/window"
],
"modules-right": [
"tray",
"clock"
],
"ext/workspaces": {
"format": "{icon}",
"ignore-hidden": true,
"on-click": "activate",
"on-click-right": "deactivate",
"sort-by-id": true
},
"dwl/window": {
"format": "[{layout}] {title}"
}
}

View File

@@ -0,0 +1,12 @@
* {
background-color: #282e38;
color: #a29e98;
}
#workspaces button.active {
border-bottom: 3px solid #04785d;
}
#workspaces button.urgent {
border-bottom: 3px solid #c37583;
}

View File

@@ -0,0 +1,12 @@
* {
background-color: #f6ede0;
color: #696257;
}
#workspaces button.active {
border-bottom: 3px solid #278a6e;
}
#workspaces button.urgent {
border-bottom: 3px solid #d0818f;
}

View File

@@ -0,0 +1,25 @@
@import url("file:///home/lupan/.config/waybar/dark.css");
* {
font-family: HurmitNerdFont;
font-size: 12px;
}
#workspaces {
padding: 0 0.5rem;
}
#workspaces button {
padding: 0 3px;
border-radius: 0;
border-bottom: 3px solid transparent;
}
#window {
border-bottom: 3px solid transparent;
}
#clock {
padding: 0 0.5rem;
border-bottom: 3px solid transparent;
}

5
shell/.ashrc Normal file
View File

@@ -0,0 +1,5 @@
alias k=kak
alias kc='kak -c "$(kak -l | fzf)"'
alias kd='kak -s "$(printf %s $PWD | xargs basename)"'
alias lg=lazygit
alias z='cd $(fzf --walker dir --walker-root ~)'

View File

@@ -38,12 +38,14 @@ fi
export GOPATH=~/.cache/go
export GOBIN=~/.local/bin
export ENV=~/.ashrc
# start X or Hyprland at login
if [ -z "$DISPLAY" -a -z "$WAYLAND_DISPLAY" -a "$(tty)" = /dev/tty1 ]; then
if which /usr/bin/sx > /dev/null; then
exec /usr/bin/sx ~/.xsession
exec /usr/bin/sx ~/.xinitrc
elif which /usr/bin/startx > /dev/null; then
exec /usr/bin/startx ~/.xsession
exec /usr/bin/startx
elif which niri > /dev/null; then
exec niri
elif which river argen > /dev/null; then
@@ -55,10 +57,6 @@ if [ -z "$DISPLAY" -a -z "$WAYLAND_DISPLAY" -a "$(tty)" = /dev/tty1 ]; then
elif which river rill > /dev/null; then
export XKB_DEFAULT_LAYOUT=pl
exec river -c rill
if which /usr/bin/sx > /dev/null; then
exec /usr/bin/sx ~/.xsession
elif which /usr/bin/startx > /dev/null; then
exec /usr/bin/startx ~/.xsession
elif which Hyprland > /dev/null && [ -d ~/.config/hypr ]; then
exec Hyprland
elif which river > /dev/null && [ -d ~/.config/river ]; then

View File

@@ -23,8 +23,8 @@ fi
pkill -USR1 '^dwm$'
XRES=$(readlink -e ~/.Xresources)
if [ -n "$XRES" ]; then
XRES=$(readlink -f ~/.Xresources)
if [ -f "$XRES" ]; then
if [ "$THEME" = dark ]; then
sed -i 's/^#undef THEME_DARK/#define THEME_DARK/' "$XRES"
elif [ "$THEME" = light ]; then
@@ -35,11 +35,11 @@ if [ -n "$XRES" ]; then
fi
# Alacritty
AYML=$(readlink -e ~/.config/alacritty/alacritty.yml)
if [ -n "$AYML" ]; then
AYML=$(readlink -f ~/.config/alacritty/alacritty.yml)
if [ -f "$AYML" ]; then
sed -i "s/^colors: [*].*/colors: *$THEME/" "$AYML"
fi
ATOML=$(readlink -e ~/.config/alacritty/alacritty.toml)
ATOML=$(readlink -f ~/.config/alacritty/alacritty.toml)
if [ -f "$ATOML" ]; then
sed -i "s#^import =.*#import = [\"~/.config/alacritty/$THEME.toml\"]#" "$ATOML"
fi
@@ -52,29 +52,30 @@ elif [ "$THEME" = light ]; then
fi
# Foot
FOOT=$(readlink -e ~/.config/foot/foot.ini)
if [ -n "$FOOT" ]; then
FOOT=$(readlink -f ~/.config/foot/foot.ini)
if [ -f "$FOOT" ]; then
sed -i "s/^initial-color-theme .*/initial-color-theme = $THEME/" "$FOOT"
fi
# GTK
XSET=$(readlink -e ~/.config/xsettingsd/xsettingsd.conf)
if [ -n "$XSET" ]; then
XSET=$(readlink -f ~/.config/xsettingsd/xsettingsd.conf)
if [ -f "$XSET" ]; then
sed -i -E "s#(Net/ThemeName) .*#\\1 \"${GTK_THEME}\"#" "$XSET"
pkill -HUP -x xsettingsd
gsettings set org.gnome.desktop.interface gtk-theme "${GTK_THEME}"
fi
# niri
NIRI=$(readlink -e ~/.config/niri/config.kdl)
if [ -n "$NIRI" ]; then
NIRI=$(readlink -f ~/.config/niri/config.kdl)
if [ -f "$NIRI" ]; then
sed -i -E "s%^(include) \"(dark|light).kdl\".*%\\1 \"${THEME}.kdl\"%" "$NIRI"
fi
# waybar
WCSS=$(readlink -e ~/.config/waybar/style.css)
WCSS=$(readlink -f ~/.config/waybar/style.css)
if [ -f "$WCSS" ]; then
sed -i -E "s#file:///.*/(light|dark)[.]css#file://$HOME/.config/waybar/$THEME.css#" "$WCSS"
killall -SIGUSR2 waybar
fi
for session in $(kak -l); do