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