On ASUS Zephyrus GA402X, make enabling auto-suspend on the keyboard optional
- On kernels before 6.9.x, default to disabling auto-suspend - On more-recent kernels, default to enabling auto-suspend
This commit is contained in:
parent
dfe45103b6
commit
ddebede974
|
@ -5,7 +5,11 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (lib) mkDefault mkIf mkMerge version versionOlder;
|
inherit (lib) mkDefault mkEnableOption mkIf mkMerge version versionAtLeast versionOlder;
|
||||||
|
|
||||||
|
cfg = config.hardware.asus.zephyrus.ga402x;
|
||||||
|
defaultAutosuspendEnable = if (versionAtLeast version "6.9") then true else false;
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
|
@ -18,6 +22,16 @@ in {
|
||||||
../../../common/pc/ssd
|
../../../common/pc/ssd
|
||||||
];
|
];
|
||||||
|
|
||||||
|
options.hardware.asus.zephyrus.ga402x = {
|
||||||
|
# Kernels earlier than 6.9 (possibly even earlier) tend to take 1-2 key-presses
|
||||||
|
# to wake-up the internal keyboard after suspending (the ASUS N-KEY USB Device).
|
||||||
|
#
|
||||||
|
# Therefore, this option disables suspend for the keyboard by default, but
|
||||||
|
# enables it for kernel 6.9.x onwards.
|
||||||
|
keyboard.autosuspend.enable = (mkEnableOption "Enable auto-suspend on the internal USB keyboard (ASUS N-KEY Device) on Zephyrus GA402X"
|
||||||
|
) // { default = defaultAutosuspendEnable; };
|
||||||
|
};
|
||||||
|
|
||||||
config = mkMerge [
|
config = mkMerge [
|
||||||
{
|
{
|
||||||
# Configure basic system settings:
|
# Configure basic system settings:
|
||||||
|
@ -43,15 +57,20 @@ in {
|
||||||
evdev:name:*:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
|
evdev:name:*:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
|
||||||
KEYBOARD_KEY_ff31007c=f20
|
KEYBOARD_KEY_ff31007c=f20
|
||||||
'';
|
'';
|
||||||
extraRules = ''
|
|
||||||
# Disable auto-suspend for the ASUS N-KEY Device, i.e. USB Keyboard
|
|
||||||
# Otherwise, it will tend to take 1-2 key-presses to wake-up after suspending
|
|
||||||
ACTION=="add", SUBSYSTEM=="usb", TEST=="power/autosuspend", ATTR{idVendor}=="0b05", ATTR{idProduct}=="19b6", ATTR{power/autosuspend}="-1"
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(mkIf (! cfg.keyboard.autosuspend.enable) {
|
||||||
|
services.udev = {
|
||||||
|
extraRules = ''
|
||||||
|
# Disable auto-suspend for the ASUS N-KEY Device, i.e. USB Keyboard
|
||||||
|
# Otherwise on certain kernel-versions, it will tend to take 1-2 key-presses to wake-up after suspending
|
||||||
|
ACTION=="add", SUBSYSTEM=="usb", TEST=="power/autosuspend", ATTR{idVendor}=="0b05", ATTR{idProduct}=="19b6", ATTR{power/autosuspend}="-1"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
(mkIf (versionOlder version "23.11") {
|
(mkIf (versionOlder version "23.11") {
|
||||||
# See https://asus-linux.org/wiki/nixos/ for info about some problems
|
# See https://asus-linux.org/wiki/nixos/ for info about some problems
|
||||||
# detecting the dGPU:
|
# detecting the dGPU:
|
||||||
|
|
Loading…
Reference in a new issue