Nyx-Modules/other/examples/example-with-comments.nix
2025-09-10 12:17:16 +02:00

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