From 752df2baf874fae065183ceba45766b775d1c30c Mon Sep 17 00:00:00 2001 From: kruziikrel13 Date: Sun, 19 Oct 2025 17:10:11 +1000 Subject: [PATCH 1/3] maintainers: add kruziikrel13 --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 0948524fc6a4..7065ddde4ea1 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -13989,6 +13989,12 @@ name = "Tomas Krupka"; matrix = "@krupkat:matrix.org"; }; + kruziikrel13 = { + github = "kruziikrel13"; + name = "Michael Petersen"; + email = "dev@michaelpetersen.io"; + githubId = 72793125; + }; krzaczek = { name = "Pawel Krzaczkowski"; email = "pawel@printu.pl"; From 6e34ca27418bdbc560275f66cacc8771e3e22fe9 Mon Sep 17 00:00:00 2001 From: kruziikrel13 Date: Thu, 23 Oct 2025 16:48:23 +1000 Subject: [PATCH 2/3] keychron-udev-rules: init at 23-10-2025 --- .../ke/keychron-udev-rules/package.nix | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 pkgs/by-name/ke/keychron-udev-rules/package.nix diff --git a/pkgs/by-name/ke/keychron-udev-rules/package.nix b/pkgs/by-name/ke/keychron-udev-rules/package.nix new file mode 100644 index 000000000000..374ef9ff2a57 --- /dev/null +++ b/pkgs/by-name/ke/keychron-udev-rules/package.nix @@ -0,0 +1,37 @@ +{ + lib, + stdenvNoCC, + udevCheckHook, + writeTextFile, +}: +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "keychron-udev-rules"; + version = "23-10-2025"; + + nativeBuildInputs = [ udevCheckHook ]; + + src = writeTextFile { + name = "69-keychron.rules"; + text = '' + KERNEL=="event*", SUBSYSTEM=="input", ENV{ID_VENDOR_ID}=="3434", ENV{ID_INPUT_JOYSTICK}=="*?", ENV{ID_INPUT_JOYSTICK}="" + ''; + }; + + dontConfigure = true; + dontUnpack = true; + dontBuild = true; + dontFixup = true; + + installPhase = '' + runHook preInstall + install -Dm644 $src $out/lib/udev/rules.d/69-keychron.rules + runHook postInstall + ''; + + meta = with lib; { + description = "Keychron Keyboard Udev Rules, fixes issues with keyboard detection on Linux"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ kruziikrel13 ]; + }; +}) From 5cd26d1051279ba434024457cf3dabb67a54a1b6 Mon Sep 17 00:00:00 2001 From: kruziikrel13 Date: Thu, 23 Oct 2025 16:48:31 +1000 Subject: [PATCH 3/3] nixos/qmk: add keychron support --- nixos/modules/hardware/keyboard/qmk.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nixos/modules/hardware/keyboard/qmk.nix b/nixos/modules/hardware/keyboard/qmk.nix index 6690deca3506..b3fb02858b1d 100644 --- a/nixos/modules/hardware/keyboard/qmk.nix +++ b/nixos/modules/hardware/keyboard/qmk.nix @@ -8,15 +8,18 @@ let cfg = config.hardware.keyboard.qmk; inherit (lib) mkEnableOption mkIf; - in { options.hardware.keyboard.qmk = { enable = mkEnableOption "non-root access to the firmware of QMK keyboards"; + keychronSupport = mkEnableOption "udev rules for keychron QMK based keyboards"; }; config = mkIf cfg.enable { - services.udev.packages = [ pkgs.qmk-udev-rules ]; + services.udev.packages = [ + pkgs.qmk-udev-rules + ] + ++ lib.optionals cfg.keychronSupport [ pkgs.keychron-udev-rules ]; users.groups.plugdev = { }; }; }