Skip to content

NixOS Module Options

custom.usersGlobalGroups

A list of groups that every user on this machine should be part of

Type: with lib.types; listOf str

Default: []

custom.users

Type:

with lib.types;
attrsOf (submodule {
  options = {
    isSuperUser = lib.mkEnableOption "Whether this user is a super user";

    groups = lib.mkOption {
      type = listOf str;
      description = "A list of groups that this user should be in";
      default = [];
    };

    homeManager = {
      enable = lib.mkEnableOption "Enable home-manager configuration for this user";

      config = lib.mkOption {
        type = path;
        description = "Path to the home-manager config file";
      };
    };

    ssh = {
      keys = lib.mkOption {
        type = listOf str;
        description = "A list of public keys that are authorized to connect";
        default = [];
      };
    };
  };
})

custom.wm.kodi.enable

Whether to enable Enable Kodi home theater software.

Type: boolean

Default: false

Example: true

custom.wm.x11.i3.enable

Whether to enable Enable i3 wm.

Type: boolean

Default: false

Example: true

custom.wm.lockscreens.gtklock.enable

Whether to enable Enable GTK lock screen.

Type: boolean

Default: false

Example: true

custom.wm.wayland.sway.osd.enable

Enable sway osd

Type: lib.types.bool

Default: config.custom.wm.wayland.sway.enable

custom.wm.wayland.sway.enable

Whether to enable Enable sway window manager.

Type: boolean

Default: false

Example: true

custom.wm.wayland.sway.useSwayFx

Type: lib.types.bool

Default: true

custom.virtualisation.docker.enable

Whether to enable Enable Docker.

Type: boolean

Default: false

Example: true

custom.virtualisation.waydroid.enable

Whether to enable Enable Android virtualisation software.

Type: boolean

Default: false

Example: true

custom.virtualisation.qemu.enable

Whether to enable Enable virtualisation software.

Type: boolean

Default: false

Example: true

custom.virtualisation.qemu.graphical

Whether to enable Enable graphical interface.

Type: boolean

Default: false

Example: true

custom.programs.sudo-rs.enable

Whether to enable Enable sudo-rs, a secure sudo replacement.

Type: boolean

Default: false

Example: true

custom.programs.zsh.enable

Whether to enable Enable ZSH shell.

Type: boolean

Default: false

Example: true

custom.programs.steam.enable

Whether to enable Enable Steam game launcher application.

Type: boolean

Default: false

Example: true

custom.programs.mconnect.enable

Whether to enable Enable MConnect, a KDE connect implementation in Vala.

Type: boolean

Default: false

Example: true

custom.programs.teamviewer.enable

Whether to enable Enable TeamViewer remote desktop interface.

Type: boolean

Default: false

Example: true

custom.programs.adb.enable

Whether to enable Enable Android build tools.

Type: boolean

Default: false

Example: true

custom.builders.enable

Whether to enable Enable remote build.

Type: boolean

Default: false

Example: true

custom.builders.machines

Type:

lib.types.listOf (lib.types.submodule {
  options = {
    hostName = lib.mkOption {
      type = lib.types.str;
      description = "The hostname of the build machine.";
    };

    system = lib.mkOption {
      type = lib.types.nullOr lib.types.str;
      default = null;
      example = "x86_64-linux";
      description = ''
        The system type the build machine can execute derivations on.
        Either this attribute or {var}`systems` must be
        present, where {var}`system` takes precedence if
        both are set.
      '';
    };
  };
})

Default: []

custom.linux.cachyos.useKernel

Whether to enable Use the CachyOS kernel instead of the default Linux kernel.

Type: boolean

Default: false

Example: true

custom.dm.emptty.enable

Whether to enable Enable emptty display manager.

Type: boolean

Default: false

Example: true

custom.dm.greetd.enable

Whether to enable Enable greetd display manager.

Type: boolean

Default: false

Example: true

custom.fs.zfs.enable

Whether to enable Enable ZFS file system.

Type: boolean

Default: false

Example: true

custom.security.keyring.enable

Whether to enable Enable keyring.

Type: boolean

Default: false

Example: true

custom.services.motd.enable

Whether to enable Enable custom MOTD.

Type: boolean

Default: false

Example: true

custom.services.motd.settings.fileSystems

