52 lines
1.4 KiB
Nix
52 lines
1.4 KiB
Nix
{
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
outputs,
|
|
...
|
|
}: let
|
|
df = lib.mkDefault;
|
|
mkxf = with lib; mapAttrs' (name: value: nameValuePair ("XF86" + name) value);
|
|
|
|
# not rewriting this rn
|
|
keysetting = "${outputs.packages.${pkgs.system}.wm-helpers}/bin/keysetting";
|
|
in {
|
|
options.nixfiles.common.wm = {
|
|
keybinds = lib.mkOption {
|
|
description = ''
|
|
Attribute set containing wm-independent XF86 keysyms and associated
|
|
commands (without the XF86 prefix)
|
|
'';
|
|
type = with lib.types; attrsOf str;
|
|
default = {};
|
|
example = {
|
|
XF86AudioPlay = "playerctl play-pause";
|
|
};
|
|
};
|
|
|
|
finalKeybinds = lib.mkOption {
|
|
description = "Keysyms with XF86 prefix";
|
|
type = with lib.types; attrsOf str;
|
|
default = mkxf config.nixfiles.common.wm.keybinds;
|
|
readOnly = true;
|
|
};
|
|
};
|
|
config = {
|
|
nixfiles.common.wm.keybinds = {
|
|
AudioRaiseVolume = df "${keysetting} volumeup";
|
|
AudioLowerVolume = df "${keysetting} volumedown";
|
|
AudioMute = df "${keysetting} mute";
|
|
AudioMicMute = df "${keysetting} micmute";
|
|
|
|
KbdBrightnessDown = df "${keysetting} keydown";
|
|
KbdBrightnessUp = df "${keysetting} keyup";
|
|
MonBrightnessDown = df "${keysetting} mondown";
|
|
MonBrightnessUp = df "${keysetting} monup";
|
|
|
|
AudioPlay = df "playerctl play-pause";
|
|
AudioPrev = df "playerctl previous";
|
|
AudioNext = df "playerctl next";
|
|
};
|
|
};
|
|
}
|