summaryrefslogtreecommitdiff
path: root/hm/env/niri
diff options
context:
space:
mode:
authoradikro <adikro@disroot.org>2026-03-07 22:27:05 +0100
committeradikro <adikro@disroot.org>2026-03-07 22:27:05 +0100
commit11d05469368ecfe533c7720e7f5b624f2f8f19fc (patch)
treec666f76157b6f9158a2faa723efbf10d1d3dab03 /hm/env/niri
parentcacaadb79a73fca27bd8bbc0a33a0713d2379655 (diff)
...
Diffstat (limited to 'hm/env/niri')
-rw-r--r--hm/env/niri/binds.nix58
-rw-r--r--hm/env/niri/niri.nix63
2 files changed, 93 insertions, 28 deletions
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 = <decoration>;
- };
+ border.enable = false;
focus-ring = {
- width = 2;
- # active = <decoration>;
+ 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"
];
}