Files
TheaninovOS/modules/nixos/hardware/cc1.nix
2024-07-10 13:18:19 +02:00

40 lines
723 B
Nix

{
pkgs,
lib,
config,
username,
...
}:
with lib;
let
cfg = config.hardware.cc1;
in
{
options.hardware.cc1 = {
enable = mkEnableOption "Enable CC1 optimizations";
layout = mkOption {
type = with lib.types; enum [ "cc1-thea" ];
default = "cc1-thea";
};
};
config = mkIf cfg.enable {
# TODO: per-device layout?
console.useXkbConfig = true;
services.xserver.xkb = {
layout = lib.mkDefault cfg.layout;
extraLayouts.cc1-thea = {
description = "A CC1 optimized layout";
languages = [
"eng"
"ger"
];
symbolsFile = ./${cfg.layout};
};
};
users.users.${username}.extraGroups = [ "dialout" ];
};
}