Self Options

self.colors.theme Link copied!

Type: one of "gruvbox", "dracula"

The colorscheme that should be used globally.

Default: "gruvbox"
Declared in: self.colors.theme

self.colors.variant Link copied!

Type: one of "dark", "light"

Default variant for the chosen colorscheme.

Default: "dark"
Declared in: self.colors.variant

self.device.cpu.type Link copied!

Type: one of "amd", "intel"

The manufacturer of the primary system CPU.

Declared in: self.device.cpu.type

self.device.gpu.type Link copied!

Type: null or value "nvidia" (singular enum)

The manufacturer of the primary system GPU.

Default: null
Declared in: self.device.gpu.type

self.device.monitors Link copied!

Type: list of (submodule)

A list of monitors connected to the system.

Default: [ ]
Declared in: self.device.monitors

self.device.monitors.*.enable Link copied!

Type: boolean

Whether to enable this monitor.

Default: true
Example: true

self.device.monitors.*.height Link copied!

Type: signed integer

Pixel width of the monitor.

self.device.monitors.*.isVertical Link copied!

Type: boolean

Whether the monitor is vertical.

Default: (lib.mod config.transform 2) == 1

self.device.monitors.*.name Link copied!

Type: string

The name of the monitor, e.g. eDP-1.

self.device.monitors.*.refreshRate Link copied!

Type: null or string

Refresh rate of the monitor. Use null for the default refresh rate.

Default: null

self.device.monitors.*.scale Link copied!

Type: floating point number

Scale of the monitor.

Default: 1.0

self.device.monitors.*.transform Link copied!

Type: integer between 0 and 7 (both inclusive)

Rotate the output counter-clockwise.

0 -> normal (no transforms) 1 -> 90 degrees 2 -> 180 degrees 3 -> 270 degrees 4 -> flipped 5 -> flipped + 90 degrees 6 -> flipped + 180 degrees 7 -> flipped + 270 degrees

Default: 0

self.device.monitors.*.variableRefreshRate Link copied!

Type: boolean

Whether to enable Variable Refresh Rate.

Default: false
Example: true

self.device.monitors.*.width Link copied!

Type: signed integer

Pixel width of the monitor.

self.device.monitors.*.x Link copied!

Type: signed integer

Position x coordinate of the monitor.

Default: 0

self.device.monitors.*.y Link copied!

Type: signed integer

Position y coordinate of the monitor.

Default: 0

self.docs.enable Link copied!

Type: boolean

Whether to enable generation of internal module documentation to /etc/nixos/docs.

Default: false
Example: true
Declared in: self.docs.enable

self.programs.browser.chromium.enable Link copied!

Type: boolean

Whether to enable chromium.

Default: false
Example: true
Declared in: self.programs.browser.chromium.enable

self.programs.browser.chromium.ungoogled Link copied!

Type: boolean

Whether to enable ungoogled chromium patches.

Default: true
Example: true
Declared in: self.programs.browser.chromium.ungoogled

self.programs.browser.firefox.enable Link copied!

Type: boolean

Whether to enable firefox.

Default: false
Example: true
Declared in: self.programs.browser.firefox.enable

self.programs.browser.nyxt.enable Link copied!

Type: boolean

Whether to enable nyxt.

Default: false
Example: true
Declared in: self.programs.browser.nyxt.enable

self.programs.browser.qutebrowser.enable Link copied!

Type: boolean

Whether to enable qutebrowser.

Default: false
Example: true
Declared in: self.programs.browser.qutebrowser.enable

self.programs.browser.tor-browser.enable Link copied!

Type: boolean

Whether to enable tor-browser.

Default: false
Example: true
Declared in: self.programs.browser.tor-browser.enable

self.programs.default.browser.name Link copied!

Type: null or one of "chromium", "firefox", "nyxt", "qutebrowser", "tor-browser"

The default browser to use. This will automatically enable the corresponding program.

Default: `"chromium"` if using Wayland or X11, `null` otherwise
Declared in: self.programs.default.browser.name

self.programs.default.editor.name Link copied!

Type: one of "helix", "neovim"

The default editor to use. This will automatically enable the corresponding program.

Default: "helix"
Declared in: self.programs.default.editor.name

