Extract "surface-control" management into new option-enabled module

This commit is contained in:
mexisme 2023-01-10 16:04:46 +13:00
parent 0ce988ea8a
commit f0835cb45c
3 changed files with 27 additions and 8 deletions

View file

@ -7,6 +7,7 @@ in {
imports = [
./kernel
./ipts
./surface-control
];
microsoft-surface.kernelVersion = mkDefault "6.0.11";

View file

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkDefault mkEnableOption mkIf mkMerge;
cfg = config.microsoft-surface.surface-control;
in {
options.microsoft-surface.surface-control = {
enable = mkEnableOption "Enable 'surface-control' for Microsoft Surface";
};
config = mkMerge [
{
microsoft-surface.surface-control.enable = mkDefault false;
}
(mkIf cfg.enable {
environment.systemPackages = with pkgs; [ surface-control ];
services.udev.packages = with pkgs; [ surface-control];
users.groups.surface-control = { };
})
];
}

View file

@ -17,13 +17,6 @@ in {
options iwldvm force_cam=N
'';
environment.systemPackages = [
pkgs.surface-control
];
users.groups.surface-control = { };
services.udev.packages = [
pkgs.surface-control
];
microsoft-surface.surface-control.enable = true;
microsoft-surface.ipts.enable = true;
}