From e93b3960694d0fa96b95958710d3aaeb3fcf8393 Mon Sep 17 00:00:00 2001 From: livie Date: Thu, 12 Mar 2026 21:12:33 +0200 Subject: [PATCH] Updates + import cachyos modified niri --- config/niri/cfg/animation.kdl | 32 ++++++++ config/niri/cfg/autostart.kdl | 5 ++ config/niri/cfg/display.kdl | 26 ++++++ config/niri/cfg/input.kdl | 26 ++++++ config/niri/cfg/keybinds.kdl | 147 ++++++++++++++++++++++++++++++++++ config/niri/cfg/layout.kdl | 47 +++++++++++ config/niri/cfg/misc.kdl | 27 +++++++ config/niri/cfg/rules.kdl | 14 ++++ config/niri/config.kdl | 7 ++ install.conf.yaml | 1 + zprofile | 14 ++-- zshrc | 8 ++ 12 files changed, 347 insertions(+), 7 deletions(-) create mode 100644 config/niri/cfg/animation.kdl create mode 100644 config/niri/cfg/autostart.kdl create mode 100644 config/niri/cfg/display.kdl create mode 100644 config/niri/cfg/input.kdl create mode 100644 config/niri/cfg/keybinds.kdl create mode 100644 config/niri/cfg/layout.kdl create mode 100644 config/niri/cfg/misc.kdl create mode 100644 config/niri/cfg/rules.kdl create mode 100644 config/niri/config.kdl diff --git a/config/niri/cfg/animation.kdl b/config/niri/cfg/animation.kdl new file mode 100644 index 0000000..4c9a913 --- /dev/null +++ b/config/niri/cfg/animation.kdl @@ -0,0 +1,32 @@ + animations { + workspace-switch { + spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001 + } + window-open { + duration-ms 200 + curve "ease-out-quad" + } + window-close { + duration-ms 200 + curve "ease-out-cubic" + } + horizontal-view-movement { + spring damping-ratio=1.0 stiffness=900 epsilon=0.0001 + } + window-movement { + spring damping-ratio=1.0 stiffness=800 epsilon=0.0001 + } + window-resize { + spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001 + } + config-notification-open-close { + spring damping-ratio=0.6 stiffness=1200 epsilon=0.001 + } + screenshot-ui-open { + duration-ms 300 + curve "ease-out-quad" + } + overview-open-close { + spring damping-ratio=1.0 stiffness=900 epsilon=0.0001 + } + } diff --git a/config/niri/cfg/autostart.kdl b/config/niri/cfg/autostart.kdl new file mode 100644 index 0000000..7a47de4 --- /dev/null +++ b/config/niri/cfg/autostart.kdl @@ -0,0 +1,5 @@ +// ────────────── Startup Applications ────────────── +// https://github.com/YaLTeR/niri/wiki/Configuration:-Miscellaneous#spawn-sh-at-startup + + spawn-sh-at-startup "/usr/lib'polkit/gnome/polkit-gnome-authentication-agent-1 &" // Polkit + spawn-sh-at-startup "qs -c noctalia-shell" \ No newline at end of file diff --git a/config/niri/cfg/display.kdl b/config/niri/cfg/display.kdl new file mode 100644 index 0000000..6ea4f50 --- /dev/null +++ b/config/niri/cfg/display.kdl @@ -0,0 +1,26 @@ +// ────────────── Output Configuration ────────────── +// You can run `niri msg outputs` to get the correct name for your displays. +// You will have to remove "/-" and edit it before it takes effect. +// https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs + +output "DP-1" { + mode "1920x1080@239.760" // Set resolution and refresh rate + scale 1 // No scaling (use 2 for HiDPI) + position x=1920 y=0 + variable-refresh-rate + focus-at-startup +} + +output "DP-3" { + mode "1920x1080@59.988" + scale 1 + position x=0 y=0 +} + +output "DP-2" { + mode "1920x1080@119.982" + scale 1 + position x=3840 y=0 + variable-refresh-rate +} + diff --git a/config/niri/cfg/input.kdl b/config/niri/cfg/input.kdl new file mode 100644 index 0000000..bef1aaa --- /dev/null +++ b/config/niri/cfg/input.kdl @@ -0,0 +1,26 @@ +// ────────────── Input Configuration ────────────── +// https://github.com/YaLTeR/niri/wiki/Configuration:-Input + +input { + keyboard { + xkb { + layout "jp,fi" + model "pc105" + options "compose:ralt,grp:win_space_toggle" + } + numlock // Enable numlock on startup + } + + touchpad { + tap // Enable tap-to-click + //natural-scroll // Enable natural (macOS-style) scrolling + } + + mouse { + accel-speed 0.0 + accel-profile "flat" + } + + //focus-follows-mouse // Automatically focus windows under the mouse pointer + //workspace-auto-back-and-forth // Enable workspace back & forth switching +} diff --git a/config/niri/cfg/keybinds.kdl b/config/niri/cfg/keybinds.kdl new file mode 100644 index 0000000..e91f67d --- /dev/null +++ b/config/niri/cfg/keybinds.kdl @@ -0,0 +1,147 @@ +binds { + + // ────────────── Keybindings ────────────── + // https://github.com/YaLTeR/niri/wiki/Configuration:-Key-Bindings + + // ─── noctalia-shell keybinds ─── + // https://docs.noctalia.dev/getting-started/keybinds/ + + Mod+Shift+ESCAPE { show-hotkey-overlay; } + + // ─── Applications ─── + Mod+Return hotkey-overlay-title="Open Terminal: Kitty" { spawn-sh "env kitty -1"; } + Mod+D hotkey-overlay-title="Open App Launcher: noctalia launcher" { spawn-sh "qs -c noctalia-shell ipc call launcher toggle"; } + Mod+B hotkey-overlay-title="Open Browser: firefox" { spawn "firefox"; } + Mod+ALT+L hotkey-overlay-title="Lock Screen: noctalia lock" { spawn-sh "qs -c noctalia-shell ipc call lockScreen lock"; } + Mod+Shift+E hotkey-overlay-title="Session Menu: noctalia sessionMenu" { spawn-sh "qs -c noctalia-shell ipc call sessionMenu toggle"; } + + // Please choose your own file manager. + Mod+E hotkey-overlay-title="File Manager: Thunar" { spawn "thunar"; } + + // ─── Media Controls ─── + XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume increase"; } + XF86AudioLowerVolume allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume decrease"; } + XF86AudioMute allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume muteOutput"; } + XF86AudioMicMute allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume muteInput"; } + XF86AudioNext allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media next"; } + XF86AudioPrev allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media previous"; } + XF86AudioPlay allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media playPause"; } + XF86AudioPause allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media playPause"; } + + // ─── Brightness Controls ─── + XF86MonBrightnessUp allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness increase"; } + XF86MonBrightnessDown allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness decrease"; } + + // ─── Window Movement and Focus ─── + Mod+Shift+Q { close-window; } + + Mod+Left { focus-column-left; } + Mod+H { focus-column-left; } + Mod+Right { focus-column-right; } + Mod+L { focus-column-right; } + Mod+Up { focus-window-up; } + Mod+K { focus-window-up; } + Mod+Down { focus-window-down; } + Mod+J { focus-window-down; } + + Mod+CTRL+Left { move-column-left; } + Mod+CTRL+H { move-column-left; } + Mod+CTRL+Right { move-column-right; } + Mod+CTRL+L { move-column-right; } + Mod+CTRL+UP { move-window-up; } + Mod+CTRL+K { move-window-up; } + Mod+CTRL+Down { move-window-down; } + Mod+CTRL+J { move-window-down; } + + Mod+Home { focus-column-first; } + Mod+End { focus-column-last; } + Mod+CTRL+Home { move-column-to-first; } + Mod+CTRL+End { move-column-to-last; } + + Mod+Shift+Left { focus-monitor-left; } + Mod+Shift+Right { focus-monitor-right; } + // Mod+Shift+UP { focus-monitor-up; } + // Mod+Shift+Down { focus-monitor-down; } + + Mod+Shift+CTRL+Left { move-column-to-monitor-left; } + Mod+Shift+CTRL+Right { move-column-to-monitor-right; } + // Mod+Shift+CTRL+UP { move-column-to-monitor-up; } + // Mod+Shift+CTRL+Down { move-column-to-monitor-down; } + + Mod+ALT+Left { move-workspace-to-monitor-left; } + Mod+ALT+Right { move-workspace-to-monitor-right; } + + // ─── Workspace Switching ─── + Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } + Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } + Mod+CTRL+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } + Mod+CTRL+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } + + Mod+WheelScrollRight { focus-column-right; } + Mod+WheelScrollLeft { focus-column-left; } + Mod+CTRL+WheelScrollRight { move-column-right; } + Mod+CTRL+WheelScrollLeft { move-column-left; } + + Mod+Shift+WheelScrollDown { focus-column-right; } + Mod+Shift+WheelScrollUp { focus-column-left; } + Mod+CTRL+Shift+WheelScrollDown { move-column-right; } + Mod+CTRL+Shift+WheelScrollUp { move-column-left; } + + Mod+1 { focus-workspace 1; } + Mod+2 { focus-workspace 2; } + Mod+3 { focus-workspace 3; } + Mod+4 { focus-workspace 4; } + Mod+5 { focus-workspace 5; } + Mod+6 { focus-workspace 6; } + Mod+7 { focus-workspace 7; } + Mod+8 { focus-workspace 8; } + Mod+9 { focus-workspace 9; } + + Mod+CTRL+1 { move-column-to-workspace 1; } + Mod+CTRL+2 { move-column-to-workspace 2; } + Mod+CTRL+3 { move-column-to-workspace 3; } + Mod+CTRL+4 { move-column-to-workspace 4; } + Mod+CTRL+5 { move-column-to-workspace 5; } + Mod+CTRL+6 { move-column-to-workspace 6; } + Mod+CTRL+7 { move-column-to-workspace 7; } + Mod+CTRL+8 { move-column-to-workspace 8; } + Mod+CTRL+9 { move-column-to-workspace 9; } + + Mod+TAB { focus-workspace-previous; } + + // ─── Layout Controls ─── + Mod+Shift+F { expand-column-to-available-width; } + Mod+C { center-column; } + Mod+CTRL+C { center-visible-columns; } + Mod+Slash { set-column-width "-10%"; } + Mod+Backslash { set-column-width "+10%"; } + Mod+Shift+Slash { set-window-height "-10%"; } + Mod+Shift+Backslash { set-window-height "+10%"; } + + // ─── Modes ─── + Mod+T { toggle-window-floating; } + Mod+F11 { fullscreen-window; } + Mod+F { maximize-window-to-edges; } + Mod+CTRL+F { toggle-windowed-fullscreen; } + Mod+W { toggle-column-tabbed-display; } + + // ─── Screenshots ─── + // CTRL+Shift+1 { screenshot; } + // CTRL+Shift+2 { screenshot-screen; } + // CTRL+Shift+3 { screenshot-window; } + Print { spawn-sh "~/scripts/slink_screenshot.sh full -p ~/Screenshots"; } + CTRL+Print { spawn-sh "~/scripts/slink_screenshot.sh gui -p ~/Screenshots"; } + Mod+Shift+S { spawn-sh "~/scripts/slink_screenshot.sh gui -p ~/Screenshots"; } + + F8 { spawn "xfce4-terminal" "--drop-down"; } + + // ─── Emergency Escape Key ─── + // Use this when a fullscreen app blocks your keybinds. + // It disables any active keyboard shortcut inhibitor, restoring control. + Mod+ESCAPE allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } + + // ─── Exit / Power ─── + CTRL+ALT+Delete { quit; } // Also quits Niri + Mod+Shift+P { power-off-monitors; } // Turn off screens (useful for OLED or privacy) + Mod+O repeat=false { toggle-overview; } +} diff --git a/config/niri/cfg/layout.kdl b/config/niri/cfg/layout.kdl new file mode 100644 index 0000000..2227755 --- /dev/null +++ b/config/niri/cfg/layout.kdl @@ -0,0 +1,47 @@ + layout { + gaps 9 // Gap between windows + center-focused-column "never" // Don’t auto-center focused column + + background-color "transparent" // <- needed for noctalia-shell to set wallpaper + + default-column-width { + proportion 1.0 + } + + preset-column-widths { + proportion 0.33333 + proportion 0.5 + proportion 0.66667 + } + + struts { + top 0 + bottom -3 + left -3 + right -3 + } + + focus-ring { + // off + on + width 2 + active-color "#7fc8ff" + inactive-color "#505050" + urgent-color "#9b0000" + // active-gradient from="#80c8ff" to="#bbddff" angle=45 + // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" + // urgent-gradient from="#800" to="#a33" angle=45 + } + + border { + off + // on + width 2 + active-color "#ffc87f" + inactive-color "#505050" + urgent-color "#9b0000" + // active-gradient from="#ffbb66" to="#ffc880" angle=45 relative-to="workspace-view" + // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" in="srgb-linear" + // urgent-gradient from="#800" to="#a33" angle=45 + } + } diff --git a/config/niri/cfg/misc.kdl b/config/niri/cfg/misc.kdl new file mode 100644 index 0000000..3fdfb10 --- /dev/null +++ b/config/niri/cfg/misc.kdl @@ -0,0 +1,27 @@ + prefer-no-csd + screenshot-path null + + environment { + ELECTRON_OZONE_PLATFORM_HINT "auto" + QT_QPA_PLATFORM "wayland" + QT_WAYLAND_DISABLE_WINDOWDECORATION "1" + XDG_SESSION_TYPE "wayland" + XDG_CURRENT_DESKTOP "niri" + QT_QPA_PLATFORMTHEME "gtk3" + PROTON_ENABLE_WAYLAND "1" + } + + debug { + // Allows notification actions and window activation from Noctalia. + honor-xdg-activation-with-invalid-serial + } + + hotkey-overlay { + skip-at-startup + } + + gestures { + hot-corners { + off + } + } diff --git a/config/niri/cfg/rules.kdl b/config/niri/cfg/rules.kdl new file mode 100644 index 0000000..c353222 --- /dev/null +++ b/config/niri/cfg/rules.kdl @@ -0,0 +1,14 @@ + window-rule { + geometry-corner-radius 5 // Set every window radius to 20 + clip-to-geometry true + } + + window-rule { + match app-id="steam" title=r#"^notificationtoasts_\d+_desktop$"# + default-floating-position x=10 y=10 relative-to="bottom-right" + } + + layer-rule { + match namespace="^noctalia-wallpaper*" + place-within-backdrop true + } diff --git a/config/niri/config.kdl b/config/niri/config.kdl new file mode 100644 index 0000000..f442b96 --- /dev/null +++ b/config/niri/config.kdl @@ -0,0 +1,7 @@ +include "./cfg/autostart.kdl" +include "./cfg/keybinds.kdl" +include "./cfg/input.kdl" +include "./cfg/display.kdl" +include "./cfg/layout.kdl" +include "./cfg/rules.kdl" +include "./cfg/misc.kdl" diff --git a/install.conf.yaml b/install.conf.yaml index 7486204..7b89768 100644 --- a/install.conf.yaml +++ b/install.conf.yaml @@ -7,6 +7,7 @@ - link: ~/.config/kitty: config/kitty + ~/.config/niri: config/niri ~/.config/powerline: config/powerline ~/.config/ranger: config/ranger ~/.vimrc: vimrc diff --git a/zprofile b/zprofile index d11d8b5..37d727a 100644 --- a/zprofile +++ b/zprofile @@ -3,10 +3,10 @@ export PATH="$PATH:/home/livie/.cargo/bin" export PATH="$PATH:/home/livie/.local/bin" # input method -if command -v fcitx5 >/dev/null 2>&1; then - export GTK_IM_MODULE=fcitx - export QT_IM_MODULE=fcitx - export XMODIFIERS=@im=fcitx - export SDL_IM_MODULE=fcitx - export GLFW_IM_MODULE=ibus -fi +# if command -v fcitx5 >/dev/null 2>&1; then +# export GTK_IM_MODULE=fcitx +# export QT_IM_MODULE=fcitx +# export XMODIFIERS=@im=fcitx +# export SDL_IM_MODULE=fcitx +# export GLFW_IM_MODULE=ibus +# fi diff --git a/zshrc b/zshrc index b617bd1..8da3cbf 100644 --- a/zshrc +++ b/zshrc @@ -23,6 +23,10 @@ else alias ls='ls --color=auto' fi +alias k='kubectl' +alias kx='kubectx' +alias kn='kubens' + command -v bat >/dev/null 2>&1 && alias cat='bat' # The following lines were added by compinstall @@ -70,3 +74,7 @@ _fzf_compgen_dir() { powerline-daemon -q . /usr/share/powerline/bindings/zsh/powerline.zsh +source /usr/share/nvm/init-nvm.sh + +export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gcr/ssh" +