From 59031cd01b5e70c989b5ac72e675bbb04de405f1 Mon Sep 17 00:00:00 2001 From: Mohammad Rafiq Date: Mon, 16 Jun 2025 17:37:06 +0800 Subject: [PATCH] refactor(nixos): move usb config to its own module --- modules/nixos/hardware/default.nix | 23 ------------ modules/nixos/hardware/usb/default.nix | 46 ++++++++++++++++++++++++ systems/x86_64-linux/desktop.nix | 5 +++ systems/x86_64-linux/nemesis/default.nix | 1 - 4 files changed, 51 insertions(+), 24 deletions(-) create mode 100644 modules/nixos/hardware/usb/default.nix diff --git a/modules/nixos/hardware/default.nix b/modules/nixos/hardware/default.nix index 46739eb..2b828b8 100644 --- a/modules/nixos/hardware/default.nix +++ b/modules/nixos/hardware/default.nix @@ -24,33 +24,10 @@ in }; gpu = lib.pantheon.mkStrOption; platform = lib.pantheon.mkStrOption; - usb = { - automount = mkEnableOption ""; - }; }; config = lib.mkMerge [ - (mkIf cfg.usb.automount { - services.udisks2.enable = true; - home-manager.sharedModules = singleton { - services.udiskie = { - enable = true; - automount = true; - notify = true; - }; - }; - }) { - hardware.keyboard.qmk.enable = true; - services.udev = { - packages = with pkgs; [ - vial - via - qmk - qmk-udev-rules - qmk_hid - ]; - }; services.fwupd.enable = true; persistDirs = singleton "/var/lib/bluetooth"; hardware.bluetooth = { diff --git a/modules/nixos/hardware/usb/default.nix b/modules/nixos/hardware/usb/default.nix new file mode 100644 index 0000000..e64cf1a --- /dev/null +++ b/modules/nixos/hardware/usb/default.nix @@ -0,0 +1,46 @@ +{ + config, + pkgs, + lib, + ... +}: +let + inherit (lib) + mkEnableOption + mkIf + mkMerge + singleton + ; + cfg = config.hardware.usb; +in +{ + options.hardware.usb = { + automount = mkEnableOption ""; + enableQmk = mkEnableOption ""; + }; + + config = mkMerge [ + (mkIf cfg.automount { + services.udisks2.enable = true; + home-manager.sharedModules = singleton { + services.udiskie = { + enable = true; + automount = true; + notify = true; + }; + }; + }) + (mkIf cfg.enableQmk { + hardware.keyboard.qmk.enable = true; + services.udev = { + packages = with pkgs; [ + vial + via + qmk + qmk-udev-rules + qmk_hid + ]; + }; + }) + ]; +} diff --git a/systems/x86_64-linux/desktop.nix b/systems/x86_64-linux/desktop.nix index 4c9b096..dcd767c 100644 --- a/systems/x86_64-linux/desktop.nix +++ b/systems/x86_64-linux/desktop.nix @@ -10,4 +10,9 @@ terminal.ghostty.enable = true; window-manager.hyprland.enable = true; }; + + hardware.usb = { + automount = true; + enableQmk = true; + }; } diff --git a/systems/x86_64-linux/nemesis/default.nix b/systems/x86_64-linux/nemesis/default.nix index f819cd0..46ac398 100644 --- a/systems/x86_64-linux/nemesis/default.nix +++ b/systems/x86_64-linux/nemesis/default.nix @@ -17,7 +17,6 @@ }; platform = "amd"; gpu = "nvidia"; - usb.automount = true; }; desktop = {