Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Logo of DashNix

An opinionated flake to bootstrap NixOS systems with default configurations for various programs and services from both NixOS and HomeManager which can be enabled, disabled, configured or replaced at will.

Usage

This flake is intended to be used as an input to your own NixOS configuration:

dashNix = {
  url = "github:Xetibo/DashNix";
  inputs = {
    # ensure these are here to update the packages on your own
    nixpkgs.follows = "nixpkgs";
    stable.follows = "stable";
  };
};

You can then configure your systems in your flake outputs with a provided library command:

nixosConfigurations = inputs.dashNix.dashNixLib.buildSystems { root = ./.; };

This command will build each system that is placed within the hosts/ directory. In this directory create one directory for each system you want to configure with DashNix. This will automatically pick up the hostname for the system and look for 3 different files that are explained below. (Optionally, you can also change the parameter root (./.) to define a different starting directory than hosts/)

In order for your configuration to work, you are required to at least provide a single config file with a further config file being optional for custom configuration. The hardware.nix specifies additional NixOS configuration, while home.nix specifies additional home-manager configuration. (both optional)

|- flake.nix
|- flake.lock
|- hosts/
|--- system1/
|------ configuration.nix (required)
|------ hardware.nix (optional)
|------ home.nix (optional)
|--- system2/
|------ configuration.nix (required)
|------ hardware.nix (optional)
|------ home.nix (optional)
|--- system3/
|------ configuration.nix (required)
|------ hardware.nix (optional)
|------ home.nix (optional)

Here is a minimal required configuration.nix (the TODOs mention a required change):

{config, ...}: {
  # TODO denote important changes

  # variables for system
  conf = {
    # TODO your username
    username = "YOURNAME";
    # TODO only needed when you use intel -> amd is default
    # cpu = "intel";
    # TODO your xkb layout
    locale = "something.UTF-8";
    # TODO your timezone
    timezone = "CONTINENT/CITY";
  };

  # modules
  mods = {
    # default disk config has root home boot and swap partition, overwrite if you want something different
    sops.enable = false;
    nextcloud.enable = false;
    hypr.hyprland = {
        # TODO monitor configuration for hyprland (hyprland is default)
        # should be something like DP-1
        defaultMonitor = "YOURMONITOR";
        # width x height  @ refreshrate
        defaultMonitorMode = "1920x1080@60";
        # scale for your main monitor
        defaultMonitorScale = "1";
        # additional configruation can be done as well
        # customConfig = {
        #   monitor = [
        #     # default
        #     "${config.mods.hypr.hyprland.defaultMonitor},${config.mods.hypr.hyprland.defaultMonitorMode},0x0,${config.mods.hypr.hyprland.defaultMonitorScale}"
        #     # second example monitor
        #     "DP-2,3440x1440@180,auto,1"
        #     # all others
        #     ",highrr,auto,1"
        #   ];
        # }
    };
    gpu.nvidia.enable = true;
    kdeConnect.enable = true;
    # login manager:
    # default is greetd
    # greetd = { };
    # sddm = { };
    # gdm = { };
    drives = {
        # default assumes ROOT, BOOT, HOME and SWAP labaled drives exist
        # for an example without HOME see below
        # defaultDrives.enable = false;
        # extraDrives = [
        #   {
        #     name = "boot";
        #     drive = {
        #       device = "/dev/disk/by-label/BOOT";
        #       fsType = "vfat";
        #       options = [ "rw" "fmask=0022" "dmask=0022" "noatime" ];
        #     };
        #   }
        #   {
        #     name = "";
        #     drive = {
        #       device = "/dev/disk/by-label/ROOT";
        #       fsType = "ext4";
        #       options = [ "noatime" "nodiratime" "discard" ];
        #     };
        #   }
        # ];
        # You can also use disko to format your disks on installation.
        # Please refer to the Documentation about the drives module for an example.
    };
  };
}

First Login

After logging in the first time, your password will be set to "firstlogin", please change this to whatever you like.

Nixos and Home-manager Modules

You can add additional modules or remove all of them by overriding parameters to the buildSystems command:

nixosConfigurations =
    let
        additionalMods = {
            nixos = [
            # your modules
            ]; home = [
            # your modules
            ];
        }
        # passing this parameter will override the existing modules
        mods = {
            nixos = [];
            home = [];
        }
    in
    inputs.dashNix.dashNixLib.buildSystems { root = ./.; inherit mods additionalMods; };

Additional Inputs

Just like modules, you can add additional inputs to your configuration.

nixosConfigurations =
    let
        additionalInputs = {
            something.url = "yoururl"
        }
    in
    inputs.dashNix.dashNixLib.buildSystems { root = ./.; inherit additionalInputs; };

Stable/Unstable

Sometimes you want to differentiate between systems that are stable and unstable, e.g. for servers and desktops/laptops. This can be done with the overridePkgs flag for the lib function:

 nixosConfigurations =
   inputs.dashNix.dashNixLib.buildSystems {
     root = ./stable;
     inherit additionalInputs;
     overridePkgs = true;
   }
   // inputs.dashNix.dashNixLib.buildSystems {
     root = ./unstable;
     inherit additionalInputs;
   };

You can now place your systems in the respective directories. Keep in mind that the hosts directory will still need to exist in each variant. E.g. stable/hosts/yourserver and unstable/hosts/yourdesktop

Installation

You can find a custom ISO on my NextCloud server: Link. With this, you will receive the example config in /iso/example alongside the gnome desktop environment, as well as a few tools like gnome-disks, Neovim, Vscodium, a browser etc.

Alternatively, you can use whatever NixOS installer and just install your config from there, just make sure to set the drive configuration before.

Commands

First, copy the read-only config from /iso/example-config to a location of your choice.

cp /iso/example-config ~/config -r

Then configure as you please and choose a command below depending on your disk installation variant.

Installation via manual configuration:

sudo nixos-install --flake <flakelocation>#<hostname> --root <mountpoint>
#example
#nixos-install --flake ~/config#globi --root /mnt

Installation via disko:

sudo disko-install --flake <flakelocation>#<hostname> --disk <disk-name> <disk-device>
#example
#disko-install -- --flake ~/config#globi --disk main /dev/nvme0n1

Modules

This configuration features several modules that can be used as preconfigured "recipies". These modules attempt to combine the home-manager and nixos packages/options to one single configuration file for each new system. For package lists, please check the individual modules, as the lists can be long.

  • Hyprland: Installs and configures Hyprland with various additional packages
  • acpid : Enables the acpid daemon
  • base packages : A list of system packages to be installed by default
  • bluetooth : Configures/enables bluetooth and installs tools for bluetooth
  • coding packages : A list of coding packages to be installed by default
  • drives : A drive configuration module
  • firefox: Enables and configures firefox (extensions and settings)
  • fish: Enables and configures fish shell
  • gaming : Configures gaming related features (launchers, gamemode)
  • git : Git key and config module
  • gnome_services : Gnome services for minimal enviroments -> Window managers etc
  • gpu : GPU settings (AMD)
  • greetd : Enables and configures the greetd/regreet login manager with Hyprland
  • home packages : A list of home packages to be installed by default
  • kde_connect : Enables KDE connect and opens its ports
  • keepassxc : Configures keepassxc
  • kitty: Enables and configures kitty terminal
  • layout : Modules to configure keyboard layout system wide
  • media packages : A list of media packages to be installed by default
  • mime: Mime type configuration
  • nextcloud : Handles synchronization via nextcloud cmd. (requires config.sops.secrets.nextcloud)
  • oxi: My own programs, can be selectively disabled, or as a whole
  • piper : Installs and enables piper alongside its daemon
  • plymouth: enable or disable plymouth
  • printing : Enables and configures printing services
  • scripts: Various preconfigured scripts with the ability to add more
  • sops: Enables sops-nix
  • starship : Configures the starship prompt
  • stylix : Configures system themes, can also be applied to dashvim if used.
  • teams: For the poor souls that have to use this....
  • virtualbox : Enables and configures virtualbox
  • xkb: Keyboard layout configuration
  • xone : Installs the xone driver
  • yazi: Installs yazi and sets custom keybinds

