81 lines
1.7 KiB
Nix
81 lines
1.7 KiB
Nix
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;
|
|
}
|