self.programs.default.imageViewer.name Link copied!

Type: null or one of "imv", "nsxiv"

The default image viewer to use. This will automatically enable the corresponding program.

Default: `"imv"` if using Wayland or X11, `null` otherwise
Declared in: self.programs.default.imageViewer.name

self.programs.default.launcher.name Link copied!

Type: null or one of "dmenu", "fuzzel", "tofi", "vicinae"

The default launcher to use. This will automatically enable the corresponding program.

Default: `"fuzzel"` if using Wayland, `"dmenu"` if using X11, `null` otherwise
Declared in: self.programs.default.launcher.name

self.programs.default.locker.name Link copied!

Type: null or one of "dms", "glitchlock", "slock", "swaylock"

The default screen locker to use. This will automatically enable the corresponding program.

Default: `"dms"` if using Wayland, `"slock"` if using X11, `null` otherwise
Declared in: self.programs.default.locker.name

self.programs.default.shell.name Link copied!

Type: one of "zsh", "nushell"

The default shell to use. This will automatically enable the corresponding program.

Default: "zsh"
Declared in: self.programs.default.shell.name

self.programs.default.statusBar.name Link copied!

Type: null or one of "dms", "noctalia", "sb", "waybar"

The default status bar to use. This will automatically enable the corresponding program.

Default: `"dms"` if using Wayland, `"sb"` if using X11, `null` otherwise
Declared in: self.programs.default.statusBar.name

self.programs.default.terminal.name Link copied!

Type: null or one of "foot", "ghostty", "st"

The default terminal emulator to use. This will automatically enable the corresponding program.

Default: `"ghostty"` if using Wayland or X11, `null` otherwise
Declared in: self.programs.default.terminal.name

self.programs.default.windowManager.name Link copied!

Type: null or one of "dwm", "hyprland", "niri", "river-classic"

The default window manager to use. This will automatically enable the corresponding program.

Default: `"niri"` if using Wayland, `"dwm"` if using X11, `null` otherwise
Declared in: self.programs.default.windowManager.name

self.programs.editor.helix.enable Link copied!

Type: boolean

Whether to enable helix.

Default: false
Example: true
Declared in: self.programs.editor.helix.enable

self.programs.editor.neovim.enable Link copied!

Type: boolean

Whether to enable neovim.

Default: false
Example: true
Declared in: self.programs.editor.neovim.enable

self.programs.gaming.enable Link copied!

Type: boolean

Whether to enable gaming related packages.

Default: false
Example: true
Declared in: self.programs.gaming.enable

self.programs.gaming.lutris.enable Link copied!

Type: boolean

Whether to enable Lutris.

Default: false
Example: true
Declared in: self.programs.gaming.lutris.enable

self.programs.gaming.poe.enable Link copied!

Type: boolean

Whether to enable Path of Exile specific packages.

Default: false
Example: true
Declared in: self.programs.gaming.poe.enable

self.programs.gaming.star-citizen.enable Link copied!

Type: boolean

Whether to enable Star Citizen specific packages.

Default: false
Example: true
Declared in: self.programs.gaming.star-citizen.enable

self.programs.gaming.steam.enable Link copied!

Type: boolean

Whether to enable Steam.

Default: `true` if gaming is enabled
Example: true
Declared in: self.programs.gaming.steam.enable

self.programs.gaming.wow.enable Link copied!

Type: boolean

Whether to enable World of Warcraft specific packages.

Default: false
Example: true
Declared in: self.programs.gaming.wow.enable

self.programs.imageViewer.imv.enable Link copied!

Type: boolean

Whether to enable imv.

Default: false
Example: true
Declared in: self.programs.imageViewer.imv.enable

self.programs.imageViewer.nsxiv.enable Link copied!

Type: boolean

Whether to enable nsxiv.

Default: false
Example: true
Declared in: self.programs.imageViewer.nsxiv.enable

self.programs.launcher.dmenu.enable Link copied!

Type: boolean

Whether to enable dmenu.

Default: false
Example: true
Declared in: self.programs.launcher.dmenu.enable

self.programs.launcher.fuzzel.enable Link copied!

Type: boolean

Whether to enable fuzzel.

