From d569ff4fcf611a0205c7b5ffd6cf652f430b4d72 Mon Sep 17 00:00:00 2001 From: Peter Ferenczy Date: Sun, 21 May 2023 21:53:56 +0300 Subject: [PATCH] Framework 12th gen: add keys workaround --- framework/12th-gen-intel/default.nix | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/framework/12th-gen-intel/default.nix b/framework/12th-gen-intel/default.nix index c912f31..79336f6 100644 --- a/framework/12th-gen-intel/default.nix +++ b/framework/12th-gen-intel/default.nix @@ -17,9 +17,32 @@ "i915.enable_psr=1" ]; - # This enables the brightness keys to work + # This enables the brightness and airplane mode keys to work # https://community.frame.work/t/12th-gen-not-sending-xf86monbrightnessup-down/20605/11 boot.blacklistedKernelModules = [ "hid-sensor-hub" ]; + + # Further tweak to ensure the brightness and airplane mode keys work + # https://community.frame.work/t/responded-12th-gen-not-sending-xf86monbrightnessup-down/20605/67 + systemd.services.bind-keys-driver = { + description = "Bind brightness and airplane mode keys to their driver"; + wantedBy = [ "default.target" ]; + after = [ "network.target" ]; + serviceConfig = { + Type = "oneshot"; + User = "root"; + }; + script = '' + ls -lad /sys/bus/i2c/devices/i2c-*:* /sys/bus/i2c/drivers/i2c_hid_acpi/i2c-*:* + if [ -e /sys/bus/i2c/devices/i2c-FRMW0001:00 -a ! -e /sys/bus/i2c/drivers/i2c_hid_acpi/i2c-FRMW0001:00 ]; then + echo fixing + echo i2c-FRMW0001:00 > /sys/bus/i2c/drivers/i2c_hid_acpi/bind + ls -lad /sys/bus/i2c/devices/i2c-*:* /sys/bus/i2c/drivers/i2c_hid_acpi/i2c-*:* + echo done + else + echo no fix needed + fi + ''; + }; # Alder Lake CPUs benefit from kernel 5.18 for ThreadDirector # https://www.tomshardware.com/news/intel-thread-director-coming-to-linux-5-18