{ config, pkgs, ... }: let userName = config.constants.userName; in { # TODO: Remove this when apex 5 works out of the box: https://github.com/paroj/xpad/pull/328 boot.kernelModules = ["xpad"]; hardware = { bluetooth.enable = true; graphics = { enable = true; extraPackages = [ pkgs.rocmPackages.clr.icd ]; }; keyboard.qmk.enable = true; }; programs = { adb.enable = true; kdeconnect.enable = true; noisetorch.enable = true; }; security.rtkit.enable = true; services = { automatic-timezoned.enable = true; avahi = { enable = true; nssmdns4 = true; openFirewall = true; }; fwupd.enable = true; hardware.openrgb.enable = true; pipewire = { enable = true; alsa = { enable = true; support32Bit = true; }; pulse.enable = true; }; printing.enable = true; udev = { packages = [pkgs.via]; # TODO: Remove this when apex 5 works out of the box: https://github.com/paroj/xpad/pull/328 extraRules = '' ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="37d7", ATTRS{idProduct}=="2501", RUN+="${pkgs.bash}/bin/bash -c 'echo 37d7 2501 > /sys/bus/usb/drivers/xpad/new_id'" ''; }; }; users.users.${userName}.extraGroups = ["adbusers" "cdrom" "docker"]; virtualisation = { containers.enable = true; docker.enable = true; spiceUSBRedirection.enable = true; }; }