Default: false
Example: true
Declared in: self.programs.launcher.fuzzel.enable

self.programs.launcher.tofi.enable Link copied!

Type: boolean

Whether to enable tofi.

Default: false
Example: true
Declared in: self.programs.launcher.tofi.enable

self.programs.launcher.vicinae.enable Link copied!

Type: boolean

Whether to enable vicinae.

Default: false
Example: true
Declared in: self.programs.launcher.vicinae.enable

self.programs.locker.dms.enable Link copied!

Type: boolean

Whether to enable dms.

Default: false
Example: true
Declared in: self.programs.locker.dms.enable

self.programs.locker.glitchlock.enable Link copied!

Type: boolean

Whether to enable glitchlock.

Default: false
Example: true
Declared in: self.programs.locker.glitchlock.enable

self.programs.locker.slock.enable Link copied!

Type: boolean

Whether to enable slock.

Default: false
Example: true
Declared in: self.programs.locker.slock.enable

self.programs.locker.swaylock.enable Link copied!

Type: boolean

Whether to enable swaylock.

Default: false
Example: true
Declared in: self.programs.locker.swaylock.enable

self.programs.shell.nushell.enable Link copied!

Type: boolean

Whether to enable nushell.

Default: false
Example: true
Declared in: self.programs.shell.nushell.enable

self.programs.shell.zsh.enable Link copied!

Type: boolean

Whether to enable zsh.

Default: false
Example: true
Declared in: self.programs.shell.zsh.enable

self.programs.statusBar.dms.enable Link copied!

Type: boolean

Whether to enable dms.

Default: false
Example: true
Declared in: self.programs.statusBar.dms.enable

self.programs.statusBar.noctalia.enable Link copied!

Type: boolean

Whether to enable noctalia.

Default: false
Example: true
Declared in: self.programs.statusBar.noctalia.enable

self.programs.statusBar.sb.enable Link copied!

Type: boolean

Whether to enable sb.

Default: false
Example: true
Declared in: self.programs.statusBar.sb.enable

self.programs.statusBar.waybar.enable Link copied!

Type: boolean

Whether to enable waybar.

Default: false
Example: true
Declared in: self.programs.statusBar.waybar.enable

self.programs.terminal.fontSize Link copied!

Type: signed integer

Font size used by terminal emulators.

Default: 10
Declared in: self.programs.terminal.fontSize

self.programs.terminal.foot.enable Link copied!

Type: boolean

Whether to enable foot.

Default: false
Example: true
Declared in: self.programs.terminal.foot.enable

self.programs.terminal.ghostty.enable Link copied!

Type: boolean

Whether to enable ghostty.

Default: false
Example: true
Declared in: self.programs.terminal.ghostty.enable

self.programs.terminal.st.enable Link copied!

Type: boolean

Whether to enable st.

Default: false
Example: true
Declared in: self.programs.terminal.st.enable

self.programs.windowManager.dwm.enable Link copied!

Type: boolean

Whether to enable dwm.

Default: false
Example: true
Declared in: self.programs.windowManager.dwm.enable

self.programs.windowManager.hyprland.enable Link copied!

Type: boolean

Whether to enable hyprland.

Default: false
Example: true
Declared in: self.programs.windowManager.hyprland.enable

self.programs.windowManager.niri.enable Link copied!

Type: boolean

Whether to enable niri.

Default: false
Example: true
Declared in: self.programs.windowManager.niri.enable

self.programs.windowManager.niri.extraConfig Link copied!

Type: string

Extra config to include into niri configuration. This will override conflicting prior options.

Default: ""
Declared in: self.programs.windowManager.niri.extraConfig

self.programs.windowManager.river-classic.enable Link copied!

Type: boolean

Whether to enable river-classic.

Default: false
Example: true
Declared in: self.programs.windowManager.river-classic.enable

self.services.kanshi.enable Link copied!

Type: boolean

Whether to enable Kanshi.

Default: false
Example: true
Declared in: self.services.kanshi.enable

self.services.librespot.enable Link copied!

Type: boolean

Whether to enable Librespot.

Default: false
Example: true
Declared in: self.services.librespot.enable

self.services.udiskie.enable Link copied!

Type: boolean

Whether to enable udiskie.

