nixos-configs/modules/desktop/environment/home/inputs.nix

82 lines
1.7 KiB
Nix
Raw Normal View History

self: {
osConfig,
lib,
...
}: {
config = let
inherit (lib) map;
inherit (self.lib.hypr) mkBind;
inherit (osConfig.services.xserver) xkb;
inherit (osConfig.roles.desktop) mainMonitor;
miceNames = [
"logitech-g502-x"
"logitech-g502-hero-gaming-mouse"
];
mkConf = name: {
inherit name;
sensitivity = 0;
accel_profile = "flat";
};
in {
wayland.windowManager.hyprland = {
settings = {
device = map mkConf miceNames;
cursor = {
no_hardware_cursors = osConfig.nvidia.enable;
hide_on_touch = true;
};
exec-once =
if mainMonitor != null
then ["hyprctl dispatch focusmonitor ${mainMonitor}"]
else [];
input = {
# Keyboard
kb_layout = xkb.layout;
kb_variant = xkb.variant;
numlock_by_default = true;
repeat_rate = 25;
# Mouse
follow_mouse = true;
# Touchpad
touchpad = {
natural_scroll = true;
disable_while_typing = false;
drag_lock = true;
tap-and-drag = true;
};
};
bind = map mkBind [
{
key = "XF86AudioPlay";
command = "playerctl play-pause";
}
{
key = "XF86AudioStop";
command = "playerctl stop";
}
{
key = "XF86AudioNext";
command = "playerctl next";
}
{
key = "XF86AudioPrev";
command = "playerctl previous";
}
];
};
};
};
# For accurate stack trace
_file = ./inputs.nix;
}