NixOS/options/default.nix

109 lines
2.7 KiB
Nix
Raw Normal View History

2024-06-12 09:54:11 +07:00
{ lib, ... }:
{
imports = [
./programs.nix
./hyprland.nix
2024-06-12 18:09:56 +07:00
./podman.nix
./services.nix
2024-08-05 12:06:07 +07:00
./games.nix
./environments.nix
2024-09-02 09:38:57 +07:00
./flatpak.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;
};
networking.disableWaitOnline = lib.mkEnableOption "disable waiting for network";
2024-06-14 14:30:52 +07:00
networking.externalInterface = lib.mkOption {
type = lib.types.str;
default = "eth0";
};
2024-06-12 09:54:11 +07:00
neovim.enable = lib.mkOption {
type = lib.types.bool;
default = true;
};
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";
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
};
}