Default: false
Example: true
Declared in: self.services.udiskie.enable

self.services.wpaperd.enable Link copied!

Type: boolean

Whether to enable wpaperd.

Default: `true` if using Wayland.
Example: true
Declared in: self.services.wpaperd.enable

self.system.audio.enable Link copied!

Type: boolean

Whether to enable audio drivers and related programs.

Default: false
Example: true
Declared in: self.system.audio.enable

self.system.audio.pipewire.rnnoise.enable Link copied!

Type: boolean

Whether to enable rnnoise.

Default: false
Example: true
Declared in: self.system.audio.pipewire.rnnoise.enable

self.system.audio.pipewire.rnnoise.retroactiveVadGrace Link copied!

Type: integer between 0 and 200 (both inclusive)

Set the rnnoise retroactive VAD grace period in milliseconds.

Similar to VAD Grace Period (ms) but for starts of words/sentences. /!\ This introduces latency!

Default: 0
Declared in: self.system.audio.pipewire.rnnoise.retroactiveVadGrace

self.system.audio.pipewire.rnnoise.vadGracePeriod Link copied!

Type: integer between 0 and 1000 (both inclusive)

Set the rnnoise VAD grace period in milliseconds.

For how long after the last voice detection the output won't be silenced. This helps when ends of words/sentences are being cut off.

Default: 200
Declared in: self.system.audio.pipewire.rnnoise.vadGracePeriod

self.system.audio.pipewire.rnnoise.vadThreshold Link copied!

Type: integer between 0 and 99 (both inclusive)

Set the rnnoise VAD threshold (%).

If probability of sound being a voice is lower than this threshold then it will be silenced. In most cases the threshold between 85% - 95% would be fine. Without the VAD some loud noises may still be a bit audible when there is no voice.

Default: 90
Declared in: self.system.audio.pipewire.rnnoise.vadThreshold

self.system.bluetooth.enable Link copied!

Type: boolean

Whether to enable bluetooth drivers and related programs.

Default: false
Example: true
Declared in: self.system.bluetooth.enable

self.system.boot.kernel Link copied!

Type: raw value

The kernel packages to use for the system.

Default: `pkgs.linuxPackages` if ZFS is enabled, `pkgs.linuxPackages_latest` otherwise
Declared in: self.system.boot.kernel

self.system.boot.loader.configurationLimit Link copied!

Type: signed integer

Maximum of generations in boot menu.

Default: 100
Declared in: self.system.boot.loader.configurationLimit

self.system.boot.loader.grub.device Link copied!

Type: string

The device on which the GRUB boot loader will be installed.

Default: "nodev"
Declared in: self.system.boot.loader.grub.device

self.system.boot.loader.grub.enable Link copied!

Type: boolean

Whether to enable GNU GRUB boot loader.

Default: false
Example: true
Declared in: self.system.boot.loader.grub.enable

self.system.boot.loader.lanzaboote.enable Link copied!

Type: boolean

Whether to enable Lanzaboote Secure Boot.

Default: false
Example: true
Declared in: self.system.boot.loader.lanzaboote.enable

self.system.boot.loader.systemd-boot.enable Link copied!

Type: boolean

Whether to enable systemd-boot EFI boot manager.

Default: false
Example: true
Declared in: self.system.boot.loader.systemd-boot.enable

self.system.boot.tmpAsTmpfs Link copied!

Type: boolean

Whether to enable mount /tmp as tmpfs.

Default: false
Example: true
Declared in: self.system.boot.tmpAsTmpfs

self.system.displayServer.wayland Link copied!

Type: boolean

Whether to enable Wayland display server.

Default: false
Example: true
Declared in: self.system.displayServer.wayland

self.system.displayServer.x11 Link copied!

Type: boolean

Whether to enable X11 display server.

Default: false
Example: true
Declared in: self.system.displayServer.x11

self.system.fs.btrfs.autoSnapshot.subvolumes Link copied!

Type: attribute set of string

List of btrfs mount points to periodically snapshot.

Default: { }
Example:
{
  home = "/home";
  root = "/";
  var = "/var";
}
Declared in: self.system.fs.btrfs.autoSnapshot.subvolumes

self.system.fs.btrfs.enable Link copied!