A list of filesystems that should be shown

Type: lib.types.attrsOf lib.types.str

Default: {}

custom.services.gamemode.enable

Whether to enable Enable Gamemode performance optimizer.

Type: boolean

Default: false

Example: true

custom.services.sunshine.enable

Whether to enable Enable sunshine game streaming host.

Type: boolean

Default: false

Example: true

custom.services.sunshine.openFirewall

Whether to enable Open required ports on firewall.

Type: boolean

Default: false

Example: true

custom.services.gvfs.enable

Whether to enable Enable GVFS virtual fs.

Type: boolean

Default: false

Example: true

custom.services.kdeconnect.openFirewall

Whether to enable Open needed ports in firewall.

Type: boolean

Default: false

Example: true

custom.services.invidious.enable

Whether to enable Enable Invidious YouTube frontend.

Type: boolean

Default: false

Example: true

custom.services.invidious.port

The port to run the service on

Type: lib.types.int

custom.services.invidious.domain

The external domain the service can be reached from

Type: lib.types.str

custom.services.openssh.enable

Whether to enable Enable OpenSSH server.

Type: boolean

Default: false

Example: true

custom.services.openssh.openFirewall

Open firewall ports

Type: lib.types.bool

Default: config.networking.firewall.enable

custom.services.fail2ban.enable

Whether to enable Enable Fail2ban intrusion prevention software.

Type: boolean

Default: false

Example: true

custom.services.autoUpgrade.enable

Whether to enable Enable system auto upgrade service.

Type: boolean

Default: false

Example: true

custom.services.autoUpgrade.flake

The flake uri of the NixOS config to upgrade to

Type: lib.types.str

Default: "github:guusvanmeerveld/nixos-config"

custom.services.syncthing.enable

Whether to enable Enable Syncthing file sync client.

Type: boolean

Default: false

Example: true

custom.services.syncthing.user

Type: lib.types.str

Default: "guus"

custom.services.syncthing.group

Type: lib.types.str

Default: "users"

custom.services.syncthing.dataDir

Type: lib.types.str

Default: "/home/guus"

custom.services.syncthing.keyFile

Type: lib.types.str

Default: "/secrets/syncthing/key.pem"

custom.services.syncthing.certFile

Type: lib.types.str

Default: "/secrets/syncthing/cert.pem"

custom.services.syncthing.port

The port to run the service on

Type: lib.types.ints.u16

Default: 8384

custom.services.syncthing.caddy.enable

Enable Caddy integration

Type: lib.types.bool

Default: config.services.caddy.enable

custom.services.syncthing.caddy.url

The external domain the service can be reached from

Type: lib.types.str

custom.services.syncthing.folders

A list of folders that should be shared

Type: with lib.types; attrsOf str

Default: {}

custom.services.syncthing.openFirewall

Open syncthing ports in firewall

Type: lib.types.bool

Default: cfg.enable

custom.services.syncthing.fileTransferPort

Type: lib.types.ints.u16

Default: 22000

custom.services.syncthing.discoveryPort

Type: lib.types.ints.u16

Default: 21027

custom.services.dnsmasq.enable

Whether to enable Enable dnsmasq DNS service.

Type: boolean

Default: false

Example: true

custom.services.dnsmasq.redirects

Redirect a given domain name to a given ip address

Type: lib.types.attrsOf lib.types.str

Default: {}

custom.services.dnsmasq.upstream-servers

The servers to reroute the dns requests to

Type: lib.types.listOf lib.types.str

Default: ["1.1.1.1"]

custom.services.dnsmasq.openFirewall

Whether to enable Open default firewall ports.

Type: boolean

Default: false

Example: true

custom.services.samba.client.enable

Whether to enable Enable Samba share mount client.

Type: boolean

Default: false

Example: true

custom.services.samba.client.credentialsFile

The location of the credentials file

Type: lib.types.str

Default: "/secrets/samba/client/default"

custom.services.samba.client.shares

Type:

lib.types.listOf (lib.types.submodule {
  options = {
    host = {
      dir = lib.mkOption {
        type = lib.types.str;
        description = "The location of the mount on the host";
      };

      uid = lib.mkOption {
        type = lib.types.nullOr lib.types.ints.u16;
        default = null;
      };

      gid = lib.mkOption {
        type = lib.types.nullOr lib.types.ints.u16;
        default = null;
      };

      dirMode = lib.mkOption {
        type = lib.types.str;
        default = "0755";
      };

      fileMode = lib.mkOption {
        type = lib.types.str;
        default = "0644";
      };

      credentialsFile = lib.mkOption {
        type = lib.types.str;
        description = "The location of the credentials file";
        default = cfg.credentialsFile;
      };
    };

    remote = {
      host = lib.mkOption {
        type = lib.types.str;
        description = "The hostname of the machine running the samba server";
      };

      dir = lib.mkOption {
        type = lib.types.str;
        description = "The location of the mount on the host";
      };
    };
  };
})

Default: []

custom.services.samba.server.enable

Whether to enable Enable Samba file sharing server.

Type: boolean

Default: false

Example: true

custom.services.samba.server.shares

Paths to share using samba

Type: with lib.types; attrsOf str

Default: {}

custom.hardware.argon40.enable

Whether to enable Enable Argon RPI case management service.

Type: boolean

Default: false

Example: true

custom.hardware.argon40.eon.enable

Whether to enable Enable support for the EON case.

Type: boolean

Default: false

Example: true

custom.hardware.video.nvidia.enable

Whether to enable Enable NVIDIA gpu support.

Type: boolean

Default: false

Example: true

custom.hardware.video.amd.enable

Whether to enable Enable AMD gpu support.

Type: boolean

Default: false

Example: true

custom.hardware.video.amd.vrr.enable

Whether to enable Enable Variable Refresh Rate support.

Type: boolean

Default: false

Example: true

custom.hardware.video.amd.polaris.enable

Whether to enable Enable OpenCL for RX 500 series based GPUs.

Type: boolean

Default: false

Example: true

custom.hardware.upower.enable

Whether to enable Enable Upower, a DBus service that provides power management support to applications..

Type: boolean

Default: false

Example: true

custom.hardware.openrgb.enable

Whether to enable Enable OpenRGB application.

Type: boolean

Default: false

Example: true

custom.hardware.hyperx.cloud-flight-s.enable

Whether to enable Enable hardware support for the HyperX Cloud Flight S.

Type: boolean

Default: false

Example: true

custom.hardware.disko.enable

Whether to enable Enable Disko disk management.

Type: boolean

Default: false

Example: true

custom.hardware.disko.device

The disk to use as the main boot drive

Type: lib.types.str

custom.hardware.disko.swap.size

How large the swap partition should be

Type: lib.types.str

custom.hardware.plymouth.enable

Whether to enable Enable boot loading animation.

Type: boolean

Default: false

Example: true

custom.hardware.power.thermald.enable

Whether to enable Enable Thermald thermal management for Intel CPUs.

Type: boolean

Default: false

Example: true

custom.hardware.power.tlp.enable

Whether to enable Enable TLP laptop power management.

Type: boolean

Default: false

Example: true

custom.hardware.input.corsair.enable

Whether to enable Enable Corsair keyboard support application.

Type: boolean

Default: false

Example: true

custom.hardware.input.logitech.enable

Whether to enable Enable Logitech hardware support.

Type: boolean

Default: false

Example: true

custom.hardware.sound.pipewire.enable

Whether to enable Enable pipewire sound engine.

Type: boolean

Default: false

Example: true

custom.hardware.bluetooth.enable

Whether to enable Enable Bluetooth.

Type: boolean

Default: false

Example: true

custom.networking.wireguard.enable

Whether to enable Enable Wireguard client.

Type: boolean

Default: false

Example: true

custom.networking.wireguard.openFirewall

Whether to enable Open default port.

Type: boolean

Default: false

Example: true

custom.networking.wireguard.port

The port to use for Wireguard connections

Type: lib.types.port

Default: 49999

custom.networking.wireguard.networks

Type:

with lib.types;
attrsOf (submodule ({name, ...}: {
  options = {
    enable = lib.mkEnableOption "Enable this network";

    privateKeyFile = lib.mkOption {
      type = lib.types.str;
      default = "/secrets/wireguard/${name}/private";
    };

    keepAlive = lib.mkEnableOption "Send keep alive to main server to keep NAT open";
  };
}))

Default: {}


Generated with nix-options-doc