1
1
Fork 0
nixos/options/custom/desktops/sway/input.nix

70 lines
1.9 KiB
Nix
Raw Normal View History

{
config,
lib,
...
}:
with lib; let
cfg = config.custom.desktops.sway.input;
in {
options.custom.desktops.sway.input.enable = mkOption {default = false;};
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
#?? man sway-input
wayland.windowManager.sway = let
kensington-orbit = "1149:32934:Kensington_ORBIT_WIRELESS_TB_Mouse";
protoarc = "9741:4097:Nordic_2.4G_Wireless_Receiver_Mouse";
in {
config = {
# https://nix-community.github.io/home-manager/options.xhtml#opt-wayland.windowManager.sway.config.input
#?? swaymsg -t get_inputs
input = {
# Keyboard
"type:keyboard" = {
repeat_delay = "400";
repeat_rate = "40";
};
# Mouse
"type:pointer" = {
accel_profile = "flat";
};
# Touchpad
"type:touchpad" = {
accel_profile = "adaptive";
click_method = "clickfinger"; # Multi-finger clicks
drag = "enabled";
drag_lock = "enabled";
dwt = "enabled"; # Disable while typing
natural_scroll = "enabled";
#// pointer_accel = "0";
tap = "enabled";
};
# Individual devices
${kensington-orbit} = {
accel_profile = "adaptive";
left_handed = "enabled";
middle_emulation = "enabled";
natural_scroll = "enabled";
pointer_accel = "-0.5";
};
# ${protoarc} = {
# accel_profile = "flat";
# pointer_accel = "0";
# };
};
#// seat = { };
};
# BUG: Order must be specified for some settings
# https://github.com/swaywm/sway/issues/7271
extraConfig = ''
input ${kensington-orbit} accel_profile adaptive
'';
};
};
}