From 36f60ae5ccbf0068b78c94a6e7dd5351d41feefe Mon Sep 17 00:00:00 2001 From: Frantisek Bohacek Date: Fri, 19 Jul 2024 19:04:17 +0200 Subject: [PATCH] feat: add udev rules for moonlander keyboard --- nixos/hosts/laptop-phobos/default.nix | 1 + nixos/modules/profiles/development.nix | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/nixos/hosts/laptop-phobos/default.nix b/nixos/hosts/laptop-phobos/default.nix index 86e074a..75752fa 100644 --- a/nixos/hosts/laptop-phobos/default.nix +++ b/nixos/hosts/laptop-phobos/default.nix @@ -33,6 +33,7 @@ fpga.cables = [ "vivado" "ise" ]; mcu.cables = [ "tiva-c" "st-link" "trezor" ]; + keyboards = [ "moonlander" ]; }; networking.hostName = "laptop-phobos"; diff --git a/nixos/modules/profiles/development.nix b/nixos/modules/profiles/development.nix index 256a7e6..72ab27d 100644 --- a/nixos/modules/profiles/development.nix +++ b/nixos/modules/profiles/development.nix @@ -66,6 +66,14 @@ let ''; }; + moonlander-udev-rules = pkgs.writeTextFile { + name = "moonlander-udev-rules"; + destination = "/etc/udev/rules.d/100-moonlander.rules"; + text = '' + SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="df11", MODE:="600", TAG+="uaccess", SYMLINK+="stm32_dfu" + ''; + }; + cfg = config.profiles.development; in { @@ -79,6 +87,11 @@ in mcu.cables = lib.mkOption { type = lib.types.listOf lib.types.str; }; + + keyboards = lib.mkOption { + type = lib.types.listOf lib.types.str; + }; + }; }; @@ -88,6 +101,7 @@ in lib.lists.optional (builtins.elem "tiva-c" cfg.mcu.cables) ti-udev-rules ++ lib.lists.optional (builtins.elem "trezor" cfg.mcu.cables) trezor-udev-rules ++ lib.lists.optional (builtins.elem "ise" cfg.fpga.cables) inputs.nix-fpga-tools.packages.${pkgs.system}.ise-udev-rules ++ - lib.lists.optional (builtins.elem "ise" cfg.fpga.cables) inputs.nix-fpga-tools.packages.${pkgs.system}.vivado-udev-rules; + lib.lists.optional (builtins.elem "ise" cfg.fpga.cables) inputs.nix-fpga-tools.packages.${pkgs.system}.vivado-udev-rules ++ + lib.lists.optional (builtins.elem "moonlander" cfg.keyboards) moonlander-udev-rules; }; } -- 2.48.1