2024-06-12 09:54:11 +07:00
|
|
|
{ lib, ... }:
|
|
|
|
{
|
|
|
|
imports = [
|
|
|
|
./programs.nix
|
|
|
|
./hyprland.nix
|
2024-06-12 23:37:10 +07:00
|
|
|
./docker.nix
|
2024-06-12 18:09:56 +07:00
|
|
|
./podman.nix
|
2024-06-13 14:04:10 +07:00
|
|
|
./services.nix
|
2024-06-12 09:54:11 +07:00
|
|
|
];
|
|
|
|
options.profile = {
|
2024-06-12 18:09:56 +07:00
|
|
|
|
|
|
|
#### Required Options ####
|
|
|
|
|
2024-06-12 09:54:11 +07:00
|
|
|
hostname = lib.mkOption {
|
|
|
|
type = lib.types.str;
|
|
|
|
};
|
|
|
|
|
2024-06-12 18:09:56 +07:00
|
|
|
user = {
|
|
|
|
name = lib.mkOption {
|
|
|
|
type = lib.types.str;
|
|
|
|
};
|
|
|
|
fullName = lib.mkOption {
|
|
|
|
type = lib.types.str;
|
|
|
|
};
|
2024-06-12 22:56:21 +07:00
|
|
|
uid = lib.mkOption {
|
|
|
|
type = lib.types.int;
|
|
|
|
default = 1000;
|
|
|
|
};
|
|
|
|
gid = lib.mkOption {
|
|
|
|
type = lib.types.int;
|
|
|
|
default = 100;
|
|
|
|
};
|
2024-06-12 18:09:56 +07:00
|
|
|
|
|
|
|
getty.autoLogin = lib.mkEnableOption "auto-login to getty";
|
|
|
|
};
|
|
|
|
|
|
|
|
system.stateVersion = lib.mkOption {
|
|
|
|
type = lib.types.str;
|
|
|
|
};
|
|
|
|
|
|
|
|
#### Optionals ####
|
|
|
|
|
|
|
|
grub.enable = lib.mkOption {
|
|
|
|
type = lib.types.bool;
|
|
|
|
default = true;
|
|
|
|
};
|
|
|
|
audio.enable = lib.mkOption {
|
|
|
|
type = lib.types.bool;
|
|
|
|
default = true;
|
|
|
|
};
|
2024-06-12 09:54:11 +07:00
|
|
|
android.enable = lib.mkEnableOption "android";
|
|
|
|
avahi.enable = lib.mkEnableOption "avahi";
|
|
|
|
bluetooth.enable = lib.mkEnableOption "bluetooth";
|
|
|
|
flatpak.enable = lib.mkEnableOption "flatpak";
|
|
|
|
gnome.enable = lib.mkEnableOption "gnome";
|
|
|
|
kde.enable = lib.mkEnableOption "kde";
|
2024-06-12 20:25:30 +07:00
|
|
|
networking.firewall = {
|
|
|
|
enable = lib.mkEnableOption "firewall";
|
|
|
|
allowedTCPPorts = lib.mkOption {
|
|
|
|
type = lib.types.listOf lib.types.int;
|
|
|
|
default = [ ];
|
|
|
|
};
|
|
|
|
};
|
2024-06-12 09:54:11 +07:00
|
|
|
printing.enable = lib.mkEnableOption "printing";
|
|
|
|
scanner.enable = lib.mkEnableOption "scanner";
|
|
|
|
steam.enable = lib.mkEnableOption "steam";
|
|
|
|
sway.enable = lib.mkEnableOption "sway";
|
|
|
|
tofi.enable = lib.mkEnableOption "tofi";
|
|
|
|
vial.enable = lib.mkEnableOption "vial";
|
|
|
|
security.sudo = {
|
|
|
|
wheelNeedsPassword = lib.mkOption {
|
|
|
|
type = lib.types.bool;
|
|
|
|
default = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
security.sudo-rs = {
|
|
|
|
enable = lib.mkEnableOption "sudo-rs";
|
|
|
|
wheelNeedsPassword = lib.mkEnableOption "wheel password";
|
|
|
|
};
|
|
|
|
|
|
|
|
xkb = {
|
|
|
|
options = lib.mkOption {
|
|
|
|
type = lib.types.str;
|
|
|
|
default = "caps:ctrl_modifier,shift:both_capslock_cancel";
|
|
|
|
};
|
|
|
|
layout = lib.mkOption {
|
|
|
|
type = lib.types.str;
|
|
|
|
default = "us";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
keyboard.language.japanese = lib.mkEnableOption "Japanese keyboard input";
|
|
|
|
brightnessctl.enable = lib.mkEnableOption "brightnessctl";
|
2024-06-12 18:09:56 +07:00
|
|
|
openssh.enable = lib.mkEnableOption "openssh";
|
2024-06-12 09:54:11 +07:00
|
|
|
};
|
|
|
|
}
|