remove dependency on niri overlay from sodi and switch to just kdl

This commit is contained in:
Schrottkatze 2026-01-01 18:22:39 +01:00
commit 3cacac4e6a
No known key found for this signature in database
21 changed files with 352 additions and 653 deletions

View file

@ -0,0 +1,78 @@
binds {
// spawn terminal
Mod+Return repeat=false { spawn "kitty"; }
Mod+D repeat=false { spawn "wofi" "-S" "drun" "--allow-images"; }
Mod+I {
spawn "/nix/store/0wnpajfc40akxikz2h483a256ab97idx-rofimoji-6.7.0/bin/rofimoji" "--selector" "wofi" "-f" "alchemical_symbols" "emojis" "braille_patterns" "box_drawing" "chess_symbols" "emoticons" "geometric_shapes" "greek_extended" "math" "mathematical_alphanumeric_symbols" "mathematical_operators" "miscellaneous_symbols" "miscellaneous_mathematical_symbols-a" "miscellaneous_mathematical_symbols-b" "miscellaneous_symbols_and_arrows" "miscellaneous_symbols_and_pictographs" "miscellaneous_technical" "modi" "modifier_tone_letters" "musical_symbols" "nerd_font" "number_forms" "shorthand_format_controls" "specials" "variation_selectors" "vertical_forms" "-a" "copy";
}
Mod+Shift+E { quit; }
Mod+Shift+Q { close-window; }
Mod+Ctrl+Shift+P { power-off-monitors; }
Mod+Shift+Ctrl+Slash allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
Mod+Shift+Slash { show-hotkey-overlay; }
Mod+Shift+C { set-dynamic-cast-window; }
Mod+Ctrl+C { set-dynamic-cast-monitor; }
Mod+Shift+Ctrl+C { clear-dynamic-cast-target; }
// window/columns controls
Mod+H { focus-column-left; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
Mod+Ctrl+H { move-column-left; }
Mod+Ctrl+J { move-window-down; }
Mod+Ctrl+K { move-window-up; }
Mod+Ctrl+L { move-column-right; }
Mod+R { switch-preset-column-width; }
Mod+G { toggle-overview; }
Mod+V { toggle-window-floating; }
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
// monitor controls
Mod+Shift+H { focus-monitor-left; }
Mod+Shift+J { focus-monitor-down; }
Mod+Shift+K { focus-monitor-up; }
Mod+Shift+L { focus-monitor-right; }
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
// column editing stuffs
Mod+BracketLeft { consume-or-expel-window-left; }
Mod+BracketRight { consume-or-expel-window-right; }
Mod+C { center-column; }
Mod+Minus { set-column-width "-5%"; }
Mod+Equal { set-column-width "+5%"; }
Mod+Shift+Minus { set-window-height "-10%"; }
Mod+Shift+Equal { set-window-height "+10%"; }
Mod+Shift+W { toggle-column-tabbed-display; }
Mod+F { maximize-column; }
Alt+F { expand-column-to-available-width; }
Mod+Shift+F { maximize-window-to-edges; }
Mod+Ctrl+F { fullscreen-window; }
Mod+Shift+Ctrl+F { toggle-windowed-fullscreen; }
// media keys
XF86AudioLowerVolume \
allow-when-locked=true \
{ spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; }
XF86AudioMicMute \
allow-when-locked=true \
{ spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
XF86AudioMute \
allow-when-locked=true \
{ spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
XF86AudioRaiseVolume \
allow-when-locked=true \
{ spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; }
}

View file

@ -0,0 +1,17 @@
input {
keyboard {
xkb {
layout "us"
variant "altgr-intl"
}
repeat-delay 600
repeat-rate 25
track-layout "global"
}
touchpad {
dwt
dwtp
natural-scroll
}
mouse { accel-profile "flat"; }
}

View file

@ -0,0 +1,19 @@
overview {
backdrop-color "110000"
zoom 0.381966
workspace-shadow {
offset x=0 y=10
softness 60
color "#7f00008f"
}
}
recent-windows {
debounce-ms 1500
open-delay-ms 300
highlight {
active-color "f69ecf"
padding 5
corner-radius 2.5
}
}

View file

@ -0,0 +1,12 @@
layer-rule {
match namespace="notifications"
block-out-from "screen-capture"
}
window-rule {
match app-id="^signal|Element|org.gnome.Evolution$"
match title="^.*(Discord|Beispiel Screenshare block Bug|Bitwarden|Träwelling).*$"
exclude title="^.*((Schrottkatze|Statistics|Leaderboard) - Träwelling|chaos.social|Nekoverse|catgirl.cloud).*$"
exclude is-floating=true
block-out-from "screen-capture"
}

View file

@ -0,0 +1,32 @@
// handle steam grabbing focus 1000 times on startup
window-rule {
match app-id="steam" title="Steam"
open-focused false
}
// position steam notifs correctly: https://github.com/YaLTeR/niri/wiki/Application-Issues
window-rule {
match app-id="steam" title="^notificationtoasts_[\\d]+_desktop$"
open-focused false
border { off; }
shadow { off; }
baba-is-float false
default-floating-position relative-to="bottom-right" x=0 y=0
}
// fix guild wars
window-rule {
match app-id="steam_app_1284210" title="Guild Wars 2"
match app-id="(steam_app_[0-9]+|[Mm]inecraft.*|gamescope)"
border { off; }
shadow { off; }
}
window-rule {
match app-id="vesktop" is-floating=true title="vesktop"
geometry-corner-radius 5
}
environment {
ELECTRON_OZONE_PLATFORM_HINT "auto"
}

View file

@ -0,0 +1,9 @@
screenshot-path "~/Pictures/screenshots/%Y-%m-%dT%H:%M:%S.png"
binds {
Ctrl+Print { screenshot-screen; }
Mod+Ctrl+S { screenshot-screen; }
Mod+Shift+S { screenshot-window; }
Shift+Print { screenshot-window; }
Mod+S { screenshot; }
Print { screenshot; }
}

View file

@ -0,0 +1,73 @@
prefer-no-csd
cursor {
xcursor-theme "phinger-cursors-dark"
xcursor-size 16
hide-when-typing
hide-after-inactive-ms 10000
}
layout {
gaps 15
struts {
left 0
right 0
top 0
bottom 0
}
focus-ring { off; }
border {
on
width 3
active-gradient angle=135 from="#f69ecf" in="oklch shorter hue" relative-to="window" to="#5bcefa"
inactive-gradient angle=135 from="#f69ecf" in="oklch shorter hue" relative-to="window" to="#ff9a56"
}
tab-indicator {
hide-when-single-tab
gap 2
width 5
length total-proportion=0.500000
position "left"
gaps-between-tabs 0
corner-radius 3
active-color "#5bcefa"
inactive-color "#3c3836"
}
default-column-width
center-focused-column "never"
}
window-rule {
match is-floating=true
exclude app-id="steam_app_[0-9]+"
shadow {
on
offset x=0 y=0
softness 40
color "#bab9e5af"
inactive-color "#fa9d99af"
}
baba-is-float true
}
window-rule {
geometry-corner-radius 1
clip-to-geometry true
}
window-rule {
match is-window-cast-target=true
border {
on
active-gradient angle=135 \
from="#64de50" \
in="oklch shorter hue" \
relative-to="window" \
to="#5bcefa"
inactive-gradient angle=135 \
from="#64de50" \
in="oklch shorter hue" \
relative-to="window" \
to="#ff9a56"
}
}

View file

@ -0,0 +1,58 @@
// WS Social
workspace "social"
spawn-at-startup "signal-desktop"
spawn-at-startup ".evolution-wrapped_"
spawn-at-startup "vesktop"
spawn-at-startup "deltachat"
window-rule {
match app-id="^(signal|Element|org.gnome.Evolution|discord|steam|DeltaChat)$"
open-on-workspace "social"
}
// WS Browser
workspace "browser"
spawn-at-startup "firefox"
spawn-at-startup "obsidian"
window-rule {
match app-id="^firefox|Chromium-browser|obsidian$"
open-on-workspace "browser"
}
binds {
Mod+P { focus-workspace-up; }
Mod+N { focus-workspace-down; }
Mod+Ctrl+P { move-workspace-up; }
Mod+Ctrl+N { move-workspace-down; }
Mod+Shift+P { move-column-to-workspace-up; }
Mod+Shift+N { move-column-to-workspace-down; }
Mod+Q { focus-workspace "social"; }
Mod+W { focus-workspace "browser"; }
Mod+E { focus-workspace 3; }
Mod+Ctrl+Q { move-column-to-workspace "social"; }
Mod+Ctrl+W { move-column-to-workspace "browser"; }
Mod+Ctrl+E { move-column-to-workspace 3; }
Mod+1 { focus-workspace 4; }
Mod+2 { focus-workspace 5; }
Mod+3 { focus-workspace 6; }
Mod+4 { focus-workspace 7; }
Mod+5 { focus-workspace 8; }
Mod+6 { focus-workspace 9; }
Mod+7 { focus-workspace 10; }
Mod+8 { focus-workspace 11; }
Mod+9 { focus-workspace 12; }
Mod+Ctrl+1 { move-column-to-workspace 4; }
Mod+Ctrl+2 { move-column-to-workspace 5; }
Mod+Ctrl+3 { move-column-to-workspace 6; }
Mod+Ctrl+4 { move-column-to-workspace 7; }
Mod+Ctrl+5 { move-column-to-workspace 8; }
Mod+Ctrl+6 { move-column-to-workspace 9; }
Mod+Ctrl+7 { move-column-to-workspace 10; }
Mod+Ctrl+8 { move-column-to-workspace 11; }
Mod+Ctrl+9 { move-column-to-workspace 12; }
}