nix/homes/modules/wm/river.nix

79 lines
2.3 KiB
Nix

{spkgs, ...}: {
wayland.windowManager.river = let
layout = "rivertile";
in {
enable = true;
xwayland.enable = true;
package = spkgs.river-classic; # FIX: using spkgs version as zls is broken rn ;-;
settings = let
main = "Super";
# applications
terminal = "kitty";
browser = "firefox";
in {
default-layout = "${layout}";
output-layout = "${layout}";
border-width = 1;
spawn = [
''${layout}''
"awww-daemon"
"waybar"
];
map.normal = {
"${main} C" = "close"; # close focused window
"${main}+Alt Delete" = "exit"; # exit river
# app launcher
"${main} D" = ''spawn "pkill -x rofi || rofi -show drun -show-icons"'';
"Alt Tab" = ''spawn "pkill -x rofi || rofi -modi window -show window -show-icons"'';
# spawn applications
"${main} T" = ''spawn "${terminal}"'';
"${main} R" = ''spawn "${browser}"'';
# move focused view to top of layout stack
"${main} N" = ''zoom'';
# focus next/previous view
"${main} J" = "focus-view previous";
"${main} K" = "focus-view next";
# move to next/previous output
"${main} H" = "focus-output previous";
"${main} L" = "focus-output next";
# swap next/previous view
"${main}+Alt J" = "swap previous";
"${main}+Alt K" = "swap next";
# send view to next/previous output
# and switch to that output (wip)
"${main}+Alt H" = "send-to-output previous";
#"${main}+Alt H" = "focus-output previous";
"${main}+Alt L" = "send-to-output next";
#"${main}+Alt L" = "focus-output next";
# move views
#"${main}+Alt H" = "move left 100";
#"${main}+Alt J" = "move down 100";
#"${main}+Alt K" = "move up 100";
#"${main}+Alt L" = "move right 100";
# snap views
#"${main}+Control H" = "snap left";
#"${main}+Control J" = "snap down";
#"${main}+Control K" = "snap up";
#"${main}+Control L" = "snap right";
# resize views
#"${main}+Shift H" = "resize horizontal -100";
#"${main}+Shift J" = "resize vertical -100";
#"${main}+Shift K" = "resize vertical 100";
#"${main}+Shift L" = "resize horizontal 100";
};
};
};
}