34 lines
824 B
Nix
34 lines
824 B
Nix
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}: {
|
|
options.host.hardware = {
|
|
piperMouse = {
|
|
enable = lib.mkEnableOption "host has a piper mouse";
|
|
};
|
|
viaKeyboard = {
|
|
enable = lib.mkEnableOption "host has a via keyboard";
|
|
};
|
|
openRGB = {
|
|
enable = lib.mkEnableOption "host has open rgb hardware";
|
|
};
|
|
graphicsAcceleration = {
|
|
enable = lib.mkEnableOption "host has a gpu for graphical acceleration";
|
|
};
|
|
directAccess = {
|
|
enable = lib.mkEnableOption "can a host be used on its own";
|
|
};
|
|
};
|
|
config = lib.mkMerge [
|
|
(lib.mkIf config.host.hardware.piperMouse.enable {
|
|
services.ratbagd.enable = true;
|
|
})
|
|
(lib.mkIf config.host.hardware.viaKeyboard.enable {
|
|
hardware.keyboard.qmk.enable = true;
|
|
|
|
services.udev.packages = [pkgs.via];
|
|
})
|
|
];
|
|
}
|