Type: boolean

Whether to enable btrfs services and specific configurations.

Default: `true` if a `btrfs` filesystem is found
Declared in: self.system.fs.btrfs.enable

self.system.fs.zfs.arcMax Link copied!

Type: unsigned integer, meaning >=0

The maximum size (in bytes) of the ZFS Adaptive Replacement Cache (ARC). If set to 0, the larger of all_system_memory - 1GB and 5/8 × all_system_memory will be used. A minimum of 2GB is recommended although more is strongly recommended. As a rule of thumb ZFS needs 1GB minimum + 1GB of RAM per 1TB of storage, that can go up to 5GB of RAM per 1TB of storage with deduplication enabled.

Default: 0
Declared in: self.system.fs.zfs.arcMax

self.system.fs.zfs.enable Link copied!

Type: boolean

Whether to enable zfs services and specific configurations.

Default: `true` if a `zfs` filesystem is found
Declared in: self.system.fs.zfs.enable

self.system.login.autoLogin Link copied!

Type: boolean

Whether to enable automatic login.

Default: false
Example: true
Declared in: self.system.login.autoLogin

self.system.login.manager Link copied!

Type: null or one of "dms-greeter", "gdm", "ly", "tuigreet"

The login manager to use. Setting this to null fallbacks to getty with optional auto login.

Default: null
Declared in: self.system.login.manager

self.system.security.apparmor.enable Link copied!

Type: boolean

Whether to enable AppArmor.

Default: false
Example: true
Declared in: self.system.security.apparmor.enable

self.system.security.selinux.enable Link copied!

Type: boolean

Whether to enable system SELinux support.

Default: false
Example: true
Declared in: self.system.security.selinux.enable

self.system.security.selinux.state Link copied!

Type: one of "enforcing", "permissive", "disabled"

The state of SELinux on the system.

enforcing - SELinux security policy is enforced. Set this value once you know for sure that SELinux is configured the way you like it and that your system is ready for deployment permissive - SELinux prints warnings instead of enforcing. Use this to customise your SELinux policies and booleans prior to deployment. Recommended during policy development. disabled - No SELinux policy is loaded. This is not a recommended setting, for it may cause problems with file labelling

Default: "enforcing"
Declared in: self.system.security.selinux.state

self.system.video.enable Link copied!

Type: boolean

Whether to enable video drivers and related programs.

Default: false
Example: true
Declared in: self.system.video.enable

self.system.virt.distrobox.autoUpgrade.enable Link copied!

Type: boolean

Whether to enable periodically upgrade all distrobox containers.

Default: false
Example: true
Declared in: self.system.virt.distrobox.autoUpgrade.enable

self.system.virt.distrobox.enable Link copied!

Type: boolean

Whether to enable Distrobox.

Default: false
Example: true
Declared in: self.system.virt.distrobox.enable

self.system.virt.podman.enable Link copied!

Type: boolean

Whether to enable Podman with Docker support.

Default: false
Example: true
Declared in: self.system.virt.podman.enable

self.system.virt.qemu.enable Link copied!

Type: boolean

Whether to enable QEMU.

Default: false
Example: true
Declared in: self.system.virt.qemu.enable

self.system.virt.qemu.package Link copied!

Type: package

The qemu package to use.

Default: pkgs.qemu_kvm
Declared in: self.system.virt.qemu.package

self.system.virt.waydroid.enable Link copied!

Type: boolean

Whether to enable Waydroid.

Default: false
Example: true
Declared in: self.system.virt.waydroid.enable

self.user.email Link copied!

Type: string matching the pattern .*@.*

Email address of the main user.

Default: ${user.name}@disroot.org
Declared in: self.user.email

self.user.fullName Link copied!

Type: string

Full name of the main user.

Default: capitalize user.name
Declared in: self.user.fullName

self.user.name Link copied!

Type: string

Username of the main user.

Default: "ratakor"
Declared in: self.user.name

self.wallpapers Link copied!

Type: absolute path

Directory with all available wallpapers.

Default: "https://github.com/ratakor/wallpapers/archive/8e1acff81f3a6c326dd3cf7a9e035caf51ee8a31.tar.gz"
Declared in: self.wallpapers