70 lines
1.9 KiB
Nix
70 lines
1.9 KiB
Nix
|
{
|
||
|
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
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
}
|