79 lines
2.3 KiB
Nix
79 lines
2.3 KiB
Nix
![]() |
{
|
||
|
config,
|
||
|
lib,
|
||
|
defaults,
|
||
|
...
|
||
|
}: let
|
||
|
terminal =
|
||
|
if (defaults.terminal == "foot")
|
||
|
then "footclient"
|
||
|
else "${defaults.terminal}";
|
||
|
in {
|
||
|
config = {
|
||
|
wayland.windowManager.sway = {
|
||
|
config = {
|
||
|
assigns = {
|
||
|
"1: web" = [{class = "^Firefox$";}];
|
||
|
"9: steam" = [{class = "^Steam$";}];
|
||
|
};
|
||
|
|
||
|
workspaceAutoBackAndForth = true;
|
||
|
|
||
|
modifier = "Mod4";
|
||
|
keybindings = let
|
||
|
m = config.wayland.windowManager.sway.config.modifier;
|
||
|
in
|
||
|
lib.mkOptionDefault {
|
||
|
"${m}+Return" = "exec ${terminal}";
|
||
|
"${m}+space" = "exec anyrun";
|
||
|
|
||
|
# utilities
|
||
|
"${m}+q" = "kill";
|
||
|
"${m}+t" = "floating toggle";
|
||
|
|
||
|
# screenshots
|
||
|
"Print" = "grim -g \"$(slurp)\" - | wl-copy -t image/png";
|
||
|
"${m}+Shift+r" = "grim -g \"$(slurp)\" - | wl-copy -t image/png";
|
||
|
"Alt+Print" = "grim - | wl-copy -t image/png";
|
||
|
"${m}+Alt+Shift+r" = "grim - | wl-copy -t image/png";
|
||
|
};
|
||
|
|
||
|
keycodebindings = {
|
||
|
"--locked --no-repeat 121" = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; # mute
|
||
|
"--locked 122" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 6%-"; # vol-
|
||
|
"--locked 123" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 6%+"; # vol+
|
||
|
"--locked 171" = "exec playerctl next"; # next song
|
||
|
"--locked --no-repeat 172" = "exec playerctl play-pause"; # play/pause
|
||
|
"--locked 173" = "exec playerctl previous"; # prev song
|
||
|
"--locked --no-repeat 198" = "exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; # mic mute
|
||
|
"--locked 232" = "exec light -U 5"; # brightness-
|
||
|
"--locked 233" = "exec light -A 5"; # brightness+
|
||
|
};
|
||
|
|
||
|
menu = "anyrun";
|
||
|
bars = [];
|
||
|
|
||
|
gaps = {
|
||
|
smartBorders = "on";
|
||
|
outer = 5;
|
||
|
inner = 5;
|
||
|
};
|
||
|
|
||
|
startup = [{command = "dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY";}];
|
||
|
|
||
|
input = {
|
||
|
"type:pointer" = {
|
||
|
accel_profile = "flat";
|
||
|
pointer_accel = "0";
|
||
|
};
|
||
|
"type:touchpad" = {
|
||
|
middle_emulation = "enabled";
|
||
|
natural_scroll = "enabled";
|
||
|
tap = "enabled";
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|