{ pkgs, config, lib, ... }: with lib; let cfg = config.eboskma.base; qmkUdevRules = (builtins.readFile ./qmk.rules); in { options.eboskma.base = { kernel = mkOption { description = "which kernel to run"; type = types.unspecified; default = pkgs.linuxKernel.packages.linux_5_15; }; plymouth = { enable = mkEnableOption "enable plymouth splash screen"; }; work = mkOption { description = "whether this is a work machine."; type = types.bool; default = false; }; }; config = { boot.kernelPackages = cfg.kernel; boot.plymouth = mkIf (cfg.plymouth.enable) { enable = true; }; hardware.opengl = { enable = true; driSupport = true; }; programs.fish.enable = true; environment.systemPackages = with pkgs; [ dig dogdns file usbutils ht-rust nix-template ]; services.udev = { extraRules = qmkUdevRules; }; }; }