From 11d05469368ecfe533c7720e7f5b624f2f8f19fc Mon Sep 17 00:00:00 2001 From: adikro Date: Sat, 7 Mar 2026 22:27:05 +0100 Subject: ... --- hm/env/niri/binds.nix | 58 +++++++++++++++++++++++++++++++---------------- hm/env/niri/niri.nix | 63 ++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 93 insertions(+), 28 deletions(-) (limited to 'hm/env/niri') diff --git a/hm/env/niri/binds.nix b/hm/env/niri/binds.nix index 0dc4ea5..a84d5f5 100644 --- a/hm/env/niri/binds.nix +++ b/hm/env/niri/binds.nix @@ -22,9 +22,6 @@ in XF86AudioMute.action = spawn "sh" "-c" "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; - XF86Tools.action = - spawn "sh" "-c" - "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; # Media Control XF86AudioPlay.action = playerctl "play-pause"; @@ -36,26 +33,46 @@ in XF86MonBrightnessDown.action = spawn "light" "-U" "10"; # --- Applications --- - "Mod+Return".action = spawn "foot"; + "Mod+Return".action = spawn "footclient"; "Mod+D".action = spawn "fuzzel"; - "Mod+C".action = spawn "qalculate-gtk"; "Mod+Shift+D".action = spawn "sh" "-c" "cliphist list | fuzzel --dmenu | cliphist decode | wl-copy"; "Super+Return".action = spawn "sh" "-c" "OBS_WEBSOCKET_URL=$(cat ${obsPass}) obs-cmd replay save"; + "Super+C".action = spawn "qalculate-gtk"; + "Super+D".action = spawn "equibop"; + "Super+B".action = spawn "librewolf"; + "Super+S".action = spawn "spotify"; + "Super+E".action = spawn "thunar"; + # --- Navigation: Columns & Workspaces --- - "Mod+H".action = focus-column-left; - "Mod+L".action = focus-column-right; - "Mod+J".action = focus-workspace-down; - "Mod+K".action = focus-workspace-up; + "Mod+H".action = focus-column-or-monitor-left; + "Mod+L".action = focus-column-or-monitor-right; + "Mod+J".action = focus-window-or-workspace-down; + "Mod+K".action = focus-window-or-workspace-up; + + "Super+H".action = focus-monitor-left; + "Super+L".action = focus-monitor-right; + "Super+Shift+H".action = move-column-left-or-to-monitor-left; + "Super+Shift+L".action = move-column-right-or-to-monitor-right; "Mod+WheelScrollDown".action = focus-column-right; "Mod+WheelScrollUp".action = focus-column-left; - "Super+WheelScrollDown".action = focus-workspace-down; - "Super+WheelScrollUp".action = focus-workspace-up; + "Super+WheelScrollDown".action = focus-window-or-workspace-down; + "Super+WheelScrollUp".action = focus-window-or-workspace-up; - # --- Navigation: Monitors --- - "Super+H".action = focus-monitor-left; - "Super+L".action = focus-monitor-right; + "Mod+Tab" = { + action = + spawn "sh" "-c" + "niri msg action focus-column-right; niri msg action move-column-to-last; niri msg action focus-window-previous"; + repeat = false; + }; + + XF86Tools = { + action = + spawn "sh" "-c" + "niri msg action set-dynamic-cast-window --id $(niri msg --json pick-window | ${pkgs.jq}/bin/jq .id)"; + repeat = false; + }; # --- Window Management --- "Mod+Shift+Q".action = close-window; @@ -66,15 +83,13 @@ in }; # Moving Windows/Columns - "Mod+Shift+H".action = move-column-left; - "Mod+Shift+L".action = move-column-right; + "Mod+Shift+H".action = move-column-left-or-to-monitor-left; + "Mod+Shift+L".action = move-column-right-or-to-monitor-right; "Mod+Shift+J".action = move-window-down-or-to-workspace-down; "Mod+Shift+K".action = move-window-up-or-to-workspace-up; - "Super+Shift+H".action = move-column-to-monitor-left; - "Super+Shift+L".action = move-column-to-monitor-right; - "Mod+Shift+WheelScrollDown".action = move-column-right; "Mod+Shift+WheelScrollUp".action = move-column-left; + "Mod+Shift+WheelScrollDown".action = move-column-right; "Super+Shift+WheelScrollDown".action = move-window-down-or-to-workspace-down; "Super+Shift+WheelScrollUp".action = move-window-up-or-to-workspace-up; @@ -86,13 +101,13 @@ in XF86Launch5.action = consume-or-expel-window-right; XF86Launch6.action = consume-or-expel-window-left; + XF86Launch7.action = switch-preset-column-width; # --- Layout & Sizing --- "Mod+F".action = maximize-column; "Mod+Shift+F".action = fullscreen-window; "Mod+W".action = toggle-column-tabbed-display; "Mod+R".action = switch-preset-column-width; - XF86Launch7.action = switch-preset-column-width; "Mod+Shift+R".action = reset-window-height; "Mod+Minus".action = set-column-width "-10%"; @@ -124,6 +139,9 @@ in ''; repeat = false; }; + + "Mod+grave".action.focus-workspace = 0; + "Mod+Shift+grave".action.move-column-to-workspace = 0; } // (builtins.listToAttrs ( builtins.concatMap ( diff --git a/hm/env/niri/niri.nix b/hm/env/niri/niri.nix index f8e1542..2274259 100644 --- a/hm/env/niri/niri.nix +++ b/hm/env/niri/niri.nix @@ -57,13 +57,12 @@ in }; layout = { empty-workspace-above-first = true; - border = { - width = 2; - # active = ; - }; + border.enable = false; focus-ring = { - width = 2; - # active = ; + enable = true; + width = 3; + active.color = "#7fc8ff"; + inactive.color = "#505050"; }; preset-column-widths = [ { proportion = 1. / 3.; } @@ -84,17 +83,65 @@ in window-rules = [ { matches = [ - { app-id = "Bitwarden"; } + { app-id = "^Bitwarden$"; } + { app-id = "^org\\.keepassxc\\.KeePassXC$"; } ]; block-out-from = "screen-capture"; } + { + matches = [ + { + app-id = "steam"; + title = "^notificationtoasts_\\d+_desktop$"; + } + ]; + default-floating-position = { + x = 10; + y = 10; + relative-to = "bottom-right"; + }; + } + { + matches = [ { is-window-cast-target = true; } ]; + + focus-ring.active.color = "#f38ba8"; + shadow = { + enable = true; + color = "#7d0d2d70"; + }; + } + { + matches = [ { app-id = "^qalculate-gtk$"; } ]; + open-floating = true; + + # Use default-window-height instead of default-floating-height + default-window-height.fixed = 537; + default-column-width.fixed = 802; + + default-floating-position = { + relative-to = "right"; + x = 100; + y = 0; + }; + } + { + matches = [ { app-id = "^sober$"; } ]; + open-fullscreen = true; + } + ]; + layer-rules = [ + { + matches = [ + { namespace = "^notifications$"; } + ]; + block-out-from = "screencast"; + } ]; gestures.hot-corners.enable = false; spawn-at-startup = [ { command = [ "obs" - "--disable-missing-files-check" "--startreplaybuffer" ]; } -- cgit v1.3