Credits

  • Fufexan for the xdg-mime config:
  • Catppuccin for base16 colors and zen-browser css
  • Danth for providing a base for the nix docs
  • chermnyx for providing a base for zen configuration
  • voronind-com for providing the darkreader configuration
  • Nix-Artwork for the Nix/NixOS logo (Tim Cuthbertson (@timbertson))

This file handles the basic configuration for settings like language, timezone, input, cpu etc.

conf.additionalBootKernalParams

additional kernelParams passed to bootloader

Type: list of string

Default: [ ]

Example: [ ]

conf.bootParams

Boot params

Type: list of string

Default: [ ]

Example:

[
  "resume=something"
]

conf.cpu

cpu microcode.

Type: one of “amd”, “intel”

Default: "amd"

Example: "intel"

conf.homeStateVersion

Home state version

Type: string

Default: "24.11"

Example: "23.05"

conf.kernelOverride

kernel to be used Has no examples as doc complains… #example = pkgs.linuxPackages_xanmod_latest;

Type: null or package

Default: null

conf.locale

The locale.

Type: string

Default: "en_US.UTF-8"

Example: "de_DE.UTF-8"

conf.nixosConfigPath

The path for your build command, you can then simply type rebuild to switch to a new configuration.

Type: string

Default: "/home/YOURNAME/gits/nixos/."

Example: "yourpath/."

conf.secureBoot

enables secure boot. Note: Secure boot is NOT reproducible Here are the necessary steps:

  • create your keys with sbctl -> sudo sbctl create-keys
  • build with systemd once -> set this to false and build once
  • build with secureBoot true
  • verify that your keys are signed (note, only systemd and your generations should now be signed): sudo sbtcl verify
  • enroll your keys (microsoft is necessary for windows dualboot support, leave it there): sudo sbctl enroll-keys --microsoft
  • reboot with secureboot enabled Note: Some motherboards have vendor specific keys for secure boot, this may not necessarily work with our self signed keys You likely have to disable these vendor specific keys (example HP: sure boot)

Type: unspecified value

Default: false

Example: true

conf.system

System architecture.

Type: one of “x86_64-linux”, “aarch64-linux”, “aarch64-linux-android”

Default: "x86_64-linux"

Example: "aarch64-linux"

conf.systemLocalTime

System time for dualbooting

Type: unspecified value

Default: false

Example: true

conf.systemStateVersion

System state version

Type: string

Default: "23.05"

Example: "24.11"

conf.timezone

The timezone.

Type: string

Default: "Europe/Zurich"

Example: "Europe/Berlin"

conf.useSystemdBootloader

use systemd bootloader.

Type: unspecified value

Default: true

Example: false

conf.username

The username.

Type: string

Default: "DashNix"

Example: "pingpang"

conf.wsl

Runs Nix in wsl

Type: unspecified value

Default: false

Example: true

mods.acpid.enable

Enables acpid.

Type: boolean

Default: false

Example: true

mods.anyrun.enable

Enables anyrun

Type: boolean

Default: false

Example: true

mods.anyrun.customConfig

Custom anyrun configuration. Will be merged with default configuration if enabled.

Type: attribute set of anything

Default: { }

Example: { }

mods.anyrun.customCss

Custom anyrun css. Will be merged with default css if enabled.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  #window {
    border-radius: none;
  }
''

mods.anyrun.useDefaultConfig

Use preconfigured anyrun config.

Type: boolean

Default: true

Example: false

mods.anyrun.useDefaultCss

Use preconfigured anyrun css.

Type: boolean

Default: true

Example: false

mods.basePackages.enable

Enables default system packages.

Type: boolean

Default: true

Example: false

mods.basePackages.additionalPackages

Additional packages to install. Note that these are installed even if base packages is disabled, e.g. you can also use this as the only packages to install.

Type: list of package

Default: [ ]

Example:

[
  <derivation openssl-3.4.1>
]

mods.basePackages.specialPrograms

special program configuration to be added which require programs.something notation.

Type: attribute set of anything

Default: { }

Example: { }

mods.basePackages.specialServices

special services configuration to be added which require an services.something notation.

Type: attribute set of anything

Default: { }

Example: { }

mods.bluetooth.enable

Enables bluetooth.

Type: boolean

Default: false

Example: true

mods.browser.brave.enable

Enables brave

Type: boolean

Default: false

Example: true

mods.browser.chromium.enable

Enables chromium

Type: boolean

Default: false

Example: true

mods.browser.firefox.enable

Enables firefox

Type: boolean

Default: false

Example: true

mods.browser.firefox.configuration

Firefox policy configuration. See https://mozilla.github.io/policy-templates/ for more information.

Type: attribute set of anything

Default:

{
  CaptivePortal = false;
  DisableFirefoxAccounts = false;
  DisableFirefoxStudies = true;
  DisablePocket = true;
  DisableTelemetry = true;
  DisplayBookmarksToolbar = "never";
  DisplayMenuBar = "default-off";
  EnableTrackingProtection = {
    Cryptomining = true;
    Fingerprinting = true;
    Locked = true;
    Value = true;
  };
  FirefoxHome = {
    Highlights = false;
    Pocket = false;
    Search = true;
    Snippets = false;
    TopSites = true;
  };
  NoDefaultBookmarks = true;
  OfferToSaveLogins = false;
  OfferToSaveLoginsDefault = false;
  PasswordManagerEnabled = false;
  UserMessaging = {
    ExtensionRecommendations = false;
    SkipOnboarding = true;
  };
}

Example: { }

mods.browser.firefox.darkreader

Whether to enable darkreader

Type: boolean

Default: true

Example: false

mods.browser.firefox.extensions

List of extensions via attrsets:

# id
# figure out the id via:
# nix run github:tupakkatapa/mozid -- 'https://addons.mozilla.org/en/firefox/addon/ublock-origin'
"uBlock0@raymondhill.net" = {
  # install url
  install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
  # method https://mozilla.github.io/policy-templates/#extensionsettings
  installation_mode = "force_installed";
};

Type: list of anything

Default:

[
  {
    "uBlock0@raymondhill.net" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/user-agent-string-switcher/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "{d7742d87-e61d-4b78-b8a1-b469842139fa}" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/vimium-ff/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "firefox@ghostery.com" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/ghostery/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "CanvasBlocker@kkapsner.de" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/canvasblocker/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "jid1-KKzOGWgsW3Ao4Q@jetpack" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/i-dont-care-about-cookies/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "keepassxc-browser@keepassxc.org" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/keepassxc-browser/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "@react-devtools" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/react-devtools/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "extension@redux.devtools" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/reduxdevtools/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "private-relay@firefox.com" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/private-relay/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
]

Example:

[
  {
    "78272b6fa58f4a1abaac99321d503a20@proton.me" = {
      install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/proton-pass/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
]

mods.browser.firefox.profiles

Firefox profiles

Type: list of attribute set of anything

Default:

[
  {
    name = "YOURNAME";
    value = {
      id = 0;
      isDefault = true;
    };
  }
  {
    name = "special";
    value = {
      id = 1;
      isDefault = false;
    };
  }
]

Example:

[
  {
    name = "custom";
    value = {
      extensions = {
        packages = [
          <derivation darkreader-4.9.106>
        ];
      };
      id = 0;
      isDefault = true;
    };
  }
]

mods.browser.librewolf.enable

Enables the librwolf browser

Type: boolean

Default: false

Example: true

mods.browser.librewolf.configuration

Librewolf policy configuration. See https://mozilla.github.io/policy-templates/ for more information.

Type: attribute set of anything

Default:

{
  CaptivePortal = false;
  DisableFirefoxAccounts = false;
  DisableFirefoxStudies = true;
  DisablePocket = true;
  DisableTelemetry = true;
  DisplayBookmarksToolbar = "never";
  DisplayMenuBar = "default-off";
  EnableTrackingProtection = {
    Cryptomining = true;
    Fingerprinting = true;
    Locked = true;
    Value = true;
  };
  FirefoxHome = {
    Highlights = false;
    Pocket = false;
    Search = true;
    Snippets = false;
    TopSites = true;
  };
  NoDefaultBookmarks = true;
  OfferToSaveLogins = false;
  OfferToSaveLoginsDefault = false;
  PasswordManagerEnabled = false;
  UserMessaging = {
    ExtensionRecommendations = false;
    SkipOnboarding = true;
  };
}

Example: { }

mods.browser.librewolf.darkreader

Whether to enable darkreader

Type: boolean

Default: true

Example: false

mods.browser.librewolf.extensions

List of extensions via attrsets:

# id
# figure out the id via:
# nix run github:tupakkatapa/mozid -- 'https://addons.mozilla.org/en/firefox/addon/ublock-origin'
"uBlock0@raymondhill.net" = {
  # install url
  install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
  # method https://mozilla.github.io/policy-templates/#extensionsettings
  installation_mode = "force_installed";
};

Type: list of anything

Default:

[
  {
    "uBlock0@raymondhill.net" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/user-agent-string-switcher/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "{d7742d87-e61d-4b78-b8a1-b469842139fa}" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/vimium-ff/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "firefox@ghostery.com" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/ghostery/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "CanvasBlocker@kkapsner.de" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/canvasblocker/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "jid1-KKzOGWgsW3Ao4Q@jetpack" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/i-dont-care-about-cookies/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "keepassxc-browser@keepassxc.org" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/keepassxc-browser/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "@react-devtools" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/react-devtools/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "extension@redux.devtools" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/reduxdevtools/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "private-relay@firefox.com" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/private-relay/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
]

Example:

[
  {
    "78272b6fa58f4a1abaac99321d503a20@proton.me" = {
      install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/proton-pass/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
]

mods.browser.librewolf.profiles

Librewolf profiles

Type: list of attribute set of anything

Default:

[
  {
    name = "YOURNAME";
    value = {
      id = 0;
      isDefault = true;
    };
  }
  {
    name = "special";
    value = {
      id = 1;
      isDefault = false;
    };
  }
]

Example:

[
  {
    name = "custom";
    value = {
      extensions = {
        packages = [
          <derivation darkreader-4.9.106>
        ];
      };
      id = 0;
      isDefault = true;
    };
  }
]

mods.browser.zen.enable

Enables the zen browser

Type: boolean

Default: false

Example: true

mods.browser.zen.configuration

Zen policy configuration. See https://mozilla.github.io/policy-templates for more information.

Type: attribute set of anything

Default:

{
  "3rdparty" = {
    Extensions = {
      "addon@darkreader.org" = {
        previewNewDesign = true;
        theme = {
          darkSchemeBackgroundColor = "#1e1e2e";
          darkSchemeTextColor = "#cdd6f4";
        };
      };
    };
  };
  CaptivePortal = false;
  DisableFirefoxStudies = true;
  DisablePocket = true;
  DisableTelemetry = true;
  EnableTrackingProtection = {
    Cryptomining = true;
    Fingerprinting = true;
    Locked = true;
    Value = true;
  };
  FirefoxHome = {
    Highlights = false;
    Pocket = false;
    Search = true;
    Snippets = false;
    TopSites = true;
  };
  NoDefaultBookmarks = true;
  PasswordManagerEnabled = false;
  UserMessaging = {
    ExtensionRecommendations = false;
    SkipOnboarding = true;
  };
}

Example: { }

mods.browser.zen.darkreader

Whether to enable darkreader

Type: boolean

Default: true

Example: false

mods.browser.zen.extensions

List of extensions via attrsets:

# id
# figure out the id via:
# nix run github:tupakkatapa/mozid -- 'https://addons.mozilla.org/en/firefox/addon/ublock-origin'
"uBlock0@raymondhill.net" = {
  # install url
  install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
  # method https://mozilla.github.io/policy-templates/#extensionsettings
  installation_mode = "force_installed";
};

Type: list of anything

Default:

[
  {
    "uBlock0@raymondhill.net" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/user-agent-string-switcher/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "{d7742d87-e61d-4b78-b8a1-b469842139fa}" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/vimium-ff/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "firefox@ghostery.com" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/ghostery/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "CanvasBlocker@kkapsner.de" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/canvasblocker/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "jid1-KKzOGWgsW3Ao4Q@jetpack" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/i-dont-care-about-cookies/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "keepassxc-browser@keepassxc.org" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/keepassxc-browser/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "@react-devtools" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/react-devtools/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "extension@redux.devtools" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/reduxdevtools/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
  {
    "private-relay@firefox.com" = {
      install_url = "https://addons.mozilla.org/firefox/downloads/latest/private-relay/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
]

Example:

[
  {
    "78272b6fa58f4a1abaac99321d503a20@proton.me" = {
      install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/proton-pass/latest.xpi";
      installation_mode = "normal_installed";
    };
  }
]

mods.browser.zen.profiles

Zen profiles

Type: list of attribute set of anything

Default:

[
  {
    name = "YOURNAME";
    value = {
      id = 0;
      isDefault = true;
      settings = {
        "cookiebanners.service.mode" = 2;
        "extensions.autoDisableScopes" = 0;
        "zen.theme.accent-color" = "#b4bbff";
        "zen.view.compact.hide-tabbar" = false;
        "zen.view.compact.hide-toolbar" = true;
        "zen.view.sidebar-expanded" = false;
        "zen.view.use-single-toolbar" = false;
        "zen.view.welcome-screen.seen" = true;
      };
    };
  }
  {
    name = "special";
    value = {
      id = 1;
      isDefault = false;
      settings = {
        "extensions.autoDisableScopes" = 0;
        "zen.theme.accent-color" = "#b4bbff";
        "zen.view.compact.hide-tabbar" = false;
        "zen.view.compact.hide-toolbar" = true;
        "zen.view.sidebar-expanded" = false;
        "zen.view.use-single-toolbar" = false;
        "zen.view.welcome-screen.seen" = true;
      };
    };
  }
]

Example:

[
  {
    name = "custom";
    value = {
      extensions = {
        packages = [
          <derivation darkreader-4.9.106>
        ];
      };
      id = 0;
      isDefault = true;
      settings = {
        extensions = {
          autoDisableScopes = 0;
        };
      };
    };
  }
]

mods.coding.enable

Enables coding packages.

Type: boolean

Default: true

Example: false

mods.coding.additionalPackages

Additional packages to be installed

Type: list of package

Default: [ ]

Example: [ ]

mods.coding.dashvim

Enables dashvim package.

Type: boolean

Default: true

Example: false

mods.coding.gh.enable

Enables and configures gh

Type: boolean

Default: true

Example: false

mods.coding.gh.config

config for gh. Keep in mind, empty values refer to using environment variables

Type: attribute set of anything

Default:

{
  aliases = {
    co = "pr checkout";
  };
  browser = "";
  editor = "";
  git_protocol = "ssh";
  http_unix_socket = "";
  pager = "";
  prefer_editor_prompt = "disabled";
  prompt = "enabled";
  version = 1;
}

Example: { }

mods.coding.gh.hosts

hosts for gh

Type: attribute set of anything

Default:

{
  "github.com" = {
    git_protocol = "ssh";
    user = "";
    users = {
      "" = "";
    };
  };
}

Example: { }

mods.coding.jetbrains

Enables jetbrains toolbox.

Type: boolean

Default: false

Example: true

mods.coding.languages.C-CPP.enable

Enables C/C++.

Type: boolean

Default: true

Example: false

mods.coding.languages.C-CPP.packages

C/C++ packages

Type: list of package

Default:

[
  <derivation bear-3.1.6>
  <derivation gdb-16.3>
  <derivation gcc-wrapper-14.3.0>
  <derivation clang-tools-19.1.7>
]

Example: [ ]

mods.coding.languages.asm.enable

Enables assembly.

Type: boolean

Default: true

Example: false

mods.coding.languages.asm.packages

assembly packages

Type: list of package

Default:

[
  <derivation asm-lsp-0.10.0>
]

Example: [ ]

mods.coding.languages.bash.enable

Enables bash.

Type: boolean

Default: true

Example: false

mods.coding.languages.bash.packages

bash packages

Type: list of package

Default:

[
  <derivation bash-language-server-5.6.0>
  <derivation shfmt-3.11.0>
]

Example: [ ]

mods.coding.languages.configFiles.enable

Enables Json/toml/yaml etc.

Type: boolean

Default: true

Example: false

mods.coding.languages.configFiles.packages

packages for said filetypes

Type: list of package

Default:

[
  <derivation yamlfmt-0.17.0>
  <derivation yamllint-1.37.1>
  <derivation yaml-language-server-1.18.0>
  <derivation jq-1.8.0>
]

Example: [ ]

mods.coding.languages.dotnet.enable

Enables C#/F#.

Type: boolean

Default: true

Example: false

mods.coding.languages.dotnet.packages

C#/F# packages

Type: list of package

Default:

[
  <derivation dotnet-sdk-wrapped-8.0.411>
  <derivation omnisharp-roslyn-1.39.13>
  <derivation csharpier-1.0.2>
  <derivation netcoredbg-3.1.2-1054>
  <derivation fsharp-4.0.1.1>
  <derivation fsautocomplete-0.78.3>
]

Example: [ ]

mods.coding.languages.gleam.enable

Enables gleam.

Type: boolean

Default: true

Example: false

mods.coding.languages.gleam.packages

gleam packages

Type: list of package

Default:

[
  <derivation gleam-1.11.1>
]

Example: [ ]

mods.coding.languages.go.enable

Enables go.

Type: boolean

Default: true

Example: false

mods.coding.languages.go.packages

Go packages

Type: list of package

Default:

[
  <derivation go-1.24.4>
  <derivation gopls-0.19.0>
]

Example: [ ]

mods.coding.languages.haskell.enable

Enables haskell.

Type: boolean

Default: true

Example: false

mods.coding.languages.haskell.packages

haskell packages

Type: list of package

Default:

[
  <derivation cabal-install-3.14.2.0>
  <derivation ghc-9.8.4>
  <derivation haskell-language-server-2.10.0.0>
]

Example: [ ]

mods.coding.languages.html-css.enable

Enables html/css.

Type: boolean

Default: true

Example: false

mods.coding.languages.html-css.packages

html/css packages

Type: list of package

Default:

[
  <derivation tailwindcss_3-3.4.17>
  <derivation tailwindcss-language-server-0.14.22>
]

Example: [ ]

mods.coding.languages.java.enable

Enables java.

Type: boolean

Default: true

Example: false

mods.coding.languages.java.packages

Java packages

Type: list of package

Default:

[
  <derivation gradle-8.14.1>
  <derivation maven-3.9.9>
  <derivation jdt-language-server-1.47.0>
  <derivation temurin-jre-bin-21.0.6>
]

Example: [ ]

mods.coding.languages.python.enable

Enables python.

Type: boolean

Default: true

Example: false

mods.coding.languages.python.packages

python packages

Type: list of package

Default:

[
  <derivation python3-3.13.4>
  <derivation python3.12-python-lsp-server-1.12.2>
  <derivation python3.12-python-lsp-ruff-2.2.2>
  <derivation python3.12-python-lsp-black-2.0.0>
]

Example: [ ]

mods.coding.languages.rust.enable

Enables rust.

Type: boolean

Default: true

Example: false

mods.coding.languages.rust.packages

Rust packages

Type: list of package

Default:

[
  <derivation rustup-1.28.2>
]

Example: [ ]

mods.coding.languages.sql.enable

Enables sql.

Type: boolean

Default: true

Example: false

mods.coding.languages.sql.packages

sql packages

Type: list of package

Default:

[
  <derivation sql-formatter-15.6.4>
  <derivation sqls-0.2.28>
]

Example: [ ]

mods.coding.languages.ts-js.enable

Enables TS/JS.

Type: boolean

Default: true

Example: false

mods.coding.languages.ts-js.packages

TS/JS packages

Type: list of package

Default:

[
  <derivation nodejs-20.19.2>
  <derivation deno-2.3.6>
  <derivation typescript-5.8.3>
  <derivation typescript-language-server-4.3.3>
  <derivation prettier-3.5.3>
]

Example: [ ]

mods.coding.languages.typst.enable

Enables typst.

Type: boolean

Default: true

Example: false

mods.coding.languages.typst.packages

typst packages

Type: list of package

Default:

[
  <derivation typst-0.13.1>
  <derivation tinymist-0.13.12>
]

Example: [ ]

mods.coding.languages.zig.enable

Enables zig.

Type: boolean

Default: true

Example: false

mods.coding.languages.zig.packages

zig packages

Type: list of package

Default:

[
  <derivation zig-0.14.1>
  <derivation zls-0.14.0>
]

Example: [ ]

mods.coding.neovide.enable

Enables neovide

Type: boolean

Default: false

Example: true

mods.coding.neovide.config

Config for neovide

Type: attribute set of anything

Default:

{
  font = {
    bold = {
      family = "JetBrainsMono Nerd Font Mono";
      style = "ExtraBold";
    };
    bold_italic = {
      family = "JetBrainsMono Nerd Font Mono";
      style = "Bold Italic";
    };
    italic = {
      family = "JetBrainsMono Nerd Font Mono";
      style = "Italic";
    };
    normal = {
      family = "JetBrainsMono Nerd Font Mono";
      style = "";
    };
    size = 12;
  };
}

Example: { }

mods.coding.penpot

Enables penpot

Type: boolean

Default: false

Example: true

mods.coding.useDefaultPackages

Use default base packages (only additionalPackages are installed if false)

Type: boolean

Default: true

Example: false

mods.coding.vscodium.enable

Enables vscodium.

Type: boolean

Default: false

Example: true

mods.coding.vscodium.extensions

Extensions to be installed

Type: list of package

Default: [ ]

Example: [ ]

mods.containers.combinedPackages

Container packages

Type: list of package

Default:

[
  <derivation dive-0.13.1>
]

Example: [ ]

mods.containers.dockerPackages

Docker packages

Type: list of package

Default:

[
  <derivation docker-compose-2.36.0>
]

Example: [ ]

mods.containers.podmanPackages

Podman packages

Type: list of package

Default:

[
  <derivation podman-tui-1.6.1>
  <derivation podman-compose-1.4.1>
]

Example: [ ]

mods.containers.variant

Enables and configures a containerization solution: podman/docker

Type: one of “”, “podman”, “docker”

Default: ""

Example: "podman"

mods.drives.defaultDrives.enable

Use default drive config.

  • Manual variant This config expects 4 different partitions on a single drive:

    • boot partition with BOOT label and vfat format (filesystem configurable)
    • swap partition with SWAP label
    • root partition with ROOT label and ext4 format (filesystem configurable)
    • home partition with HOME label and ext4 format (filesystem configurable)
    • gpt disk format

    NOTE: Any different configuration must be done manually with this turned off.

  • Disko variant This config creates 4 different partitions on a single drive:

    • boot partition with 1GB size and vfat format
    • swap partition with 32GB (size configurable)
    • root partition with 30% size and ext4 format (size and filesystem configurable)
    • home partition with 70%~ size and ext4 format (size and filesystem configurable)
    • gpt disk format

    NOTE: Any different configuration must be done manually with this turned off.

Type: boolean

Default: true

Example: false

mods.drives.disko.defaultDiskId

The name, ID, UUID or similar for the default drive.

Type: string

Default: "TODO"

Example: "/dev/nvme0n1"

mods.drives.disko.rootAmount

The percentage of the disk for root. (Home will take up the rest) (Only for disko)

Type: signed integer or floating point number

Default: 30

Example: 40

mods.drives.disko.swapAmount

The amount of swap to use. (Only for disko)

Type: signed integer or floating point number

Default: 32

Example: 64

mods.drives.extraDrives

Extra drives to add. Please ensure to add variant compliant attrsets (manual/disko). (The example is for manual variant, here an example for disko):

  drive2 = (lib.optionalAttrs config.mods.drives.defaultDrives.enable) {
    device = "/dev/nvme1n1"
    type = "disk";
    content = {
      type = "gpt";
      partitions = {
        drive2 = {
          start = "0%";
          end = "100%";
          content = {
            type = "filesystem";
            format = "ext4";
            mountpoint = "/drive2";
            mountOptions = [
              "noatime"
              "nodiratime"
              "discard"
            ];
          };
        };
      };
    };
  };

Type: list of attribute set of anything

Default: [ ]

Example:

[
  {
    drive = {
      device = "/dev/disk/by-label/DRIVE2";
      fsType = "ext4";
      options = [
        "noatime"
        "nodiratime"
        "discard"
      ];
    };
    name = "drive2";
  }
]

mods.drives.homeAndRootFsTypes

Filesystem for the home and root partitions.

Type: one of “btrfs”, “ext2”, “ext3”, “ext4”, “exfat”, “f2fs”, “fat8”, “fat16”, “fat32”, “ntfs”, “xfs”, “zfs”

Default: "ext4"

Example: "btrfs"

mods.drives.useEncryption

Enables encryption. !WARNING! You need your root drive to be named root exactly! Otherwise there will not be a root crypt! !WARNING!

Type: boolean

Default: false

Example: true

mods.drives.useSwap

Use swap in drive.

Type: boolean

Default: true

Example: false

mods.drives.variant

Disk configuration type, either “manual” for regular NixOS disk configuration, or “disko” for using disko to automatically format your drives.

Type: one of “manual”, “disko”

Default: "manual"

Example: "disko"

mods.fancontrol.enable

Enables fancontrol-gui with needed drivers

Type: boolean

Default: false

Example: true

mods.fancontrol.forceId

Modprobe options for the it87 driver. Information at: https://wiki.archlinux.org/title/Lm_sensors#Gigabyte_B250/Z370/B450M/B560M/B660M/Z690/B550_motherboards

Type: null or string

Default: null

Example: "force_id=0x8628"

mods.fish.enable

Enables fish

Type: boolean

Default: true

Example: false

mods.fish.additionalConfig

Additional fish config

Type: strings concatenated with “\n”

Default: ""

Example: ""

mods.fish.useDefaultConfig

Use default fish config

Type: boolean

Default: true

Example: false

mods.flatpak.enable

Enables the flatpak package manager

Type: boolean

Default: false

Example: true

mods.gaming.enable

Enabled gaming related features.

Type: boolean

Default: false

Example: true

mods.gaming.gamemode

Whether to use gamemode

Type: boolean

Default: true

Example: false

mods.gaming.gpuDevice

Your gpu device.(Physical id of lshw)

Type: signed integer

Default: 0

Example: 1

mods.gaming.gpuOptimization

Whether to use GPU performance setting. NOTE: this is at your own risk!

Type: boolean

Default: true

Example: false

mods.gaming.kernel

Whether to use the CachyOS kernel

Type: boolean

Default: true

Example: false

mods.gaming.parkCores

Park Cores gamemode config

Type: string

Default: "false"

Example: "true"

mods.gaming.pinCores

Pin Cores gamemode config

Type: string

Default: "false"

Example: "true"

mods.gaming.steam

Whether to use steam

Type: boolean

Default: true

Example: false

mods.gaming.tools

Install gaming related packages

Type: list of package

Default:

[
  <derivation gamescope-3.16.14>
  <derivation gamemode-1.8.2>
  <derivation steam>
  <derivation lutris-0.5.19>
  <derivation wine-wow-10.0>
  <derivation adwsteamgtk-0.8.0>
  <derivation heroic-2.17.2>
  <derivation mangohud-0.8.1>
]

Example: [ ]

mods.gdm.enable

Enables the gdm displayManager

Type: boolean

Default: false

Example: true

mods.gdm.extraOptions

Extra options to be applied to the gnome config

Type: attribute set of anything

Default: { }

Example: { }

mods.git.additionalConfig

Additional git config

Type: attribute set of anything

Default:

{
  diff = {
    tool = "nvimdiff";
  };
  merge = {
    tool = "nvimdiff";
  };
  pull = {
    rebase = true;
  };
}

Example:

{
  pull = {
    rebase = false;
  };
}

mods.git.email

Git email

Type: string

Default: ""

Example: "globi@globus.glob"

mods.git.sshConfig

ssh configuration (keys for git)

Type: strings concatenated with “\n”

Default: ""

Example:

''
  Host github.com
    
''

mods.git.username

Git user name

Type: string

Default: ""

Example: "globi"

mods.gnome.enable

Enables the Gnome desktop environment

Type: boolean

Default: false

Example: true

mods.gnome.extraDconf

Extra options to be applied to the dconf config

Type: attribute set of anything

Default: { }

Example: { }

mods.gnome.extraOptions

Extra options to be applied to the gnome config

Type: attribute set of anything

Default: { }

Example: { }

mods.gnome.useDefaultOptions

Use default options provided by module. If disabled, will only apply extraOptions.

Type: boolean

Default: true

Example: false

mods.gnomeServices.enable

Enables gnome services: keyring and settings daemon. Note: Do not use these for environments which ship these functionalities by default: GNOME, KDE

Type: boolean

Default: true

Example: false

mods.gpu.amdgpu.enable

Enables amdgpu support.

Type: boolean

Default: false

Example: true

mods.gpu.intelgpu.enable

Enables intel support.

Type: boolean

Default: false

Example: true

mods.gpu.nvidia.enable

Enables nvidia support.

Type: boolean

Default: false

Example: true

mods.gpu.vapi.enable

Enables vapi.

Type: boolean

Default: true

Example: false

mods.gpu.vapi.rocm.enable

Enables rocm support.

Type: boolean

Default: false

Example: true

mods.greetd.enable

Enables the greetd login manager.

Type: boolean

Default: true

Example: false

mods.greetd.environments

List of environments that should be available in the login prompt.

Type: list of package

Default:

[
  <derivation hyprland-0.49.0+date=2025-06-22_dd33128>
]

Example:

[
  <derivation niri-25.05.1>
  <derivation river-0.3.10>
  <derivation swayfx-0.5>
]

mods.greetd.greeterCommand

The compositor/greeter command to run

Type: string

Default: "/nix/store/3rcd83fa56js1sxy5gjkvjdm16amw7gp-hyprland-0.49.0/bin/Hyprland --config /etc/greetd/hyprgreet.conf"

Example: "/nix/store/c847ghnv7xy33jnc6j3m40cx980x14im-cage-0.2.0/bin/cage -s -- /nix/store/8rc029rxrww7wm1dizh8jvqijiwmnklh-regreet-0.2.0/bin/regreet"

mods.greetd.monitor

main monitor for the login screen. By default the main monitor is used.

Type: string

Default: "YOURMONITOR"

Example: "eDP-1"

mods.greetd.regreet.customSettings

Custom regret settings. See https://github.com/rharish101/ReGreet/blob/main/regreet.sample.toml for more information.

Type: attribute set of anything

Default: { }

Example: { }

mods.greetd.resolution

Resolution/refreshrate used by the monitor in the login screen.

Type: string

Default: "1920x1080@60"

Example: "3440x1440@180"

mods.greetd.scale

Scale used by the monitor in the login screen. By default the scale of the main monitor is used.

Type: string

Default: "1"

Example: "1.5"

mods.homePackages.additionalPackages

Additional Home manager packages. Will be installed regardless of default home manager packages are installed.

Type: list of package

Default: [ ]

Example:

[
  <derivation flatpak-1.16.1>
]

mods.homePackages.browser

The browser (the enum variants have preconfigured modules)

Type: null or one of “firefox”, “zen”, “librewolf”, “chromium”, “brave” or package

Default: "zen"

Example: "firefox"

mods.homePackages.mailClient

The email client

Type: null or package

Default: <derivation thunderbird-138.0.1>

Example: null

mods.homePackages.matrixClient

The matrix client

Type: null or package

Default: <derivation nheko-0.12.0>

Example: null

mods.homePackages.ncspot

Adds the ncspot spotify client

Type: boolean

Default: false

Example: true

mods.homePackages.nextcloudClient

Adds the full desktop nextcloud client (the nextcloud module in dashnix only provides the cli tool)

Type: boolean

Default: false

Example: true

mods.homePackages.orcaSlicer

Enables orca slicer

Type: boolean

Default: false

Example: true

mods.homePackages.specialPrograms

special program configuration to be added which require programs.something notation.

Type: attribute set of anything

Default: { }

Example: { }

mods.homePackages.specialServices

special services configuration to be added which require an services.something notation.

Type: attribute set of anything

Default: { }

Example: { }

mods.homePackages.useDefaultPackages

Use default packages (will use additional_packages only if disabled)

Type: boolean

Default: true

Example: false

mods.homePackages.vesktop

Adds the vesktop discord client

Type: boolean

Default: true

Example: false

mods.hypr.hyprland.enable

Enable Hyprland

Type: boolean

Default: true

Example: false

mods.hypr.hyprland.customConfig

Custom Hyprland configuration. Will be merged with default configuration if enabled.

Type: attribute set of anything

Default: { }

Example: { }

mods.hypr.hyprland.defaultMonitor

main monitor

Type: string

Default: ""

Example: "eDP-1"

mods.hypr.hyprland.defaultMonitorMode

main monitor mode: width x height @ refreshrate

Type: string

Default: ""

Example: "3440x1440@180"

mods.hypr.hyprland.defaultMonitorScale

main monitor scaling

Type: string

Default: "1"

Example: "1.5"

mods.hypr.hyprland.extraAutostart

Extra exec_once.

Type: list of string

Default: [ ]

Example:

[
  "your application"
]

mods.hypr.hyprland.filePickerPortal

The file picker portal to use with Hyprland. Disable removes the config, allowing you to set it yourself.

Type: one of “gnome”, “kde”, “gtk”, “disable”

Default: "gtk"

Example: "kde"

mods.hypr.hyprland.hyprspaceEnable

Enables Hyprspace plugin for hyprland. Please note, plugins tend to break VERY often.

Type: boolean

Default: false

Example: true

mods.hypr.hyprland.ironbarSingleMonitor

Whether to use ironbar on a single monitor.

Type: boolean

Default: true

Example: false

mods.hypr.hyprland.monitor

The monitor configuration for hyprland.

Type: list of string

Default:

[
  "YOURMONITOR,1920x1080@60,0x0,1"
]

Example:

[
  "DP-1,3440x1440@180,2560x0,1,vrr,0"
]

mods.hypr.hyprland.noAtomic

Use tearing

Type: boolean

Default: false

Example: true

mods.hypr.hyprland.pluginConfig

Plugin configuration to be added to Hyprland.

Type: attribute set of anything

Default: { }

Example: { }

mods.hypr.hyprland.plugins

Plugins to be added to Hyprland.

Type: list of package

Default: [ ]

Example: [ ]

mods.hypr.hyprland.useDefaultConfig

Use preconfigured Hyprland config.

Type: boolean

Default: true

Example: false

mods.hypr.hyprland.useIronbar

Whether to use ironbar in hyprland.

Type: boolean

Default: true

Example: false

mods.hypr.hyprland.workspace

The workspace configuration for hyprland.

Type: list of string

Default: [ ]

Example:

[
  "2,monitor:DP-1, default:true"
]

mods.hypr.hyprlock.enable

Enables Hyprlock

Type: boolean

Default: true

Example: false

mods.hypr.hyprlock.config

config

Type: attribute set of anything

Default:

{
  background = [
    {
      color = "rgba(26, 27, 38, 1.0)";
      monitor = "";
      path = "";
    }
  ];
  input-field = [
    {
      monitor = "YOURMONITOR";
      placeholder_text = "password or something";
    }
  ];
  label = [
    {
      font_size = 50;
      halign = "center";
      monitor = "YOURMONITOR";
      position = "0, 200";
      text = "$TIME";
      valign = "center";
    }
  ];
}

Example: { }

mods.hypr.hyprpaper.enable

Enables Hyprpaper

Type: boolean

Default: true

Example: false

mods.hypr.hyprpaper.config

Hyprpaper config

Type: strings concatenated with “\n”

Default: ""

Example:

''
  preload = path/to/wallpaper
  wallpaper = YOURMONITOR,path/to/wallpaper
''

mods.ironbar.enable

Enables ironbar

Type: boolean

Default: false

Example: true

mods.ironbar.customConfig

Custom ironbar configuration. Will be merged with default configuration if enabled.

Type: attribute set of anything

Default: { }

Example: { }

mods.ironbar.customCss

Custom ironbar css. Will be merged with default css if enabled.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  #window {
    border-radius: none;
  }
''

mods.ironbar.useBatteryModule

Whether to use the preconfigured battery module.

Type: boolean

Default: false

Example: true

mods.ironbar.useDefaultConfig

Use preconfigured ironbar config.

Type: boolean

Default: true

Example: false

mods.ironbar.useDefaultCss

Use preconfigured ironbar css.

Type: boolean

Default: true

Example: false

mods.kde.enable

Enables the KDE desktop environment

Type: boolean

Default: false

Example: true

mods.kdeConnect.enable

Enables kde_connect.

Type: boolean

Default: false

Example: true

mods.keepassxc.enable

Enables the piper program and its daemon

Type: boolean

Default: true

Example: false

mods.keepassxc.cacheConfig

Cache config to be used.

Type: strings concatenated with “\n”

Default: ""

Example:

''
  [General]
  LastDatabases=/path/to/database
''

mods.keepassxc.config

Cache config to be used.

Type: strings concatenated with “\n”

Default:

''
  [General]
  ConfigVersion=2
  
  [Browser]
  Enabled=true
  
  [GUI]
  ApplicationTheme=classic
  HidePasswords=true
  MinimizeOnClose=true
  MinimizeToTray=true
  ShowTrayIcon=true
  TrayIconAppearance=monochrome-light
  
  [PasswordGenerator]
  Length=30
  
  [Security]
  EnableCopyOnDoubleClick=true
''

Example: ""

mods.keepassxc.useCacheConfig

Whether to overwrite the cache config of keepassxc. Note, this means that changes can’t be applied via the program anymore!

Type: boolean

Default: false

Example: true

mods.keepassxc.useConfig

Whether to overwrite the config of keepassxc. Note, this means that changes can’t be applied via the program anymore!

Type: boolean

Default: true

Example: false

mods.kitty.enable

Enables kitty

Type: boolean

Default: true

Example: false

mods.kitty.additionalConfig

Additional kitty configuration. Will be the only configuration if useDefaultConfig is disabled.

Type: attribute set of anything

Default: { }

Example:

{
  enable_audio_bell = "yes";
}

mods.kitty.useDefaultConfig

Enable default config for kitty

Type: boolean

Default: true

Example: false

mods.media.additionalPackages

Additional media packages.

Type: list of package

Default: [ ]

Example:

[
  <derivation flatpak-1.16.1>
]

mods.media.specialPrograms

special program configuration to be added which require programs.something notation.

Type: attribute set of anything

Default: { }

Example: { }

mods.media.specialServices

special services configuration to be added which require an services.something notation.

Type: attribute set of anything

Default: { }

Example: { }

mods.media.useBasePackages

Default media packages (If disabled, only the additional packages will be installed)

Type: boolean

Default: true

Example: false

mods.mime.enable

Enables mime handling with nix

Type: boolean

Default: true

Example: false

mods.mime.audioApplications

Applications used for handling audio mime types

Type: list of string

Default:

[
  "io.bassi.Amberol"
]

Example: [ ]

mods.mime.audioTypes

Audio mime handlers

Type: list of string

Default:

[
  "mp3"
  "flac"
  "wav"
  "aac"
]

Example: [ ]

mods.mime.browserApplications

Applications used for handling browser mime types

Type: list of string

Default:

[
  "zen"
]

Example: [ ]

mods.mime.browserTypes

Browser mime handlers

Type: list of string

Default:

[
  "json"
  "x-extension-htm"
  "x-extension-html"
  "x-extension-shtml"
  "x-extension-xht"
  "x-extension-xhtml"
]

Example: [ ]

mods.mime.browserXTypes

Browser X mime handlers

Type: list of string

Default:

[
  "about"
  "ftp"
  "http"
  "https"
  "unknown"
]

Example: [ ]

mods.mime.imageApplications

Applications used for handling image mime types

Type: list of string

Default:

[
  "imv"
]

Example: [ ]

mods.mime.imageTypes

Image mime handlers

Type: list of string

Default:

[
  "png"
  "svg"
  "jpeg"
  "gif"
]

Example: [ ]

mods.mime.videoApplications

Applications used for handling video mime types

Type: list of string

Default:

[
  "mpv"
]

Example: [ ]

mods.mime.videoTypes

Video mime handlers

Type: list of string

Default:

[
  "mp4"
  "avi"
  "mkv"
]

Example: [ ]

mods.ncspot.enable

Enables ncspot with a config

Type: boolean

Default: false

Example: true

mods.ncspot.config

config

Type: attribute set of anything

Default:

{
  cover_max_scale = 2;
  initial_screen = "library";
  keybindings = {
    ";" = "move right 1";
    j = "move left 1";
    k = "move down 1";
    l = "move up 1";
  };
  library_tabs = [
    "playlists"
  ];
  notification_format = {
    body = "%title";
    title = "%artists";
  };
  notify = true;
  shuffle = true;
  theme = {
    background = "#1a1b26";
    cmdline = "#c0caf5";
    cmdline_bg = "#24283b";
    error = "#414868";
    error_bg = "#f7768e";
    highlight = "#c0caf5";
    highlight_bg = "#24283b";
    playing = "#7aa2f7";
    playing_bg = "#24283b";
    playing_selected = "#bb9af7";
    primary = "#9aa5ce";
    search_match = "#f7768e";
    secondary = "#414868";
    statusbar = "#ff9e64";
    statusbar_bg = "#1a1b26";
    statusbar_progress = "#7aa2f7";
    title = "#9ece6a";
  };
}

Example: { }

mods.nextcloud.enable

Enable nextcloud

Type: boolean

Default: true

Example: false

mods.nextcloud.synclist

A list of folders to synchronize. This has to be an attribute list with the name, remote and local field (all strings).

Type: unspecified value

Default: [ ]

Example:

[
  {
    local = "/home/globi";
    name = "sync globi folder";
    remote = "globi";
  }
]

mods.nextcloud.url

Your url

Type: string

Default: ""

Example: "cloud.globi.org"

mods.nextcloud.username

Your username

Type: string

Default: ""

Example: "globi"

mods.onedrive.enable

Enable onedrive program and service

Type: boolean

Default: false

Example: true

mods.oxi.oxidash.enable

Enables and configures oxidash

Type: boolean

Default: true

Example: false

mods.oxi.oxinoti.enable

Enables and configures oxinoti

Type: boolean

Default: true

Example: false

mods.oxi.oxipaste.enable

Enables and configures oxipaste

Type: boolean

Default: true

Example: false

mods.oxi.oxirun.enable

Enables OxiRun

Type: boolean

Default: true

Example: false

mods.oxi.oxishut.enable

Enables and configures oxishut

Type: boolean

Default: true

Example: false

mods.piper.enable

Enables the piper program and its daemon

Type: boolean

Default: false

Example: true

mods.plymouth.enable

Enables the plymouth

Type: boolean

Default: true

Example: false

mods.printing.enable

Enables the piper program and its daemon

Type: boolean

Default: true

Example: false

mods.scripts.audioControl

Enables the audioControl script

Type: boolean

Default: true

Example: false

mods.scripts.changeBrightness

Enables the change-brightness script

Type: boolean

Default: true

Example: false

mods.scripts.scripts

More scripts to be passed. (check existing ones for types and examples)

Type: unspecified value

Default: [ ]

Example: [ ]

mods.sddm.enable

Enables the sddm displayManager

Type: boolean

Default: false

Example: true

mods.sddm.extraOptions

Extra options to be applied to the sddm config

Type: attribute set of anything

Default: { }

Example:

{
  wayland = {
    enable = false;
  };
}

mods.sddm.useDefaultOptions

Use default options provided by module. If disabled, will only apply extraOptions.

Type: boolean

Default: true

Example: false

mods.sops.enable

Enable sops secrets

Type: boolean

Default: true

Example: false

mods.sops.secrets

secrets for sops

Type: attribute set of anything

Default: { }

Example:

{
  YOURNAME = { };
  access = { };
  hub = { };
  lab = { };
  nextcloud = { };
}

mods.sops.sopsPath

sops secrets path

Type: string or absolute path

Default: /nix/store/0qnj09776cfg0anbimi4a2hlkj4bk01i-source/example/secrets/secrets.yaml

Example: "/your/path"

mods.sops.validateSopsFile

Whether to validate the sops file -> set this to false when using full paths

Type: boolean

Default: true

Example: false

mods.starship.enable

Enables starship prompt

Type: boolean

Default: true

Example: false

mods.starship.customPrompt

Custom configuration for prompt. Will be merged with preconfigured prompt if that is used.

Type: attribute set of anything

Default: { }

Example: { }

mods.starship.useDefaultPrompt

Enables preconfigured prompt

Type: boolean

Default: true

Example: false

mods.streamcontroller.enable

Enables streamcontroller

Type: boolean

Default: false

Example: true

mods.streamcontroller.configFilePath

Path to the config json for the streamcontroller. -> ./something.json

Type: null or absolute path

Default: null

mods.stylix.colorscheme

Base16 colorscheme. Can be an attribute set with base00 to base0F, a string that leads to a yaml file in base16-schemes path, or a path to a custom yaml file.

Also supports the oxiced theme in an oxiced attrset.

Type: string or (attribute set) or absolute path

Default: "catppuccin-mocha"

Example:

{
  base00 = "1A1B26";
  base01 = "191a25";
  base02 = "2F3549";
  base03 = "444B6A";
  base04 = "787C99";
  base05 = "A9B1D6";
  base06 = "CBCCD1";
  base07 = "D5D6DB";
  base08 = "C0CAF5";
  base09 = "A9B1D7";
  base0A = "0DB9D7";
  base0B = "9ECE6A";
  base0C = "B4F9F8";
  base0D = "366fea";
  base0E = "BB9AF7";
  base0F = "F7768E";
}

mods.stylix.cursor

Xcursor config

Type: attribute set of anything

Default:

{
  name = "Bibata-Modern-Classic";
  package = <derivation bibata-cursors-2.0.7>;
  size = 24;
}

Example: { }

mods.stylix.fonts

font config

Type: attribute set of anything

Default:

{
  emoji = {
    name = "Noto Color Emoji";
    package = <derivation noto-fonts-color-emoji-2.047>;
  };
  monospace = {
    name = "JetBrainsMono Nerd Font Mono";
    package = <derivation nerd-fonts-jetbrains-mono-3.4.0+2.304>;
  };
  sansSerif = {
    name = "Adwaita Sans";
    package = <derivation adwaita-fonts-48.2>;
  };
  serif = {
    name = "Adwaita Sans";
    package = <derivation adwaita-fonts-48.2>;
  };
}

Example: { }

mods.superfreq.enable

Enables superfreq

Type: boolean

Default: false

Example: true

mods.superfreq.settings

Superfreq config

Type: attribute set of anything

Default: { }

Example: { }

mods.supersonic.enable

Enables and configures supersonic

Type: boolean

Default: false

Example: true

mods.supersonic.variant

The variant of supersonic

Type: one of “wayland”, “x11”

Default: "wayland"

Example: "x11"

mods.sway.enable

Enables sway

Type: boolean

Default: false

Example: true

mods.sway.config

sway config

Type: attribute set of anything

Default: { }

Example: { }

mods.teams.enable

Enables teams via a chromium pwa (for the poor souls that have to use this for work)

Type: boolean

Default: false

Example: true

mods.teams.loopback

Enables loopback for screensharing -> teams sucks :)

Type: boolean

Default: true

Example: false

mods.virtmanager.enable

Enables virt-manager kvm.

Type: boolean

Default: false

Example: true

mods.xkb.layout

Your layout

Type: string

Default: "enIntUmlaut"

Example: "us"

mods.xkb.variant

Your variant

Type: string

Default: ""

Example: ""

mods.xone.enable

Enables the xone driver for xbox controllers.

Type: boolean

Default: false

Example: true

mods.yazi.enable

Enables yazi

Type: boolean

Default: true

Example: false

mods.yazi.additionalConfig

Additional config for yazi

Type: attribute set of anything

Default: { }

Example: { }

mods.yazi.additionalKeymap

Additional keymap for yazi

Type: attribute set of anything

Default: { }

Example: { }

mods.yazi.useDefaultConfig

Use default yazi config (if disabled only additionalConfig is used)

Type: boolean

Default: true

Example: false

mods.yazi.useDefaultKeymap

Use default yazi keymap (if disabled only additionalKeymap is used)

Type: boolean

Default: true

Example: false