{
  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" ];
  };
}
