nix/wm/river.nix

188 lines
8.6 KiB
Nix
Raw Normal View History

2024-07-28 23:30:50 +02:00
let
lock-command = "swaylock";
2024-09-18 12:03:23 +02:00
in {
2024-07-28 23:30:50 +02:00
wayland.windowManager.river = {
enable = true;
extraConfig = ''
rivertile -view-padding 0 -outer-padding 0 &
pkill waybar
2024-07-29 10:08:16 +02:00
waybar &
wlr-randr --output DP-1 --pos 1280,0 --output HDMI-A-1 --pos 0,56 # void desktop double monitor setup
wlr-randr --output DP-5 --pos 3840,1192 --output DP-4 --pos 5120,1136 --output eDP-1 --pos 5120,2216 # t470 triple monitor setup
# audio volume control
riverctl map -repeat normal None XF86AudioLowerVolume spawn 'wpctl set-volume @DEFAULT_SINK@ 1%-'
riverctl map -repeat normal None XF86AudioRaiseVolume spawn 'wpctl set-volume @DEFAULT_SINK@ 1%+'
# screen backlight brightness control
riverctl map -repeat normal None XF86MonBrightnessDown spawn 'brightnessctl set 1%-'
riverctl map -repeat normal None XF86MonBrightnessUp spawn 'brightnessctl set 1%+'
riverctl map -repeat normal Super 'Prior' spawn 'ddcutil setvcp 10 + 10'
riverctl map -repeat normal Super 'Next' spawn 'ddcutil setvcp 10 - 10'
# layout management
riverctl map -repeat normal Super+Alt H send-layout-cmd rivertile 'main-ratio -0.05'
riverctl map -repeat normal Super+Alt L send-layout-cmd rivertile 'main-ratio +0.05'
2024-07-28 23:30:50 +02:00
'';
settings = {
border-width = 2;
keyboard-layout = "-variant altgr-intl -options ctrl:nocaps us";
2024-07-28 23:30:50 +02:00
default-layout = "rivertile";
focus-follows-cursor = "normal";
map = {
normal = {
# screen lock & suspend
"Control+Alt L" = "spawn '${lock-command}'";
"Control+Alt+Shift L" = "spawn '${lock-command} & systemctl suspend'";
2024-07-28 23:30:50 +02:00
# terminal
"Super Return" = "spawn kitty";
# frequent programs
"Super Q" = "spawn firefox";
2024-11-03 13:13:03 +01:00
"Super A" = "spawn emacs";
2024-07-28 23:30:50 +02:00
"Super D" = "spawn discord";
"Super G" = "spawn dolphin";
# program launcher
"Super R" = "spawn fuzzel";
# quit river
"Super+Alt+Control Q" = "exit";
# manipulate current view
"Super W" = "close";
"Super M" = "toggle-fullscreen";
"Super S" = "toggle-float";
"Super F" = "toggle-fullscreen";
# view focus
"Super H" = "focus-view left";
"Super J" = "focus-view down";
"Super K" = "focus-view up";
"Super L" = "focus-view right";
"Super I" = "focus-view previous";
"Super O" = "focus-view next";
# view movement
"Super+Shift H" = "swap left";
"Super+Shift J" = "swap down";
"Super+Shift K" = "swap up";
"Super+Shift L" = "swap right";
"Super+Shift I" = "swap previous";
"Super+Shift O" = "swap next";
# layout management
"Super+Alt J" = "send-layout-cmd rivertile 'main-count -1'";
"Super+Alt K" = "send-layout-cmd rivertile 'main-count +1'";
2024-07-28 23:30:50 +02:00
# tag (workspace) management
## rotate workspace
"Super Right" = "spawn 'river-shifttags --num-tags 10 --shifts 1'";
"Super Left" = "spawn 'river-shifttags --num-tags 10 --shifts -1'";
##### fr layout
2024-07-28 23:30:50 +02:00
## switch to workspace
"Super ampersand" = "set-focused-tags 1";
"Super eacute" = "set-focused-tags 2";
"Super quotedbl" = "set-focused-tags 4";
"Super apostrophe" = "set-focused-tags 8";
"Super parenleft" = "set-focused-tags 16";
"Super minus" = "set-focused-tags 32";
"Super egrave" = "set-focused-tags 64";
"Super underscore" = "set-focused-tags 128";
"Super ccedilla" = "set-focused-tags 256";
"Super agrave" = "set-focused-tags 512";
## toggle workspace display
"Super+Alt ampersand" = "toggle-focused-tags 1";
"Super+Alt eacute" = "toggle-focused-tags 2";
"Super+Alt quotedbl" = "toggle-focused-tags 4";
"Super+Alt apostrophe" = "toggle-focused-tags 8";
"Super+Alt parenleft" = "toggle-focused-tags 16";
"Super+Alt minus" = "toggle-focused-tags 32";
"Super+Alt egrave" = "toggle-focused-tags 64";
"Super+Alt underscore" = "toggle-focused-tags 128";
"Super+Alt ccedilla" = "toggle-focused-tags 256";
"Super+Alt agrave" = "toggle-focused-tags 512";
2024-07-28 23:30:50 +02:00
## send to workspace
"Super+Shift ampersand" = "set-view-tags 1";
"Super+Shift eacute" = "set-view-tags 2";
"Super+Shift quotedbl" = "set-view-tags 4";
"Super+Shift apostrophe" = "set-view-tags 8";
"Super+Shift parenleft" = "set-view-tags 16";
"Super+Shift minus" = "set-view-tags 32";
"Super+Shift egrave" = "set-view-tags 64";
"Super+Shift underscore" = "set-view-tags 128";
"Super+Shift ccedilla" = "set-view-tags 256";
"Super+Shift agrave" = "set-view-tags 512";
## toggle visibility of window in workspace
"Super+Alt+Shift ampersand" = "toggle-view-tags 1";
"Super+Alt+Shift eacute" = "toggle-view-tags 2";
"Super+Alt+Shift quotedbl" = "toggle-view-tags 4";
"Super+Alt+Shift apostrophe" = "toggle-view-tags 8";
"Super+Alt+Shift parenleft" = "toggle-view-tags 16";
"Super+Alt+Shift minus" = "toggle-view-tags 32";
"Super+Alt+Shift egrave" = "toggle-view-tags 64";
"Super+Alt+Shift underscore" = "toggle-view-tags 128";
"Super+Alt+Shift ccedilla" = "toggle-view-tags 256";
"Super+Alt+Shift agrave" = "toggle-view-tags 512";
#### us layout
## switch to workspace
"Super 1" = "set-focused-tags 1";
"Super 2" = "set-focused-tags 2";
"Super 3" = "set-focused-tags 4";
"Super 4" = "set-focused-tags 8";
"Super 5" = "set-focused-tags 16";
"Super 6" = "set-focused-tags 32";
"Super 7" = "set-focused-tags 64";
"Super 8" = "set-focused-tags 128";
"Super 9" = "set-focused-tags 256";
"Super 0" = "set-focused-tags 512";
## toggle workspace display
"Super+Alt 1" = "toggle-focused-tags 1";
"Super+Alt 2" = "toggle-focused-tags 2";
"Super+Alt 3" = "toggle-focused-tags 4";
"Super+Alt 4" = "toggle-focused-tags 8";
"Super+Alt 5" = "toggle-focused-tags 16";
"Super+Alt 6" = "toggle-focused-tags 32";
"Super+Alt 7" = "toggle-focused-tags 64";
"Super+Alt 8" = "toggle-focused-tags 128";
"Super+Alt 9" = "toggle-focused-tags 256";
"Super+Alt 0" = "toggle-focused-tags 512";
## send to workspace
"Super+Shift 1" = "set-view-tags 1";
"Super+Shift 2" = "set-view-tags 2";
"Super+Shift 3" = "set-view-tags 4";
"Super+Shift 4" = "set-view-tags 8";
"Super+Shift 5" = "set-view-tags 16";
"Super+Shift 6" = "set-view-tags 32";
"Super+Shift 7" = "set-view-tags 64";
"Super+Shift 8" = "set-view-tags 128";
"Super+Shift 9" = "set-view-tags 256";
"Super+Shift 0" = "set-view-tags 512";
## toggle visibility of window in workspace
"Super+Alt+Shift 1" = "toggle-view-tags 1";
"Super+Alt+Shift 2" = "toggle-view-tags 2";
"Super+Alt+Shift 3" = "toggle-view-tags 4";
"Super+Alt+Shift 4" = "toggle-view-tags 8";
"Super+Alt+Shift 5" = "toggle-view-tags 16";
"Super+Alt+Shift 6" = "toggle-view-tags 32";
"Super+Alt+Shift 7" = "toggle-view-tags 64";
"Super+Alt+Shift 8" = "toggle-view-tags 128";
"Super+Alt+Shift 9" = "toggle-view-tags 256";
"Super+Alt+Shift 0" = "toggle-view-tags 512";
2024-07-29 11:03:43 +02:00
# music player control
# We have to specify None as the modifier, else riverctl complains that XF86Etc is not a valid modifier
"None XF86AudioPlay" = "spawn 'playerctl play-pause'";
"None Scroll_Lock" = "spawn 'playerctl previous'";
"None XF86AudioNext" = "spawn 'playerctl next'";
"None Pause" = "spawn 'cmus-remote -C player-next-album'";
"None XF86Bluetooth" = "spawn 'playerctl play-pause'";
"None XF86Tools" = "spawn 'playerctl previous'";
"None XF86Keyboard" = "spawn 'playerctl next'";
"None XF86Favorites" = "spawn 'cmus-remote -C player-next-album'";
"None XF86AudioMute" = "spawn 'wpctl set-mute @DEFAULT_SINK@ toggle'";
2024-07-28 23:30:50 +02:00
};
};
map-pointer = {
normal = {
"Super BTN_LEFT" = "move-view";
"Super BTN_RIGHT" = "resize-view";
"Super BTN_MIDDLE" = "toggle-float";
};
};
};
};
}