Files
DCGOS/dotfiles/.config/niri/config.kdl
2025-12-01 18:35:32 +08:00

296 lines
9.2 KiB
Plaintext
Vendored

input {
disable-power-key-handling
focus-follows-mouse max-scroll-amount="0%"
warp-mouse-to-focus
mouse {
accel-profile "flat"
scroll-factor 0.5
}
touchpad {
accel-profile "flat"
dwt
natural-scroll
scroll-factor 0.5
tap
}
}
binds {
// App Launcher
Super+Space { spawn "fuzzel"; }
// Shortcuts
Super+Shift+Slash { show-hotkey-overlay; }
Super+E { spawn "nemo"; }
Super+B { spawn "firefox";}
Super+L { spawn "hyprlock";}
Super+M { spawn-sh "$HOME/.config/niri/switch_monitors.sh"; }
Ctrl+Super+Q { spawn "wlogout"; }
Super+Return { spawn "alacritty"; }
Super+S { screenshot; }
Super+Ctrl+S { screenshot-window; }
Super+Ctrl+Alt+Print { screenshot-screen; }
// Window actions
Super+F { fullscreen-window; }
Super+Q { close-window; }
// Workspace jumping
Super+1 { focus-workspace 1; }
Super+2 { focus-workspace 2; }
Super+3 { focus-workspace 3; }
Super+4 { focus-workspace 4; }
Super+5 { focus-workspace 5; }
Super+6 { focus-workspace 6; }
Super+7 { focus-workspace 7; }
Super+8 { focus-workspace 8; }
Super+9 { focus-workspace 9; }
Super+0 { focus-workspace 10; }
// Window movement between Workspace
Super+Shift+1 { move-window-to-workspace 1; }
Super+Shift+2 { move-window-to-workspace 2; }
Super+Shift+3 { move-window-to-workspace 3; }
Super+Shift+4 { move-window-to-workspace 4; }
Super+Shift+5 { move-window-to-workspace 5; }
Super+Shift+6 { move-window-to-workspace 6; }
Super+Shift+7 { move-window-to-workspace 7; }
Super+Shift+8 { move-window-to-workspace 8; }
Super+Shift+9 { move-window-to-workspace 9; }
Super+Shift+0 { move-window-to-workspace 10; }
// Window focus movement
/// Using familier keys
Alt+Tab { focus-column-right; }
Alt+Shift+Tab { focus-column-left; }
/// Using Arrow keys
Super+Left { focus-column-left; }
Super+Down { focus-window-down; }
Super+Up { focus-window-up; }
Super+Right { focus-column-right; }
/// Using Vim-like keys
Super+Shift+H { focus-column-left; }
Super+Shift+J { focus-window-down; }
Super+Shift+K { focus-window-up; }
Super+Shift+L { focus-column-right; }
// Window direction movement
/// Using Arrow keys
Super+Shift+Left { move-column-left; }
Super+Shift+Down { move-window-down; }
Super+Shift+Up { move-window-up; }
Super+Shift+Right { move-column-right; }
Super+Home { focus-column-first; }
Super+End { focus-column-last; }
Super+Ctrl+Home { move-column-to-first; }
Super+Ctrl+End { move-column-to-last; }
Super+Shift+Alt+Left { focus-monitor-left; }
Super+Shift+Alt+Down { focus-monitor-down; }
Super+Shift+Alt+Up { focus-monitor-up; }
Super+Shift+Alt+Right { focus-monitor-right; }
Super+Shift+Ctrl+Left { move-column-to-monitor-left; }
Super+Shift+Ctrl+Down { move-column-to-monitor-down; }
Super+Shift+Ctrl+Up { move-column-to-monitor-up; }
Super+Shift+Ctrl+Right { move-column-to-monitor-right; }
Super+Page_Down { focus-workspace-down; }
Super+Page_Up { focus-workspace-up; }
Super+U { focus-workspace-down; }
Super+I { focus-workspace-up; }
Super+Ctrl+Page_Down { move-column-to-workspace-down; }
Super+Ctrl+Page_Up { move-column-to-workspace-up; }
Super+Ctrl+U { move-column-to-workspace-down; }
Super+Ctrl+I { move-column-to-workspace-up; }
Super+Shift+Page_Down { move-workspace-down; }
Super+Shift+Page_Up { move-workspace-up; }
Super+Shift+U { move-workspace-down; }
Super+Shift+I { move-workspace-up; }
Super+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Super+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
Super+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Super+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
Super+WheelScrollRight { focus-column-right; }
Super+WheelScrollLeft { focus-column-left; }
Super+Ctrl+WheelScrollRight { move-column-right; }
Super+Ctrl+WheelScrollLeft { move-column-left; }
Super+Shift+WheelScrollDown { focus-column-right; }
Super+Shift+WheelScrollUp { focus-column-left; }
Super+Ctrl+Shift+WheelScrollDown { move-column-right; }
Super+Ctrl+Shift+WheelScrollUp { move-column-left; }
// Alternatively, there are commands to move just a single window:
// Super+Ctrl+1 { move-window-to-workspace 1; }
// Switches focus between the current and the previous workspace.
// Super+Tab { focus-workspace-previous; }
Super+Comma { consume-window-into-column; }
Super+Period { expel-window-from-column; }
Super+R { switch-preset-column-width; }
Super+Shift+R { reset-window-height; }
Super+Shift+F { maximize-column; }
Super+C { center-column; }
Super+Minus { set-column-width "-10%"; }
Super+Equal { set-column-width "+10%"; }
// Finer height adjustments when in column with other windows.
Super+Shift+Minus { set-window-height "-10%"; }
Super+Shift+Equal { set-window-height "+10%"; }
// Actions to switch layouts.
// Note: if you uncomment these, make sure you do NOT have
// a matching layout switch hotkey configured in xkb options above.
// Having both at once on the same hotkey will break the switching,
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
// Super+Space { switch-layout "next"; }
// Super+Shift+Space { switch-layout "prev"; }
// The quit action will show a confirmation dialog to avoid accidental exits.
Super+Shift+E { quit; }
// Powers off the monitors. To turn them back on, do any input like
// moving the mouse or pressing any other key.
Super+Shift+P { power-off-monitors; }
// Volume control
XF86AudioLowerVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "-2"; }
XF86AudioMute allow-when-locked=true { spawn "swayosd-client" "--output-volume" "mute-toggle"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "+2"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "swayosd-client" "--brightness" "-5"; }
XF86MonBrightnessUp allow-when-locked=true { spawn "swayosd-client" "--brightness" "+5"; }
// Volume control (bonus)
Ctrl+Alt+Down allow-when-locked=true { spawn "swayosd-client" "--output-volume" "-2"; }
Ctrl+Alt+Up allow-when-locked=true { spawn "swayosd-client" "--output-volume" "+2"; }
}
environment {
CURRENT_COMPOSITOR "niri"
XDG_CURRENT_DESKTOP "Niri"
XDG_SESSION_DESKTOP "Niri"
}
hotkey-overlay {
skip-at-startup
}
prefer-no-csd
screenshot-path "~/Pictures/Screenshots/SCREENSHOT-%Y-%m-%d-%H:%M:%S.png"
spawn-at-startup "fcitx5" "-d" "-r"
spawn-at-startup "nm-applet"
spawn-at-startup "blueman-applet"
spawn-at-startup "sh" "-c" "dbus-update-activation-environment --systemd --all && systemctl --user stop niri-session.target && systemctl --user start niri-session.target"
spawn-at-startup "swayosd-server"
spawn-at-startup "swww-daemon"
spawn-at-startup "swww" "img" "$HOME/Git/DCGOS/dotfiles/.local/share/wallpapers/yohoho.jpg"
spawn-at-startup "swww" "restore"
spawn-at-startup "waybar"
spawn-at-startup "lxqt-policykit-agent"
window-rule {
block-out-from "screen-capture"
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
match app-id=r#"^org\.gnome\.World\.Secrets$"#
// Use this instead if you want them visible on third-party screenshot tools.
// block-out-from "screencast"
}
window-rule {
clip-to-geometry true
geometry-corner-radius 10
}
animations {
// Uncomment to turn off all animations.
// You can also put "off" into each individual animation to disable it.
// off
// Slow down all animations by this factor. Values below 1 speed them up instead.
// slowdown 3.0
// Individual animations.
workspace-switch {
spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001
}
window-open {
duration-ms 150
curve "ease-out-expo"
}
window-close {
duration-ms 150
curve "ease-out-quad"
}
horizontal-view-movement {
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
}
window-movement {
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
}
window-resize {
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
}
config-notification-open-close {
spring damping-ratio=0.6 stiffness=1000 epsilon=0.001
}
screenshot-ui-open {
duration-ms 200
curve "ease-out-quad"
}
}
layout {
center-focused-column "on-overflow"
border {
width 1
active-color "#313244FF"
inactive-color "#1e1e2eFF"
}
default-column-width { proportion 1.00; }
focus-ring {
off
active-color "#31324400"
inactive-color "#31324400"
width 3
}
gaps 2
preset-column-widths {
proportion 0.33333
proportion 0.5
proportion 0.66667
}
struts {
left 0.1
right 0.1
top 0
bottom 0
}
}