396 lines
8.2 KiB
Nix
396 lines
8.2 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
{
|
|
nyx-module = {
|
|
system = {
|
|
docker = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.str
|
|
# User to add to the docker group.";
|
|
username = "alice";
|
|
|
|
# mkOption type=lib.types.bool
|
|
# Whether to enable Docker service on boot.";
|
|
enableOnBoot = true;
|
|
|
|
# mkEnableOption (bool)
|
|
rootless = true;
|
|
|
|
};
|
|
|
|
openssh = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.bool
|
|
# Whether to allow password authentication.";
|
|
passwordAuth = false;
|
|
|
|
# mkOption type=lib.types.str
|
|
# Whether to permit root login via SSH.";
|
|
permitRootLogin = "no";
|
|
|
|
};
|
|
|
|
podman = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.str
|
|
# User to add to the podman group.";
|
|
username = "alice";
|
|
|
|
};
|
|
|
|
vm = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.str
|
|
# User to add to virtualization groups.";
|
|
username = "alice";
|
|
|
|
};
|
|
|
|
zsh = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkEnableOption (bool)
|
|
ohMyZsh = true;
|
|
|
|
# mkOption type=lib.types.str
|
|
# oh-my-zsh theme to use.";
|
|
theme = "xiong-chiamiov-plus";
|
|
|
|
# mkOption type=lib.types.listOf lib.types.str
|
|
# List of oh-my-zsh plugins to enable.";
|
|
plugins = [ "git" ];
|
|
|
|
};
|
|
|
|
steam = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkEnableOption (bool)
|
|
remotePlay = true;
|
|
|
|
# mkEnableOption (bool)
|
|
dedicatedServer = true;
|
|
|
|
# mkEnableOption (bool)
|
|
localNetworkGameTransfers = true;
|
|
|
|
};
|
|
|
|
flatpak = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
wireshark = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.str
|
|
# User to add to the wireshark group.";
|
|
username = "alice";
|
|
|
|
};
|
|
|
|
c-compiler = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
go = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
lua = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
python = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
rust = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
home = {
|
|
brave = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkEnableOption (bool)
|
|
standard = true;
|
|
|
|
# mkOption type=lib.types.listOf lib.types.str
|
|
# List of additional Brave extension IDs to install.";
|
|
extra = [];
|
|
|
|
};
|
|
|
|
signal-desktop = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.package
|
|
# Package to install for signal-desktop.";
|
|
package = pkgs.signal-desktop;
|
|
|
|
};
|
|
|
|
vesktop = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.package
|
|
# Package to install for vesktop.";
|
|
package = pkgs.vesktop;
|
|
|
|
};
|
|
|
|
rustdesk = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.package
|
|
# ''
|
|
package = pkgs.rustdesk;
|
|
|
|
};
|
|
|
|
vscodium = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkEnableOption (bool)
|
|
standard = true;
|
|
|
|
# mkOption type=lib.types.listOf lib.types.package
|
|
# List of extra VSCodium extensions to install.";
|
|
extra = [];
|
|
|
|
};
|
|
|
|
classic-game-collection = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
prismlauncher = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkEnableOption (bool)
|
|
includeFfmpeg = true;
|
|
|
|
# mkOption type=lib.types.listOf lib.types.package
|
|
# List of Java runtimes to make available for PrismLauncher.";
|
|
jdks = [ pkgs.jdk17 ];
|
|
|
|
};
|
|
|
|
cava = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.attrs
|
|
settings = default = {;
|
|
|
|
# mkOption type=lib.types.nullOr lib.types.lines
|
|
# ''
|
|
configText = null;
|
|
|
|
};
|
|
|
|
spotify = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.package
|
|
# ''
|
|
package = pkgs.spotify;
|
|
|
|
};
|
|
|
|
camera = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.package
|
|
# Camera GUI package to install.";
|
|
package = pkgs.snapshot;
|
|
|
|
};
|
|
|
|
image-viewer = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.package
|
|
# Image viewer package to install (e.g. gwenview, feh, imv).";
|
|
package = pkgs.gwenview;
|
|
|
|
};
|
|
|
|
krita = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
kdenlive = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
video-player = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.listOf lib.types.package
|
|
# List of video/media players to install (e.g. vlc, mpv, celluloid).";
|
|
packages = [ pkgs.vlc ];
|
|
|
|
};
|
|
|
|
zoom = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.package
|
|
# Zoom package to install (e.g., pkgs.zoom-us).";
|
|
package = pkgs.zoom-us;
|
|
|
|
};
|
|
|
|
obsidian = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
libreoffice = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
pdf-reader = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.package
|
|
# PDF or scanning GUI package to install (e.g. Okular, Evince, Xournal++).";
|
|
package = pkgs.kdeApplications.okular;
|
|
|
|
};
|
|
|
|
printer-scan = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.package
|
|
# Printer/scanner GUI package to install.";
|
|
package = pkgs.simple-scan;
|
|
|
|
};
|
|
|
|
thunderbird = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
protonvpn = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
tools = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.listOf lib.types.package
|
|
# Extra CLI tools to install in addition to the defaults.";
|
|
extra = [];
|
|
|
|
};
|
|
|
|
zsh = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
private-webapps = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.package
|
|
# Browser package to use for private webapps.";
|
|
browser = pkgs.chromium;
|
|
|
|
};
|
|
|
|
work-webapps = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.package
|
|
# Browser package to use for private webapps.";
|
|
browser = pkgs.chromium;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
hardware = {
|
|
bluetooth = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
};
|
|
|
|
custom-kernel-surfacepro-kbl = {
|
|
# mkEnableOption (bool)
|
|
enable = true;
|
|
|
|
# mkOption type=lib.types.enum [ "stable" "longtime" ]
|
|
# Choose which kernel version nixos-hardware will build for Surface Pro.";
|
|
kernelVersion = "stable";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
}
|