Foreword
This repository contains my personal configuration for my systems, so its really important that you know it's personal and not everything will fit your needs. Therefore most things will not work out of the box without some changes, so be warned!!!!
warning
Also to note that this configuration will not work if you do not change any of the secrets since they are encrypted.
What does this repo provided
- Several applications and tools for my needs, but you can choose the one that best suits your needs
neovim
,micro
andvscode
for text editingfirefox
andchromium
for web browsingalacritty
,kitty
andwezterm
for terminal emulatorsbash
,zsh
,fish
andnushell
for shells
- Modular configuration, so you can add or remove parts of the configuration
- Sensible defaults, so you can get started quickly
- Docs kind of
- Catppuccin everywhere, with a hint of evergarden
- 📚 docs The documentation for the dotfiles
- 🏠 home Where all home-manager configurations lie
- 🖥️ systems
- ☀️ Amaterasu My high-end gaming machine
- 🏡 Cottage A Lowend laptop, its not great but it gets the job done
- 🐉 Hydra A super mid spec laptop
- ⚸ Lilith A NixOS ISO image that can be quickly deployed and accessed via ssh
- ⚖️ minerva A server configuration for some of my infrastructure
- 𖤍 Valkyrie A WSL2 system, designed to be a development environment on Windows
- 💮 Tatsumaki A MacBook Air, configured to last a whole day of university
- ✨ wisp A WSL2 system, on cottage
- 🔌 modules
- base The base configuration settings, which are common between all systems
- darwin Pre-made modules for exclusively darwin systems
- nixos Pre cooked modules for exclusively nixos systems
- iso Pre-configured modules prepared for making NixOS iso images
- extra Extra configuration modules, for home-manager and Nix Darwin and NixOS
- home Modules for home-manager
- flake NixOS parts breaking down the complex configuration into smaller more manageable chunks
When writing a module, you should follow these guidelines:
- Use a tree like structure for the head lambda args if and only if it is needed.
{
lib,
pkgs,
inputs,
...
}:
{
/* ommitted config */
}
imports
should do its best to avoid going backwards in the flake's file structure.
NixOS
You might want to use the lilith iso configuration, provided in this repository
- To build it you can run
nix build .#images.lilith
. - Or you can download it from the release page.
If you opted to use the lilith iso image, you can use the iznix-install
script to install it on your system. Otherwise, you can follow the steps below.
- Install NixOS, you might need to follow the manual
- Clone this repository to
~/.config/flake
- Run
sudo nixos-rebuild switch --flake ~/.config/flake#<host>
Dual boot
If you would like to set up duel boot with Windows, you should consider enabling secure boot. To do so you should follow the lanzaboote guide.
- Locate the Windows EFI partition
lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT
- Mount the Windows EFI partition
sudo mkdir /mnt/winboot
sudo mount /dev/nvme0n1p1 /mnt/winboot
- Copy the Windows EFI files to the NixOS EFI partition
sudo rsync -av /mnt/winboot/EFI/Microsoft/ /boot/EFI/Microsoft/
- Finally, clean up
sudo umount /mnt/winboot
sudo rmdir /mnt/winboot
macOS
- Install Lix the package manager
curl -sSf -L https://install.lix.systems/lix | sh -s -- install
- Then enter a nix development shell in order to use git and other required tools
nix develop
- Now we need to switch to the configuration, remember to replace
<host>
with the system you are configuring
just provision <host>
SKHD Shortcut | Hyprland Shortcut | What it does |
---|---|---|
CMD+RETURN | SUPER+RETURN | open terminal |
SUPER+B | open browser | |
SUPER+C | open editor | |
SUPER+O | open notes | |
SUPER+E | open file manager | |
CMD+Q | SUPER+Q | quit |
CMD+D | SUPER+D | launcher |
SUPER+F | full screen | |
CMD+CTRL+[number] | SUPER+[number] | open workspace [number] |
CMD+SHIFT+[number] | SUPER+SHIFT+[number] | move to workspace [number] |
In the past this repo used to hold templates. Now the templates are located at tgirlcloud/nix-templates. Overall the commands remain the same except for the repo to use.
nix flake init -t github:tgirlcloud/nix-templates#<template>
to initialize a new project with the templatenix flake new -t github:tgirlcloud/nix-templates#<template> <out dir>
to create a new project in the specified directory
For the full list of templates check the nix-templates
repo directory or run nix flake show github:tgirlcloud/nix-templates
.
The systems are configured in /systems/<hostname>
.
To set up a system configuration it must be declared in /systems/default.nix
.
-
arch:
- default: "x86_64"
- options: "x86_64", "aarch64"
-
class:
- default: "nixos"
- options: "nixos", "darwin", "iso", "wsl"
-
system:
- default:
constructSystem config.easyHosts.hosts.<hostname>.target config.easy-hosts.hosts.<hostname>.arch
- note: This is a function that constructs the system configuration, it will make
x86_64-linux
by from thetarget
andarch
attributes oraarch64-darwin
- default:
-
deployable:
- default: false
-
modules:
- default: "[ ]"
- options:
-
specialArgs:
- default: "{ }"
tip
Please consult easy-hosts for more information on how to set up a system configuration.
The user side is configured in /home/<user>
.
To set up a user configuration it must be declared in
/modules/base/users/options.nix
and /modules/base/users/<user>.nix
can be
used for anything that is not preconfigured by
/modules/base/users/mkusers.nix
.
You should also add your user into the users.nix
file for your system. Whilst
following the template:
{
garden.system = {
mainUser = "robin";
users = [ "robin" ];
};
# you can add a home-manager configuration here for the user if it needs
# anything special
home-manager.users.robin.garden = {};
}
Adding packages to your user or system profile is different then most other
flakes. In this flake we use the garden.packages
attribute to add our
packages, which take a attrset. This prevents us from having duplicate listsings
of packages, and also lets us think a little less when writing home-manger or
nixos/darwin module code.
An example of this may look like the following:
{ pkgs, ... }:
{
garden.packages = {
inherit (pkgs) git;
wrapped-nvim = pkgs.symlinkJoin {
name = "wrapped-nvim";
paths = [ pkgs.nvim pkgs.astro-language-server ];
};
};
}
To uninstall nix darwin run the following command:
nix run github:LnL7/nix-darwin#darwin-uninstaller
lib.hardware:
lib.hardware.isx86Linux
check if the host platform is linux and x86
Arguments
- [pkgs] the package set
Type
isx86Linux :: AttrSet -> Bool
Example
isx86Linux pkgs
=> true
lib.hardware.primaryMonitor
assume the first monitor in the list of monitors is primary get its name from the list of monitors
Arguments
- [config] the configuration that nixosConfigurations provides
Type
primaryMonitor :: AttrSet -> String
Example
primaryMonitor osConfig
=> "DP-1"
lib.hardware.ldTernary
ldTernary, short for linux darwin ternary
Inputs
- [pkgs] is the package set
- [l] the value to return if the host platform is linux
- [d] the value to return if the host platform is darwin
Type
ldTernary :: AttrSet -> Any -> Any -> Any
Example
ldTernary pkgs "linux" "darwin"
=> "linux"
lib.helpers:
lib.helpers.mkPub
Create a public key for a given host
Arguments
- [host] the host to create the public key for
- [key] this is a attrset with the key type and key
Type
mkPub :: (String -> AttrSet -> AttrSet) -> String -> AttrSet -> AttrSet
Example
mkPub "github.com" {
type = "rsa";
key = "AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==";
}
=> {
"github.com-rsa" = {
hostNames = [ "github.com" ];
publicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==";
};
}
lib.helpers.mkPubs
Create public keys for a given host
Arguments
- [host] the host to create the public keys for
- [keys] the list of keys to create
Type
mkPubs :: (String -> List) -> String -> List -> AttrSet
Example
mkPubs "github.com" [
{
type = "rsa";
key = "AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==";
}
{
type = "ed25519";
key = "AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl";
}
]
=> {
"github.com-ed25519" = {
hostNames = [ "github.com" ];
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl";
};
"github.com-rsa" = {
hostNames = [ "github.com" ];
publicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==";
};
}
lib.helpers.giturl
Create git url aliases for a given domain
Arguments
- [domain] the domain to create the alias for
- [alias] the alias to use
- [user] the user to use, this defaults to "git"
- [port] the port to use, this is optional
Type
giturl :: (String -> String -> String -> Int) -> AttrSet
Example
giturl { domain = "github.com"; alias = "gh"; }
=> {
"https://github.com/".insteadOf = "gh:";
"ssh://git@github.com/".pushInsteadOf = "gh:";
}
lib.helpers.filterNixFiles
filter files for the .nix suffix
Arguments
- [k] they key, which is the file name
- [v] the value, which is the type of the file
Type
filterNixFiles :: String -> String -> Bool
Example
filterNixFiles "default.nix" "regular"
=> true
lib.helpers.importNixFiles
Import all file that filterNixFiles allows for
Arguments
- [path] the path to the directory
Type
importNixFiles :: String -> List
Example
importNixFiles ./.
=> [ {...} ]
lib.helpers.importNixFilesAndDirs
import all nix files and directories
Arguments
- [dir] the directory to search for nix files
Type
importNixFilesAndDirs :: String -> List
Example
importNixFilesAndDirs ./.
=> [ "flake.nix" ]
lib.helpers.boolToNum
return an int based on boolean value
Arguments
- [bool] the boolean value
Type
boolToNum :: Bool -> Int
Example
boolToNum true
=> 1
lib.helpers.containsStrings
a function that checks if a list contains a list of given strings
Arguments
- [list] the list to search in
- [targetStrings] the list of strings to search for
Type
containsStrings :: List -> List -> Bool
Example
containsStrings ["a" "b" "c"] ["a" "b"]
=> true
lib.helpers.indexOf
a function that returns the index of an element in a list
Arguments
- [list] the list to search in
- [elem] the element to search for
Type
indexOf :: List -> Any -> Int
Example
indexOf [1 2 3] 2
=> 1
lib.helpers.intListToStringList
convert a list of integers to a list of string
Arguments
- [list] the list of integers
Type
intListToStringList :: List -> List
Example
intListToStringList [1 2 3]
=> ["1" "2" "3"]
lib.programs:
lib.secrets:
lib.secrets.mkUserSecret
Create secrets for use with agenix
.
Arguments
- [file] the age file to use for the secret
- [mode] the permissions of the secret, this defaults to "400"
Type
mkUserSecret :: (String -> String -> String -> String) -> AttrSet
Example
mkUserSecret { file = "./my-secret.age"; }
=> {
file = "./my-secret.age";
mode = "400";
}
lib.secrets.mkSystemSecret
Create secrets for use with agenix
.
Arguments
- [file] the age file to use for the secret
- [owner] the owner of the secret, this defaults to "root"
- [group] the group of the secret, this defaults to "root"
- [mode] the permissions of the secret, this defaults to "400"
Type
mkSystemSecret :: (String -> String -> String -> String) -> AttrSet
Example
mkSystemSecret { file = "./my-secret.age"; }
=> {
file = "./my-secret.age";
owner = "root";
group = "root";
mode = "400";
}
lib.services:
lib.services.mkServiceOption
A quick way to use my services abstraction
Arguments
- [name]: The name of the service
Type
mkServiceOption :: String -> (Int -> String -> String -> AttrSet) -> AttrSet
lib.validators:
lib.validators.ifTheyExist
a function that will append a list of groups if they exist in config.users.groups
Arguments
- [config] the configuration that nixosConfigurations provides
- [groups] a list of groups to check for
Type
ifTheyExist :: AttrSet -> List -> List
Example
ifTheyExist config ["wheel" "users"]
=> ["wheel"]
lib.validators.anyHome
check if a predicate for any user config is true
Arguments
- [conf] the configuration that nixosConfigurations provides
- [cond] predicate function to check against config variable
Type
anyHome :: AttrSet -> (Any -> Bool) -> Bool
Example
anyHome config (cfg: cfg.programs.hyprland.enable)
=> true
nixos
garden.packages
A set of packages to install in the garden environment.
Type: attribute set of package
Default:
{ }
Declared by:
garden.device.capabilities.bluetooth
Whether or not the system has bluetooth support
Type: boolean
Default:
true
Declared by:
garden.device.capabilities.tpm
Whether the system has tpm support
Type: boolean
Default:
false
Declared by:
garden.device.capabilities.yubikey
Whether to enable yubikey support.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.device.cpu
The manufacturer of the primary system gpu
Type: null or one of “intel”, “vm-intel”, “amd”, “vm-amd”
Default:
null
Declared by:
garden.device.gpu
The manufacturer of the primary system gpu
Type: null or one of “amd”, “intel”, “nvidia”
Default:
null
Declared by:
garden.device.keyboard
the keyboard layout to use for a given system
Type: one of “us”, “gb”
Default:
"gb"
Declared by:
garden.device.monitors
this does not affect any drivers and such, it is only necessary for declaring things like monitors in window manager configurations you can avoid declaring this, but I’d rather if you did declare
Type: list of string
Default:
[ ]
Declared by:
garden.environment.flakePath
The path to the configuration
Type: string
Default:
"/Users/isabel/.config/flake"
Declared by:
garden.environment.loginManager
The login manager to be used by the system.
Type: null or one of “greetd”, “cosmic-greeter”
Declared by:
garden.profiles.gaming.enable
Whether to enable Gaming.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.graphical.enable
Whether to enable Graphical interface.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.headless.enable
Whether to enable Headless.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.laptop.enable
Whether to enable Laptop.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.server.enable
Whether to enable Server.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.server.hetzner.enable
Whether to enable Hetzner.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.server.hetzner.ipv4
The IPv4 address to assign to the server. This should be a single IP address, not a range.
Type: string
Declared by:
garden.profiles.server.hetzner.ipv6
The IPv6 address to assign to the server. This should be a single IP address, not a range.
Type: string
Declared by:
garden.profiles.server.oracle.enable
Whether to enable Oracle.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.workstation.enable
Whether to enable Workstation.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.cosmic.enable
Whether to enable enable cosmic desktop environment.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.akkoma.enable
Whether to enable Enable the akkoma service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.akkoma.domain
Domain name for the akkoma service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.akkoma.host
The host for akkoma service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.akkoma.port
The port for akkoma service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
0
Declared by:
garden.services.anubis.enable
Whether to enable Enable the anubis service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.anubis.domain
Domain name for the anubis service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.anubis.host
The host for anubis service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.anubis.port
The port for anubis service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
0
Declared by:
garden.services.attic.enable
Whether to enable Enable the attic service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.attic.domain
Domain name for the attic service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.attic.host
The host for attic service
Type: string
Default:
"[::]"
Declared by:
garden.services.attic.port
The port for attic service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8080
Declared by:
garden.services.atuin.enable
Whether to enable Enable the atuin service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.atuin.domain
Domain name for the atuin service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.atuin.host
The host for atuin service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.atuin.port
The port for atuin service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
43473
Declared by:
garden.services.blahaj.enable
Whether to enable Enable the blahaj service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.blahaj.domain
Domain name for the blahaj service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.blahaj.host
The host for blahaj service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.blahaj.port
The port for blahaj service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
0
Declared by:
garden.services.cloudflared.enable
Whether to enable Enable the cloudflared service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.cloudflared.domain
Domain name for the cloudflared service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.cloudflared.host
The host for cloudflared service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.cloudflared.port
The port for cloudflared service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
0
Declared by:
garden.services.forgejo.enable
Whether to enable Enable the forgejo service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.forgejo.domain
Domain name for the forgejo service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.forgejo.host
The host for forgejo service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.forgejo.port
The port for forgejo service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
7000
Declared by:
garden.services.grafana.enable
Whether to enable Enable the grafana service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.grafana.domain
Domain name for the grafana service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.grafana.host
The host for grafana service
Type: string
Default:
"0.0.0.0"
Declared by:
garden.services.grafana.port
The port for grafana service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
3100
Declared by:
garden.services.headscale.enable
Whether to enable Enable the headscale service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.headscale.domain
Domain name for the headscale service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.headscale.host
The host for headscale service
Type: string
Default:
"0.0.0.0"
Declared by:
garden.services.headscale.port
The port for headscale service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8085
Declared by:
garden.services.isabelroses-website.enable
Whether to enable Enable the isabelroses-website service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.isabelroses-website.domain
Domain name for the isabelroses-website service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.isabelroses-website.host
The host for isabelroses-website service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.isabelroses-website.port
The port for isabelroses-website service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
0
Declared by:
garden.services.kanidm.enable
Whether to enable Enable the kanidm service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.kanidm.domain
Domain name for the kanidm service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.kanidm.host
The host for kanidm service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.kanidm.port
The port for kanidm service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8443
Declared by:
garden.services.loki.enable
Whether to enable Enable the loki service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.loki.domain
Domain name for the loki service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.loki.host
The host for loki service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.loki.port
The port for loki service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
3030
Declared by:
garden.services.mailserver.enable
Whether to enable Enable the mailserver service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.mailserver.domain
Domain name for the mailserver service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.mailserver.host
The host for mailserver service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.mailserver.port
The port for mailserver service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
0
Declared by:
garden.services.matrix.enable
Whether to enable Enable the matrix service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.matrix.domain
Domain name for the matrix service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.matrix.host
The host for matrix service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.matrix.port
The port for matrix service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8008
Declared by:
garden.services.mediawiki.enable
Whether to enable Enable the mediawiki service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.mediawiki.domain
Domain name for the mediawiki service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.mediawiki.host
The host for mediawiki service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.mediawiki.port
The port for mediawiki service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
0
Declared by:
garden.services.nginx.enable
Whether to enable Enable the nginx service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.nginx.domain
Domain name for the nginx service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.nginx.host
The host for nginx service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.nginx.port
The port for nginx service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
0
Declared by:
garden.services.nixpkgs-prs-bot.enable
Whether to enable Enable the nixpkgs-prs-bot service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.nixpkgs-prs-bot.bsky.enable
Whether to enable bsky.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.nixpkgs-prs-bot.domain
Domain name for the nixpkgs-prs-bot service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.nixpkgs-prs-bot.fedi.enable
Whether to enable fedi.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.nixpkgs-prs-bot.host
The host for nixpkgs-prs-bot service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.nixpkgs-prs-bot.port
The port for nixpkgs-prs-bot service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
0
Declared by:
garden.services.ntfy.enable
Whether to enable Enable the nixpkgs-prs-bot service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.ntfy.domain
Domain name for the nixpkgs-prs-bot service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.ntfy.host
The host for nixpkgs-prs-bot service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.ntfy.port
The port for nixpkgs-prs-bot service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
2586
Declared by:
garden.services.photoprism.enable
Whether to enable Enable the photoprism service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.photoprism.domain
Domain name for the photoprism service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.photoprism.host
The host for photoprism service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.photoprism.port
The port for photoprism service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
2342
Declared by:
garden.services.postgresql.enable
Whether to enable Enable the postgresql service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.postgresql.domain
Domain name for the postgresql service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.postgresql.host
The host for postgresql service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.postgresql.port
The port for postgresql service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
0
Declared by:
garden.services.prometheus.enable
Whether to enable Enable the prometheus service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.prometheus.domain
Domain name for the prometheus service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.prometheus.host
The host for prometheus service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.prometheus.port
The port for prometheus service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
9100
Declared by:
garden.services.redis.enable
Whether to enable Enable the redis service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.redis.domain
Domain name for the redis service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.redis.host
The host for redis service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.redis.port
The port for redis service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
0
Declared by:
garden.services.syncthing.enable
Whether to enable Enable the syncthing service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.syncthing.domain
Domain name for the syncthing service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.syncthing.host
The host for syncthing service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.syncthing.port
The port for syncthing service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
0
Declared by:
garden.services.uptime-kuma.enable
Whether to enable Enable the uptime-kuma service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.uptime-kuma.domain
Domain name for the uptime-kuma service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.uptime-kuma.host
The host for uptime-kuma service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.uptime-kuma.port
The port for uptime-kuma service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
3500
Declared by:
garden.services.vaultwarden.enable
Whether to enable Enable the vaultwarden service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.vaultwarden.domain
Domain name for the vaultwarden service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.vaultwarden.host
The host for vaultwarden service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.vaultwarden.port
The port for vaultwarden service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8222
Declared by:
garden.services.vikunja.enable
Whether to enable Enable the vikunja service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.vikunja.domain
Domain name for the vikunja service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.vikunja.host
The host for vikunja service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.vikunja.port
The port for vikunja service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
3456
Declared by:
garden.services.wakapi.enable
Whether to enable Enable the wakapi service.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.services.wakapi.domain
Domain name for the wakapi service
Type: string
Default:
"networking.domain"
Declared by:
garden.services.wakapi.host
The host for wakapi service
Type: string
Default:
"127.0.0.1"
Declared by:
garden.services.wakapi.port
The port for wakapi service
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
15912
Declared by:
garden.system.activation.diff.enable
Whether to enable Enable a system diff.
Type: boolean
Default:
true
Example:
true
Declared by:
garden.system.bluetooth.enable
Whether to enable Should the device load bluetooth drivers and enable blueman.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.boot.enableKernelTweaks
Whether to enable security and performance related kernel parameters.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.boot.extraKernelParams
Extra kernel parameters to be passed to the kernel. This is useful for passing additional parameters to the kernel that are not covered by the default parameters.
Type: list of string
Default:
[ ]
Declared by:
garden.system.boot.extraModprobeConfig
Extra modprobe config that will be passed to system modprobe config.
Type: string
Default:
"options hid_apple fnmode=1"
Declared by:
garden.system.boot.extraModulePackages
Extra kernel modules to be loaded.
Type: list of package
Default:
[ ]
Example:
with config.boot.kernelPackages; [acpi_call]
Declared by:
garden.system.boot.grub.device
The device to install the bootloader to.
Type: null or string
Default:
"nodev"
Declared by:
garden.system.boot.initrd.enableTweaks
Whether to enable quality of life tweaks for the initrd stage.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.boot.initrd.optimizeCompressor
Whether to enable initrd compression algorithm optimizations for size. Enabling this option will force initrd to use zstd (default) with level 19 and -T0 (STDIN). This will reduce thee initrd size greatly at the cost of compression speed. Not recommended for low-end hardware. .
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.boot.kernel
The kernel to use for the system.
Type: raw value
Default:
"pkgs.linuxPackages_latest"
Declared by:
garden.system.boot.loadRecommendedModules
Whether to enable kernel modules that accommodate for most use cases.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.boot.loader
The bootloader that should be used for the device.
Type: one of “none”, “grub”, “systemd-boot”
Default:
"none"
Declared by:
garden.system.boot.memtest.enable
Whether to enable memtest86+.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.boot.memtest.package
The memtest86plus package to use.
Type: package
Default:
pkgs.memtest86plus
Declared by:
garden.system.boot.recommendedLoaderConfig
Whether to enable tweaks for common bootloader configs per my liking.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.boot.secureBoot
Whether to enable secure-boot and load necessary packages, say good bye to systemd-boot .
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.boot.silentBoot
Whether to enable almost entirely silent boot process through quiet
kernel parameter
.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.boot.tmpOnTmpfs
Whether to enable /tmp
living on tmpfs. false means it will be cleared manually on each reboot.
Type: boolean
Default:
true
Example:
true
Declared by:
garden.system.emulation.enable
Whether to enable emulation of additional arcitechtures via binfmt. enabling this option will make it so that the system can build for additional systems such as aarc64 on x86_64 and vice versa. .
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.emulation.systems
the systems to enable emulation for
Type: list of string
Default:
[
"aarch64-linux"
"i686-linux"
]
Declared by:
garden.system.mainUser
The username of the main user for your system
Type: value “isabel” (singular enum)
Default:
"isabel"
Declared by:
garden.system.networking.optimizeTcp
Whether to enable Enable tcp optimizations.
Type: boolean
Default:
true
Example:
true
Declared by:
garden.system.networking.tailscale.enable
Whether to enable Tailscale VPN.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.networking.tailscale.defaultFlags
A list of command-line flags that will be passed to the Tailscale daemon on startup
using the config.services.tailscale.extraUpFlags
.
If isServer
is set to true, the server-specific values will be appended to the list
defined in this option.
Type: list of string
Default:
[
"--ssh"
]
Declared by:
garden.system.networking.tailscale.isClient
Whether the target host should utilize Tailscale client features";
This option is mutually exclusive with tailscale.isServer
as they both
configure Taiscale, but with different flags
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.networking.tailscale.isServer
Whether the target host should utilize Tailscale server features.
This option is mutually exclusive with tailscale.isClient
as they both
configure Taiscale, but with different flags
Type: boolean
Default:
true
Example:
true
Declared by:
garden.system.networking.wirelessBackend
Backend that will be used for wireless connections using either networking.wireless
or networking.networkmanager.wifi.backend
Defaults to wpa_supplicant until iwd is stable.
Type: one of “iwd”, “wpa_supplicant”
Default:
"wpa_supplicant"
Declared by:
garden.system.printing.enable
Whether to enable printing.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.printing.extraDrivers
A list of additional drivers to install for printing
Type: attribute set of absolute path
Default:
{ }
Declared by:
garden.system.security.auditd.enable
Whether to enable Enable the audit daemon.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.security.auditd.autoPrune.enable
Whether to enable Enable auto-pruning of audit logs.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.security.auditd.autoPrune.dates
How often the audit log should be pruned
Type: string
Default:
"daily"
Example:
"weekly"
Declared by:
garden.system.security.auditd.autoPrune.size
The maximum size of the audit log in bytes
Type: signed integer
Default:
524288000
Declared by:
garden.system.security.fixWebcam
Whether to enable Fix the broken webcam by un-blacklisting the related kernel module…
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.tools.enable
Whether to enable tools.
Type: boolean
Default:
true
Example:
true
Declared by:
garden.system.tools.minimal
Whether to enable limit to minimal system tooling.
Type: boolean
Default:
true
Example:
true
Declared by:
garden.system.users
A list of users that you wish to declare as your non-system users. The first username
in the list will be treated as your main user unless garden.system.mainUser
is set.
Type: list of string
Default:
[
"isabel"
]
Declared by:
darwin
garden.packages
A set of packages to install in the garden environment.
Type: attribute set of package
Default:
{ }
Declared by:
garden.environment.flakePath
The path to the configuration
Type: string
Default:
"/Users/isabel/.config/flake"
Declared by:
garden.profiles.gaming.enable
Whether to enable Gaming.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.graphical.enable
Whether to enable Graphical interface.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.headless.enable
Whether to enable Headless.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.laptop.enable
Whether to enable Laptop.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.server.enable
Whether to enable Server.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.server.hetzner.enable
Whether to enable Hetzner.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.server.oracle.enable
Whether to enable Oracle.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.workstation.enable
Whether to enable Workstation.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.system.activation.diff.enable
Whether to enable Enable a system diff.
Type: boolean
Default:
true
Example:
true
Declared by:
garden.system.mainUser
The username of the main user for your system
Type: value “isabel” (singular enum)
Default:
"isabel"
Declared by:
garden.system.tools.enable
Whether to enable tools.
Type: boolean
Default:
true
Example:
true
Declared by:
garden.system.tools.minimal
Whether to enable limit to minimal system tooling.
Type: boolean
Default:
true
Example:
true
Declared by:
garden.system.users
A list of users that you wish to declare as your non-system users. The first username
in the list will be treated as your main user unless garden.system.mainUser
is set.
Type: list of string
Default:
[
"isabel"
]
Declared by:
home-manager
garden.packages
A set of packages to install in the garden environment.
Type: attribute set of package
Default:
{ }
Declared by:
garden.profiles.gaming.enable
Whether to enable Gaming.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.graphical.enable
Whether to enable Graphical interface.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.headless.enable
Whether to enable Headless.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.laptop.enable
Whether to enable Laptop.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.server.enable
Whether to enable Server.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.server.hetzner.enable
Whether to enable Hetzner.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.server.oracle.enable
Whether to enable Oracle.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.profiles.workstation.enable
Whether to enable Workstation.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.bash.enable
Whether to enable Enable bash.
Type: boolean
Default:
true
Example:
true
Declared by:
garden.programs.bash.package
The bash package to use.
Type: package
Default:
pkgs.bash
Declared by:
garden.programs.chromium.enable
Whether to enable Enable chromium.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.chromium.package
The chromium package to use.
Type: package
Default:
pkgs.chromium
Declared by:
garden.programs.cocogitto.enable
Whether to enable Enable cocogitto.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.cocogitto.package
The cocogitto package to use.
Type: package
Default:
pkgs.cocogitto
Declared by:
garden.programs.defaults.bar
default bar for the system
Type: null or one of “waybar”, “ags”
Default:
"ags"
Declared by:
garden.programs.defaults.browser
default browser for the system
Type: one of “firefox”, “chromium”, “thorium”
Default:
"chromium"
Declared by:
garden.programs.defaults.editor
default editor for the system
Type: one of “nvim”, “codium”
Default:
"nvim"
Declared by:
garden.programs.defaults.fileManager
default fileManager for the system
Type: one of “cosmic-files”, “dolphin”, “nemo”
Default:
"cosmic-files"
Declared by:
garden.programs.defaults.launcher
default launcher for the system
Type: null or one of “rofi”, “wofi”, “cosmic-launcher”
Default:
"rofi"
Declared by:
garden.programs.defaults.manpager
default manpager for the system
Type: string
Default:
"nvim +Man!"
Declared by:
garden.programs.defaults.noiseSuppressor
The noise suppressor to be used for desktop systems with sound enabled.
Type: null or one of “rnnoise”, “noisetorch”
Default:
"rnnoise"
Declared by:
garden.programs.defaults.pager
default pager for the system
Type: string
Default:
"less -FR"
Declared by:
garden.programs.defaults.screenLocker
The lockscreen module to be loaded by home-manager.
Type: null or one of “swaylock”, “gtklock”, “cosmic-greeter”
Default:
"gtklock"
Declared by:
garden.programs.defaults.shell
default shell for the system
Type: one of “bash”, “zsh”, “fish”, “nushell”
Default:
"bash"
Declared by:
garden.programs.defaults.terminal
default terminal for the system
Type: one of “ghostty”, “alacritty”, “kitty”, “wezterm”, “foot”
Default:
"ghostty"
Declared by:
garden.programs.discord.enable
Whether to enable Enable discord.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.discord.package
The discord package to use.
Type: package
Default:
pkgs.discord
Declared by:
garden.programs.discord.withMoonlight
Whether to enable Enable Moonlight.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.discord.withOpenASAR
Whether to enable Enable OpenASAR.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.discord.withVencord
Whether to enable Enable Vencord.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.fht-compositor.enable
Whether to enable fht-compositor.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.firefox.enable
Whether to enable Enable firefox.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.firefox.package
The firefox package to use.
Type: package
Default:
pkgs.firefox
Declared by:
garden.programs.fish.enable
Whether to enable Enable fish.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.fish.package
The fish package to use.
Type: package
Default:
pkgs.fish
Declared by:
garden.programs.ghostty.enable
Whether to enable Enable ghostty.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.ghostty.package
The ghostty package to use.
Type: package
Default:
pkgs.ghostty
Declared by:
garden.programs.git.enable
Whether to enable Enable git.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.git.package
The git package to use.
Type: package
Default:
pkgs.git
Declared by:
garden.programs.git.signingKey
The default gpg key used for signing commits
Type: string
Default:
""
Declared by:
garden.programs.hyprland.enable
Whether to enable Enable hyprland.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.hyprland.package
The hyprland package to use.
Type: package
Default:
pkgs.hyprland
Declared by:
garden.programs.micro.enable
Whether to enable Enable micro.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.micro.package
The micro package to use.
Type: package
Default:
pkgs.micro
Declared by:
garden.programs.neovim.enable
Whether to enable Enable neovim.
Type: boolean
Default:
true
Example:
true
Declared by:
garden.programs.neovim.package
The neovim package to use.
Type: package
Default:
pkgs.neovim
Declared by:
garden.programs.neovim.gui.enable
Whether to enable Enable neovide.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.neovim.gui.package
The neovide package to use.
Type: package
Default:
pkgs.neovide
Declared by:
garden.programs.neovim.gui.settings
Settings to pass to neovide
Type: attribute set of string
Default:
{ }
Declared by:
garden.programs.notes.enable
Whether to enable enable notes programs.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.nushell.enable
Whether to enable Enable nushell.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.nushell.package
The nushell package to use.
Type: package
Default:
pkgs.nushell
Declared by:
garden.programs.obsidian.enable
Whether to enable Enable obsidian.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.obsidian.package
The obsidian package to use.
Type: package
Default:
pkgs.obsidian
Declared by:
garden.programs.obsidian.runtimeInputs
Additional runtime inputs for the obsidian package.
Type: list of package
Default:
[ ]
Declared by:
garden.programs.pentesting.enable
Whether to enable Enable packages designed for pentesting.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.rofi.enable
Whether to enable Enable rofi.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.rofi.package
The rofi package to use.
Type: package
Default:
pkgs.rofi
Declared by:
garden.programs.vscode.enable
Whether to enable Enable vscode.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.vscode.package
The vscode package to use.
Type: package
Default:
pkgs.vscode
Declared by:
garden.programs.waybar.enable
Whether to enable Enable waybar.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.waybar.package
The waybar package to use.
Type: package
Default:
pkgs.waybar
Declared by:
garden.programs.wezterm.enable
Whether to enable Enable wezterm.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.wezterm.package
The wezterm package to use.
Type: package
Default:
pkgs.wezterm
Declared by:
garden.programs.wofi.enable
Whether to enable Enable wofi.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.wofi.package
The wofi package to use.
Type: package
Default:
pkgs.wofi
Declared by:
garden.programs.zed.enable
Whether to enable Enable zed-editor.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.zed.package
The zed-editor package to use.
Type: package
Default:
pkgs.zed-editor
Declared by:
garden.programs.zk.enable
Whether to enable Enable zk.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.zk.package
The zk package to use.
Type: package
Default:
pkgs.zk
Declared by:
garden.programs.zsh.enable
Whether to enable Enable zsh.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.programs.zsh.package
The zsh package to use.
Type: package
Default:
pkgs.zsh
Declared by:
garden.style.fonts.enable
Whether to enable fontconfig.
Type: boolean
Default:
false
Example:
true
Declared by:
garden.style.fonts.package
The package that provides the font
Type: package
Default:
<derivation MapleMono-TTF-7.2>
Declared by:
garden.style.fonts.bold
The name of the bold font
Type: string
Default:
"Maple Mono Bold"
Declared by:
garden.style.fonts.bold-italic
The name of the bold italic font
Type: string
Default:
"Maple Mono Bold Italic"
Declared by:
garden.style.fonts.italic
The name of the italic font
Type: string
Default:
"Maple Mono Italic"
Declared by:
garden.style.fonts.name
The name of the font
Type: string
Default:
"Maple Mono"
Declared by:
garden.style.fonts.size
The size of the font
Type: signed integer
Default:
14
Declared by:
Resources
A collection of resources from people who just make good stuff.
- Xe's blog
- The aux forum
- Viper's Blog
- Nix Pills, this one might be a bit much if you don't care too much about the internals
- Solène's Blog
- Jade Lovelace's blog
- Astrid's blog
- nixpkgs news
- nix.dev
- cafkafk's blog
- zimbatm's blog
- my own blog
- official wiki
- zero to nix
Projects / Configurations
These are some configuration or projects that I have taken inspiration from or find to be of a high quality that people should also consider reading.
People
Thanks to all these people otherwise this config and I would be lost.
- comfysage, for making my day that bit brighter and occasionally putting me on your back
- getchoo, for making catppucin/nix and helping a ton
- nullishamy, for tricking me into using NixOS
- nekowinston, for fixing half my problems
- jakehamilton, for teaching me too much about modules
- nyxkrage, for being there to answer my questions
- NotAShelf, lots of valuable information
- Minion3665, for making me write better docs
- Thorn, picrewnix????
I use lix.
[!NOTE] Furthermore this is with a custom patch set through izlix. Though I don't recommend using izlix. If you want the patches you may copy them for personal use.
This flake makes a point of using lix where possible.
To do so we add the following snippet taken from modules/base/nix/overlays/default.nix. What this does is use lix where possible rather than nix.
_: prev: {
# in order to reduce our closure size, we can override these packages to
# use the nix package that we have installed, this will trigget a rebuild
# of the packages that depend on them so hopefully its worth it for that
# system space
nixVersions = prev.nixVersions // {
stable = config.nix.package;
};
# make sure to restore nix for linking back to nix from nixpkgs as its
# used for other things then the cli implementaion
nixForLinking = prev.nixVersions.stable;
}