Modules
cattery provides 244+ modules under the cattery namespace. Enable them individually or let rooms compose them for you.
Theming
cattery.themes.catppuccin
Catppuccin color scheme system-wide. Applies to GTK, Qt, Hyprland, Plasma, and SDDM.
cattery . themes . catppuccin . enable = true ;
Desktop
Compositors
Module Description Options cattery.desktop.hyprlandHyprland Wayland compositor with XWayland enablecattery.desktop.niriNiri scrollable-tiling compositor enable, configText, include, spawnAtStartup, bindscattery.desktop.plasmaKDE Plasma 6 with SDDM enable, useConnect, persistencecattery.desktop.gnomeGNOME desktop with GDM enable
Hyprland Themes
Module Description Options cattery.desktop.hyprland.theme.charm-catFull Hyprland rice — waybar, kitty, anyrun, hyprlock, mako, wlogout, awww wallpaper enable, greetd.enablecattery.desktop.hyprland.theme.caelestiaCaelestia dots with SDDM — kitty, thunar, hyprshot, hypridle enable, settings
Charm-Cat Theme Sub-modules
Module Description cattery.desktop.hyprland.theme.charm-cat.audiopipewire, wireplumber, pavucontrol, brightnessctl cattery.desktop.hyprland.theme.charm-cat.conventionWorkspace conventions, keybinds, monitor rules cattery.desktop.hyprland.theme.charm-cat.fcitxFcitx5 input method integration cattery.desktop.hyprland.theme.charm-cat.file-managerDolphin file manager cattery.desktop.hyprland.theme.charm-cat.launcherAnyrun with plugins (applications, symbols, shell, rink, kidex, websearch) cattery.desktop.hyprland.theme.charm-cat.lock-screenHyprlock + hypridle screen lock cattery.desktop.hyprland.theme.charm-cat.notificationMako notification daemon cattery.desktop.hyprland.theme.charm-cat.screenshotsHyprshot + grim + slurp + wl-clipboard cattery.desktop.hyprland.theme.charm-cat.terminalKitty with JetBrains Mono Nerd Font + extensive keybinds cattery.desktop.hyprland.theme.charm-cat.vscodeVS Code workspace integration cattery.desktop.hyprland.theme.charm-cat.wallpaperAwww wallpaper rotation cattery.desktop.hyprland.theme.charm-cat.waybarWaybar with JSON config cattery.desktop.hyprland.theme.charm-cat.wlogoutWlogout power menu
Caelestia Theme Sub-modules
Module Description cattery.desktop.hyprland.theme.caelestia.conventionRich settings, wsaction script, workspace switching cattery.desktop.hyprland.theme.caelestia.audiopipewire, wireplumber, pavucontrol, brightnessctl cattery.desktop.hyprland.theme.caelestia.fcitxFcitx5 integration cattery.desktop.hyprland.theme.caelestia.file-managerThunar with archive & volume plugins cattery.desktop.hyprland.theme.caelestia.idleHypridle + caelestia shell lock cattery.desktop.hyprland.theme.caelestia.screenshotsHyprshot screenshot tool cattery.desktop.hyprland.theme.caelestia.terminalKitty with JetBrains Mono Nerd Font
Desktop Addons
Module Description Options cattery.desktop.addons.catppuccinCatppuccin for desktop environment enable, autoEnable, extraOptionscattery.desktop.addons.xdg-portalXDG Desktop Portal with wlr enablecattery.desktop.addons.chromium-supportWayland Chromium/Electron (NIXOS_OZONE_WL=1) enablecattery.desktop.xdgMIME default apps (browser, editor, audio, video, mail, calendar) app.browser, app.editor, app.audio, app.video, app.mailto, app.calendar
Hyprland Addons
Module Description cattery.desktop.hyprland.addons.hyprshotScreenshot tool (hyprshot + grim + slurp) cattery.desktop.hyprland.addons.hyprlockScreen locker cattery.desktop.hyprland.addons.hypridleIdle management daemon
Display Managers
Module Description Options cattery.desktop.lightdmLightDM with X server enable
Gaming
Module Description Options cattery.apps.game.steamSteam with protonup-qt, remote play, hardware support enable, persistencecattery.apps.game.galeGale game launcher enable, persistencecattery.apps.gameHeroic Games Launcher (Epic/GOG), r2modman enablecattery.apps.hmclHMCL Minecraft launcher enable, persistencecattery.system.gpu.amdAMD GPU drivers (amdgpu kernel module) enable
Security
Secrets (agenix)
See the Secrets & agenix page for full documentation.
Module Description Options cattery.secretsagenix encrypted secrets — host-specific, shared, and user scope enable, yubikey.enable, secretsDir, secretsMountPoint, hosts, shared, filescattery.nix.secretsEncrypted nix config via agenix enable, encrypted !include path
Impermanence
Module Description Options cattery.system.impermanenceEphemeral root with persistent state (NixOS) enable, directories, files, persistencePathcattery.system.impermanence (home)Ephemeral root (home-manager) enable, directories, files, xdg.userDirs, xdg.cache, xdg.config, xdg.data, xdg.statecattery.system.fileSystems.btrfs.impermanenceBTRFS subvolume rolling for impermanence device, tempDir, oldSubvolDir, subvol per filesystem
Secure Boot
Module Description Options cattery.system.boot.lanzabooteSecure Boot with lanzaboote enable, pkiBundle, extraOptions
Other Security
Module Description Options cattery.security.pamPAM configuration passthrough Attrs passthrough cattery.apps.yubikeyYubiKey with yubikey-agent, touch-detector, pcscd enable, agent.enable, touch-detector.enablecattery.apps.safetyBitwarden desktop enable
Services
Web & Reverse Proxy
Module Description Options cattery.services.nginxNginx with conf.d includes enable, httpSubConfigPath, commonHttpConfig, httpConfig, appendHttpConfig, virtualHosts, preStart, extraOptionscattery.services.nginx.secretsEncrypted nginx conf.d via agenix Auto-enabled with secrets cattery.services.acmeLet's Encrypt SSL certificates enable, useRoot, email, group, dnsProvider, postRun, reloadServices, certs, extraOptionscattery.services.acme.secretsEncrypted ACME DNS provider credentials Auto-enabled with secrets
Git Forges
Module Description Options cattery.services.forgejoForgejo (Gitea fork) enable, dbBackend (sqlite/mysql/postgresql), useWizard, configFile.settingsPath, settings, extraOptionscattery.services.forgejo.secretsEncrypted forgejo app.ini Auto-enabled with secrets cattery.services.giteaGitea enable, dbBackend, useWizard, configFile.settingsPath, settings, extraOptionscattery.services.gitea.secretsEncrypted gitea app.ini Auto-enabled with secrets cattery.services.gitea-actions-runnerGitea Actions CI runner enable, package, url, instances (sub-modules with enable, name, url, tokenFile, labels, settings, extraOptions)cattery.services.gitea-actions-runner.secretsEncrypted runner token files Auto-enabled with secrets
Databases
Module Description Options cattery.services.postgresqlPostgreSQL with external config files enable, package, openFirewall, configFile.settingsPath, configFile.identMapPath, configFile.authenticationPath, settings, extraOptionscattery.services.postgresql.secretsEncrypted postgresql/pg_hba/pg_ident configs Auto-enabled with secrets
Password Manager
Module Description Options cattery.services.vaultwardenVaultwarden (Bitwarden-compatible) enable, dbBackend, configFile.settingsPath, extraOptionscattery.services.vaultwarden.secretsEncrypted vaultwarden env Auto-enabled with secrets
VPN & Networking
Module Description Options cattery.services.tailscaleTailscale mesh VPN enable, extraOptionscattery.services.cloudflaredCloudflare Tunnel enable, tunnels, extraOptionscattery.services.cloudflared.secretsEncrypted tunnel credentials Auto-enabled with secrets cattery.services.wg-quickWireGuard wg-quick (cross-platform) enable, configPrefix, configNamescattery.services.wg-quick.secretsEncrypted WireGuard configs Auto-enabled with secrets cattery.services.sing-boxSing-box universal proxy enable, settings (freeform JSON)cattery.services.sing-box.secretsEncrypted sing-box config.json Auto-enabled with secrets cattery.services.smartdnsSmartDNS with DNS/TLS/HTTPS enable, openFirewall, extraOptions
Container & VM
Module Description Options cattery.services.dockerDocker with BTRFS storage enable, extraOptionscattery.containersDeclarative NixOS containers with auto IP enable, per-container services, sharedServices, extraOptionscattery.services.qemu-guestQEMU guest agent enablecattery.services.cloud-initcloud-init for cloud VMs enable, network.enable, extraOptions
Module Description Options cattery.services.vscode-serverVS Code remote server enable, extraOptions, persistencecattery.services.opensshOpenSSH server enable, settings, extraOptions
System Services
Module Description Options cattery.services.cronCron daemon enable, extraOptionscattery.services.gettyTTY autologin enable, autologinUser, extraOptionscattery.cli-apps.cloudflaredcloudflared CLI enable, persistencecattery.services.awwwAwww wallpaper rotation enable, mode, wallpaperDir, interval, resizeType, filter, transition, monitorscattery.services.gpg-agentGPG agent with SSH support enable, enableSshSupport, enableExtraSocket, verbose, sshKeys, extraConfig, pinentry.package
CLI Apps
Development Kits
Module Description Options cattery.cli-apps.dev-kit.gitGit with GPG signing (openpgp/ssh/x509), delta, LFS, multi-credential enable, signing.format, signing.key, extraOptions, persistencecattery.cli-apps.dev-kit.git.secretsEncrypted git include configs Auto-enabled with secrets cattery.cli-apps.dev-kit.nixalejandra, nixfmt, nil, nix-tree enablecattery.cli-apps.dev-kit.rustrustup, sccache enable, persistencecattery.cli-apps.dev-kit.goGo toolchain enablecattery.cli-apps.dev-kit.javaJDK (GraalVM), Maven, Gradle enablecattery.cli-apps.dev-kit.javascriptNode.js, corepack, bun, pnpm, yarn enable, needs, persistencecattery.cli-apps.dev-kit.cppGCC, CMake, autoconf, automake enablecattery.cli-apps.dev-kit.luaLuaJIT enablecattery.cli-apps.dev-kit.wasmBinaryen, Emscripten enablecattery.cli-apps.dev-kit.diveDocker image analyzer enablecattery.cli-apps.dev-kit.jujutsuJujutsu VCS with GPG signing enable
Shells
Module Description Options cattery.cli-apps.shell.fishFish shell (auto-enables if defaultUserShell) enable, persistencecattery.cli-apps.shell.zshZsh with autosuggestion + syntax highlighting enablecattery.cli-apps.shell.nushellNushell enable, settings, extraConfig, persistencecattery.cli-apps.shell.atuinShell history sync enable, persistencecattery.cli-apps.shell.direnvdirenv + nix-direnv enable, persistencecattery.cli-apps.shell.starshipStarship prompt enable, settingscattery.cli-apps.shell.powershellPowerShell (Darwin-only) enable
Editors
Module Description Options cattery.cli-apps.editor.vimVim enable, extraOptionscattery.cli-apps.editor.neovimNeovim enable, extraOptionscattery.cli-apps.editor.helixHelix enable, extraOptions
File Management
Module Description Options cattery.cli-apps.file-manager.yaziYazi terminal file manager enablecattery.cli-apps.diskifuse, mtools, nfs-utils enable
Security CLI
Module Description Options cattery.cli-apps.security.gnupgGNUPG agent enable, agent.enable, agent.enableSSHSupport, agent.extraOptionscattery.cli-apps.security.gnupg.secretsEncrypted gnupg files Auto-enabled with secrets cattery.cli-apps.security.yubihsmYubiHSM tools (shell, connector) enablecattery.cli-apps.security.fido2libfido2 for FIDO2 keys enablecattery.cli-apps.opensshOpenSSH client enable
SSH
Module Description Options cattery.cli-apps.sshSSH known_hosts management knownHostsFileNames, knownHostsFilescattery.cli-apps.ssh.secretsEncrypted SSH known_hosts Auto-enabled with secrets cattery.cli-apps.mtrMTR network diagnostic enable
Module Description Options cattery.cli-apps.nix.home-managerhome-manager self-management enable, persistencecattery.cli-apps.nix.nix-indexnix-index + comma enablecattery.cli-apps.nix.nix-ldnix-ld for non-NixOS binary compatibility enable
Operations
Module Description cattery.cli-apps.operations.cloudturso-cli, awscli2 cattery.cli-apps.operations.kuberneteskubectl, helm, argocd
Module Description Options cattery.cli-apps.tool.usefulShell aliases (git, convenience), optional nix aliases enablecattery.cli-apps.tool.ghGitHub CLI enable, settings, persistencecattery.cli-apps.tool.fastfetchSystem info fetcher enable, settingscattery.cli-apps.tool.hyfetchPride-themed fastfetch fork enable, settingscattery.cli-apps.tool.http-utilswget, curl, aria2, wrk, oha enablecattery.cli-apps.tool.compressorp7zip, gzip, zip, unzip, xz, zstd enablecattery.cli-apps.tool.monitoringglances, inxi, iftop, btop, htop enablecattery.cli-apps.tool.networkinetutils (telnet, ping) enablecattery.cli-apps.tool.installerdisko, colmena, nixos-anywhere, deploy-rs enablecattery.cli-apps.tool.tldrtlrc with periodic update service enable, persistencecattery.cli-apps.tool.speedtestspeedtest-cli, speedtest-go enablecattery.cli-apps.tool.thefuckAuto-correct shell commands enablecattery.cli-apps.tool.claude-codeClaude Code with persistence enable, persistencecattery.cli-apps.tool.opencodeopencode with web UI enable, persistencecattery.cli-apps.tool.ollamaOllama LLM runner enablecattery.cli-apps.tool.miscPre-commit cache persistence enablecattery.cli-apps.tool.ventoyVentoy bootable USB tool enablecattery.cli-apps.tool.acme-shacme.sh ACME client enablecattery.cli-apps.miscpsmisc (killall), usbutils (lsusb) enablecattery.cli-apps.warpCloudflare WARP enable
Database CLI
Module Description cattery.cli-apps.database.sqliteSQLite
Module Description cattery.cli-apps.video.visualbrotli, ffmpeg-full, imagemagick, flac, libheif, libwebp, optipng cattery.cli-apps.video.youtubeyt-dlp
Apps (GUI)
Development
Module Description Options cattery.apps.vscodeVS Code with wayland, profiles enable, profiles, commandLineArgs, defaultEditor, extraOptions, persistencecattery.apps.code-cursorCursor editor enable, defaultEditor, persistencecattery.apps.jetbrains (home)All JetBrains IDEs enable, persistencecattery.apps.jetbrains (NixOS)jetbrains-toolbox, Android Studio enable, persistencecattery.apps.zed-editorZed editor enable, package, extraPackages, userSettings, userKeymaps, userTasks, extensions, persistence
Terminals
Module Description Options cattery.apps.ghosttyGhostty terminal enable, settingscattery.apps.weztermWezTerm enable, extraConfigcattery.apps.footFoot terminal enable, settings
Communication
Module Description Options cattery.apps.instant-messengersTelegram, Vesktop (Discord), Signal, Element, Feishu enable, persistencecattery.apps.slackSlack enable, persistencecattery.apps.zoom-usZoom enable
Browser
Module Description Options cattery.apps.browserFirefox/Chromium/Chrome with Wayland flags enable, needs, persistencecattery.apps.thunderbirdThunderbird mail with GPG enable, persistence
Productivity
Module Description Options cattery.apps.usefulFileZilla, GParted, Obsidian, Kleopatra, LibreOffice enable, persistencecattery.apps.scienceGeoGebra enable, persistencecattery.apps.safetyBitwarden desktop enable
Graphics
Module Description Options cattery.apps.graphicsGIMP, Inkscape, nomacs, imv, Krita enable, persistence
Remote Access
Module Description Options cattery.apps.remoteRustDesk, KRDC, Remmina enable, needs
Module Description Options cattery.apps.videoSyncplay, VLC, mpv, OBS Studio enable, persistencecattery.apps.iinaIINA player (Darwin-only) enable
Gaming Launchers
Module Description cattery.apps.gameHeroic Games Launcher, r2modman cattery.apps.hmclHMCL Minecraft launcher
Virtualization
Module Description Options cattery.apps.vmwareVMware guest + host enable, persistencecattery.apps.winboxMikroTik Winbox (Linux) enable, package, openFirewall, persistence
Darwin-specific Apps
Module Description cattery.cli-apps.androidandroid-tools (Darwin-only)
System
Core System
Module Description Options cattery.nixNix config (flakes, auto-optimise, GC, registry) enablecattery.system.localeSystem locale enable, defaultLocalecattery.system.timeTimezone enable, timeZonecattery.system.networkNetworkManager enablecattery.system.network.wirelessiwd + NetworkManager WiFi enablecattery.system.network.bridgesNetwork bridges Per-bridge: interfaces, rstp, ipv4, ipv6, useDHCP cattery.system.network.natNAT with IPv6 enable, enableIPv6, internalInterfaces, externalInterfacecattery.system.peripheralsCUPS, PipeWire, bluetooth, GPU 32-bit, geoclue enablecattery.system.automountdevmon, gvfs, udisks2 enablecattery.system.fcitx5Fcitx5 with rime, GTK, Chinese addons enable, persistencecattery.system.fontsOpen Sans, Noto, Source Han, DejaVu, Fira Code, Monaspace, Nerd Fonts enable, persistencecattery.system.ulimitOpen files limit enable, openFilesLimit
Boot
Module Description Options cattery.system.boot.efisystemd-boot UEFI enable, configurationLimitcattery.system.boot.grubGRUB with nixos-grub2-theme enable, device, configurationLimitcattery.system.boot.kernelKernel selection (latest/LTS/ZFS) enable, version, sysctl, useIpForwardcattery.system.boot.binfmtQEMU binfmt (aarch64 emulation) enablecattery.system.boot.lanzabooteSecure Boot enable, pkiBundle, extraOptions
File Systems
Module Description Options cattery.system.fileSystems.sambaCIFS/Samba auto-mounts with credentials hostUrl, binds (uid, gid, autoMountOpts, secretsPath)cattery.system.fileSystems.samba.secretsEncrypted samba credential files Auto-enabled with secrets cattery.system.fileSystems.btrfs.impermanenceBTRFS subvolume rolling initrd service Per-fs: device, tempDir, oldSubvolDir, subvol
Module Description Options cattery.system.wslNixOS-WSL with interop enablecattery.system.proxmox.lxcProxmox LXC container enable, manageNetwork, manageHostNamecattery.system.sudoTouchmacOS Touch ID for sudo enablecattery.system.usefulmacOS defaults (no quarantine, show extensions, hide desktop drives) enablecattery.brewHomebrew with casks/brews (Darwin) enable, brews, casks
User
cattery.user
Core user configuration. Used as defaults by many modules.
Option Type Description namestr Username realNamestr Full name email.addressstr Email address email.userNamestr Git user name (defaults to realName) email.imap.hoststr IMAP server host email.imap.portint IMAP port email.smtp.hoststr SMTP server host email.smtp.portint SMTP port defaultUserShellstr Default shell (auto-enables fish/zsh based on value) gpg.signKeystr GPG signing key gpg.encryptKeystr GPG encryption key initialHashedPasswordstr Initial user password hash useSecretPasswordFilebool Use agenix for password authorizedKeys.keyslist of str SSH authorized keys authorizedKeys.keyFileslist of path SSH authorized key files settingsattrs User settings dict (consumed by theme/desktop modules) homepath Read-only home directory uidint Read-only UID gidint Read-only GID
cattery.home
home-manager bridge for NixOS. Passes extraOptions to home-manager.users.<name>.
Option Type Description extraOptionsattrs Extra home-manager options
Darwin-specific
Module Description Options cattery.services.opensshOpenSSH on macOS enable, extraConfig, extraOptionscattery.homeHome-manager bridge on darwin extraOptions
Every module accepts an extraOptions attrs merged via // for extensibility without patching.
Home-manager modules with state use a persistence option (default true) to register with cattery.system.impermanence.