nix/module/common/Keyd.nix

71 lines
2.3 KiB
Nix
Raw Normal View History

2024-05-06 22:11:33 +03:00
{ pkgs, lib, ... }: {
2024-04-24 04:22:34 +03:00
environment.systemPackages = with pkgs; [ keyd ];
services.keyd = {
enable = true;
keyboards.default = {
ids = [ "*" ];
settings = {
main = {
backspace = "delete"; # Delete key on backspace.
capslock = "overload(control, esc)"; # Ctrl/esc combo.
compose = "layer(layer_macro)"; # Input macros.
esc = "layer(layer_system)"; # System controls.
leftcontrol = "overload(layer_alternative, leftcontrol)"; # Alternative layer for home, end etc.
print = "layer(layer_macro)"; # ThinkPad remap to compose.
rightalt = "capslock"; # Language toggle.
rightcontrol = "layer(layer_control)"; # Media and other controls.
rightshift = "backspace"; # Backspace.
};
2024-04-24 04:22:34 +03:00
2024-04-24 17:57:39 +03:00
layer_alternative = {
2024-04-24 04:22:34 +03:00
w = "pageup";
a = "home";
s = "pagedown";
d = "end";
x = "cut";
c = "copy";
v = "paste";
h = "left";
j = "down";
k = "up";
l = "right";
# space = "macro2(1, 100, macro(space))"; # NOTE: Possible bhop example.
2024-04-24 04:22:34 +03:00
};
2024-04-24 17:57:39 +03:00
layer_control = {
space = "playpause";
w = "volumeup";
s = "volumedown";
2024-04-25 04:10:00 +03:00
d = "forward";
a = "back";
e = "nextsong";
q = "previoussong";
2024-04-30 19:00:27 +03:00
x = "mute";
z = "stopcd";
2024-04-24 17:57:39 +03:00
};
2024-04-24 04:22:34 +03:00
layer_system = {
c = "command(loginctl kill-user voronind)";
l = "command(powerlimit toggle)";
# m = "command(swayscript montoggle)";
p = "command(powersave toggle)";
# v = "command(swayscript vrrtoggle)";
2024-05-07 14:57:30 +03:00
x = "command(systemctl poweroff -i)";
z = "command(systemctl suspend -i)";
};
2024-04-24 17:57:39 +03:00
layer_macro = {};
};
};
};
2024-04-24 04:58:58 +03:00
# HACK: Workaround for https://github.com/NixOS/nixpkgs/issues/290161
users.groups.keyd = {};
systemd.services.keyd.serviceConfig.CapabilityBoundingSet = [ "CAP_SETGID" ];
2024-05-06 22:11:33 +03:00
# HACK: Workaround for powersave/powerlimit/swayscript scripts.
2024-05-06 22:11:33 +03:00
systemd.services.keyd.serviceConfig.ProtectKernelTunables = lib.mkForce false;
systemd.services.keyd.serviceConfig.ProtectHome = lib.mkForce false;
# systemd.services.keyd.environment.KEYD_DEBUG = "1";
}