{ config, flake, osConfig, workspaceStrings, ... }: let niri = config.lib.niri.actions; inherit (flake.config.machines) devices; mars = devices.mars.name; deimos = devices.deimos.name; host = osConfig.networking.hostName; deviceLogic = d: m: if host == deimos then "${d}" else if host == mars then "${m}" else ""; in { binds = { "Super+z".action = niri.spawn "obsidian"; "Super+l".action = niri.spawn "slack"; "Super+h".action = niri.spawn "feishin"; "Super+g".action = niri.spawn "scrcpy"; "Super+k".action = niri.spawn "ghostty -e nu -e y"; "Super+s".action = niri.spawn "steam"; "Super+r".action = niri.spawn "ghostty -e zellij a dotfiles"; "Super+n".action = niri.spawn "signal-desktop"; "Super+t".action = niri.spawn "zeditor"; "Super+b".action = niri.spawn "floorp"; "Super+x".action = niri.spawn "freetube"; "Super+v".action = niri.spawn "vesktop"; "Super+m".action = niri.spawn "element-desktop"; "Super+d".action = niri.spawn "ghostty"; "Super+p".action = niri.spawn "bitwarden"; "Super+Space".action = niri.spawn "fuzzel"; "Super+Tab".action = niri.close-window; "Super+u".action = niri.maximize-column; "Super+comma".action = niri.focus-workspace-down; "Super+period".action = niri.focus-workspace-up; "Super+f".action = niri.swap-window-left; "Super+o".action = niri.swap-window-right; "Super+w".action = niri.switch-preset-column-width; # "Ctrl+Alt+1".action = niri.move-window-to-workspace workspaceStrings.workspace0 # "Ctrl+Alt+2".action = niri.move-window-to-workspace workspaceStrings.workspace1 # "Ctrl+Alt+3".action = niri.move-window-to-workspace workspaceStrings.workspace2 # "Ctrl+Alt+4".action = niri.move-window-to-workspace workspaceStrings.workspace3 # "Ctrl+Alt+5".action = niri.move-window-to-workspace workspaceStrings.workspace4 # "Super+Enter".action = niri.toggle-overview; # "Super+1".action = niri.focus-workspace workspaceStrings.workspace0; # "Super+2".action = niri.focus-workspace workspaceStrings.workspace1; # "Super+3".action = niri.focus-workspace workspaceStrings.workspace2; # "Super+4".action = niri.focus-workspace workspaceStrings.workspace3; # "Super+5".action = niri.focus-workspace workspaceStrings.workspace4; "Super+1".action = niri.focus-column-or-monitor-left; "Super+2".action = niri.focus-window-or-workspace-up; "Super+3".action = niri.focus-window-or-workspace-down; "Super+4".action = niri.focus-column-or-monitor-right; "Super+Shift+t".action = niri.spawn "ghostty"; "Super+Shift+s".action = niri.spawn "flameshot gui"; "Super+Shift+period".action = niri.spawn "emote"; "Super+Shift+Tab".action = niri.fullscreen-window; "Ctrl+Alt+c".action = niri.move-column-left; "Ctrl+Alt+i".action = niri.move-column-right; "Ctrl+Alt+f".action = niri.set-column-width "-10%"; "Ctrl+Alt+o".action = niri.set-column-width "+10%"; "XF86MonBrightnessUp".action = niri.spawn "brightnessctl -d ${deviceLogic "amdgpu_bl1" ""} s +10%"; "XF86MonBrightnessDown".action = niri.spawn "brightnessctl -d ${deviceLogic "amdgpu_bl1" ""} s 10%-"; "XF86AudioRaiseVolume".action = niri.spawn "pactl set-sink-volume @DEFAULT_SINK@ +5%"; "XF86AudioLowerVolume".action = niri.spawn "pactl set-sink-volume @DEFAULT_SINK@ -5%"; "XF86AudioMute".action = niri.spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle"; }; }