Skip to content
LogoLogo

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

ModuleDescriptionOptions
cattery.desktop.hyprlandHyprland Wayland compositor with XWaylandenable
cattery.desktop.niriNiri scrollable-tiling compositorenable, configText, include, spawnAtStartup, binds
cattery.desktop.plasmaKDE Plasma 6 with SDDMenable, useConnect, persistence
cattery.desktop.gnomeGNOME desktop with GDMenable

Hyprland Themes

ModuleDescriptionOptions
cattery.desktop.hyprland.theme.charm-catFull Hyprland rice — waybar, kitty, anyrun, hyprlock, mako, wlogout, awww wallpaperenable, greetd.enable
cattery.desktop.hyprland.theme.caelestiaCaelestia dots with SDDM — kitty, thunar, hyprshot, hypridleenable, settings

Charm-Cat Theme Sub-modules

ModuleDescription
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

ModuleDescription
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

ModuleDescriptionOptions
cattery.desktop.addons.catppuccinCatppuccin for desktop environmentenable, autoEnable, extraOptions
cattery.desktop.addons.xdg-portalXDG Desktop Portal with wlrenable
cattery.desktop.addons.chromium-supportWayland Chromium/Electron (NIXOS_OZONE_WL=1)enable
cattery.desktop.xdgMIME default apps (browser, editor, audio, video, mail, calendar)app.browser, app.editor, app.audio, app.video, app.mailto, app.calendar

Hyprland Addons

ModuleDescription
cattery.desktop.hyprland.addons.hyprshotScreenshot tool (hyprshot + grim + slurp)
cattery.desktop.hyprland.addons.hyprlockScreen locker
cattery.desktop.hyprland.addons.hypridleIdle management daemon

Display Managers

ModuleDescriptionOptions
cattery.desktop.lightdmLightDM with X serverenable

Gaming

ModuleDescriptionOptions
cattery.apps.game.steamSteam with protonup-qt, remote play, hardware supportenable, persistence
cattery.apps.game.galeGale game launcherenable, persistence
cattery.apps.gameHeroic Games Launcher (Epic/GOG), r2modmanenable
cattery.apps.hmclHMCL Minecraft launcherenable, persistence
cattery.system.gpu.amdAMD GPU drivers (amdgpu kernel module)enable

Security

Secrets (agenix)

See the Secrets & agenix page for full documentation.

ModuleDescriptionOptions
cattery.secretsagenix encrypted secrets — host-specific, shared, and user scopeenable, yubikey.enable, secretsDir, secretsMountPoint, hosts, shared, files
cattery.nix.secretsEncrypted nix config via agenixenable, encrypted !include path

Impermanence

ModuleDescriptionOptions
cattery.system.impermanenceEphemeral root with persistent state (NixOS)enable, directories, files, persistencePath
cattery.system.impermanence (home)Ephemeral root (home-manager)enable, directories, files, xdg.userDirs, xdg.cache, xdg.config, xdg.data, xdg.state
cattery.system.fileSystems.btrfs.impermanenceBTRFS subvolume rolling for impermanencedevice, tempDir, oldSubvolDir, subvol per filesystem

Secure Boot

ModuleDescriptionOptions
cattery.system.boot.lanzabooteSecure Boot with lanzabooteenable, pkiBundle, extraOptions

Other Security

ModuleDescriptionOptions
cattery.security.pamPAM configuration passthroughAttrs passthrough
cattery.apps.yubikeyYubiKey with yubikey-agent, touch-detector, pcscdenable, agent.enable, touch-detector.enable
cattery.apps.safetyBitwarden desktopenable

Services

Web & Reverse Proxy

ModuleDescriptionOptions
cattery.services.nginxNginx with conf.d includesenable, httpSubConfigPath, commonHttpConfig, httpConfig, appendHttpConfig, virtualHosts, preStart, extraOptions
cattery.services.nginx.secretsEncrypted nginx conf.d via agenixAuto-enabled with secrets
cattery.services.acmeLet's Encrypt SSL certificatesenable, useRoot, email, group, dnsProvider, postRun, reloadServices, certs, extraOptions
cattery.services.acme.secretsEncrypted ACME DNS provider credentialsAuto-enabled with secrets

Git Forges

ModuleDescriptionOptions
cattery.services.forgejoForgejo (Gitea fork)enable, dbBackend (sqlite/mysql/postgresql), useWizard, configFile.settingsPath, settings, extraOptions
cattery.services.forgejo.secretsEncrypted forgejo app.iniAuto-enabled with secrets
cattery.services.giteaGiteaenable, dbBackend, useWizard, configFile.settingsPath, settings, extraOptions
cattery.services.gitea.secretsEncrypted gitea app.iniAuto-enabled with secrets
cattery.services.gitea-actions-runnerGitea Actions CI runnerenable, package, url, instances (sub-modules with enable, name, url, tokenFile, labels, settings, extraOptions)
cattery.services.gitea-actions-runner.secretsEncrypted runner token filesAuto-enabled with secrets

Databases

ModuleDescriptionOptions
cattery.services.postgresqlPostgreSQL with external config filesenable, package, openFirewall, configFile.settingsPath, configFile.identMapPath, configFile.authenticationPath, settings, extraOptions
cattery.services.postgresql.secretsEncrypted postgresql/pg_hba/pg_ident configsAuto-enabled with secrets

Password Manager

ModuleDescriptionOptions
cattery.services.vaultwardenVaultwarden (Bitwarden-compatible)enable, dbBackend, configFile.settingsPath, extraOptions
cattery.services.vaultwarden.secretsEncrypted vaultwarden envAuto-enabled with secrets

VPN & Networking

ModuleDescriptionOptions
cattery.services.tailscaleTailscale mesh VPNenable, extraOptions
cattery.services.cloudflaredCloudflare Tunnelenable, tunnels, extraOptions
cattery.services.cloudflared.secretsEncrypted tunnel credentialsAuto-enabled with secrets
cattery.services.wg-quickWireGuard wg-quick (cross-platform)enable, configPrefix, configNames
cattery.services.wg-quick.secretsEncrypted WireGuard configsAuto-enabled with secrets
cattery.services.sing-boxSing-box universal proxyenable, settings (freeform JSON)
cattery.services.sing-box.secretsEncrypted sing-box config.jsonAuto-enabled with secrets
cattery.services.smartdnsSmartDNS with DNS/TLS/HTTPSenable, openFirewall, extraOptions

Container & VM

ModuleDescriptionOptions
cattery.services.dockerDocker with BTRFS storageenable, extraOptions
cattery.containersDeclarative NixOS containers with auto IPenable, per-container services, sharedServices, extraOptions
cattery.services.qemu-guestQEMU guest agentenable
cattery.services.cloud-initcloud-init for cloud VMsenable, network.enable, extraOptions

Dev Tools

ModuleDescriptionOptions
cattery.services.vscode-serverVS Code remote serverenable, extraOptions, persistence
cattery.services.opensshOpenSSH serverenable, settings, extraOptions

System Services

ModuleDescriptionOptions
cattery.services.cronCron daemonenable, extraOptions
cattery.services.gettyTTY autologinenable, autologinUser, extraOptions
cattery.cli-apps.cloudflaredcloudflared CLIenable, persistence
cattery.services.awwwAwww wallpaper rotationenable, mode, wallpaperDir, interval, resizeType, filter, transition, monitors
cattery.services.gpg-agentGPG agent with SSH supportenable, enableSshSupport, enableExtraSocket, verbose, sshKeys, extraConfig, pinentry.package

CLI Apps

Development Kits

ModuleDescriptionOptions
cattery.cli-apps.dev-kit.gitGit with GPG signing (openpgp/ssh/x509), delta, LFS, multi-credentialenable, signing.format, signing.key, extraOptions, persistence
cattery.cli-apps.dev-kit.git.secretsEncrypted git include configsAuto-enabled with secrets
cattery.cli-apps.dev-kit.nixalejandra, nixfmt, nil, nix-treeenable
cattery.cli-apps.dev-kit.rustrustup, sccacheenable, persistence
cattery.cli-apps.dev-kit.goGo toolchainenable
cattery.cli-apps.dev-kit.javaJDK (GraalVM), Maven, Gradleenable
cattery.cli-apps.dev-kit.javascriptNode.js, corepack, bun, pnpm, yarnenable, needs, persistence
cattery.cli-apps.dev-kit.cppGCC, CMake, autoconf, automakeenable
cattery.cli-apps.dev-kit.luaLuaJITenable
cattery.cli-apps.dev-kit.wasmBinaryen, Emscriptenenable
cattery.cli-apps.dev-kit.diveDocker image analyzerenable
cattery.cli-apps.dev-kit.jujutsuJujutsu VCS with GPG signingenable

Shells

ModuleDescriptionOptions
cattery.cli-apps.shell.fishFish shell (auto-enables if defaultUserShell)enable, persistence
cattery.cli-apps.shell.zshZsh with autosuggestion + syntax highlightingenable
cattery.cli-apps.shell.nushellNushellenable, settings, extraConfig, persistence
cattery.cli-apps.shell.atuinShell history syncenable, persistence
cattery.cli-apps.shell.direnvdirenv + nix-direnvenable, persistence
cattery.cli-apps.shell.starshipStarship promptenable, settings
cattery.cli-apps.shell.powershellPowerShell (Darwin-only)enable

Editors

ModuleDescriptionOptions
cattery.cli-apps.editor.vimVimenable, extraOptions
cattery.cli-apps.editor.neovimNeovimenable, extraOptions
cattery.cli-apps.editor.helixHelixenable, extraOptions

File Management

ModuleDescriptionOptions
cattery.cli-apps.file-manager.yaziYazi terminal file managerenable
cattery.cli-apps.diskifuse, mtools, nfs-utilsenable

Security CLI

ModuleDescriptionOptions
cattery.cli-apps.security.gnupgGNUPG agentenable, agent.enable, agent.enableSSHSupport, agent.extraOptions
cattery.cli-apps.security.gnupg.secretsEncrypted gnupg filesAuto-enabled with secrets
cattery.cli-apps.security.yubihsmYubiHSM tools (shell, connector)enable
cattery.cli-apps.security.fido2libfido2 for FIDO2 keysenable
cattery.cli-apps.opensshOpenSSH clientenable

SSH

ModuleDescriptionOptions
cattery.cli-apps.sshSSH known_hosts managementknownHostsFileNames, knownHostsFiles
cattery.cli-apps.ssh.secretsEncrypted SSH known_hostsAuto-enabled with secrets
cattery.cli-apps.mtrMTR network diagnosticenable

Nix Tools

ModuleDescriptionOptions
cattery.cli-apps.nix.home-managerhome-manager self-managementenable, persistence
cattery.cli-apps.nix.nix-indexnix-index + commaenable
cattery.cli-apps.nix.nix-ldnix-ld for non-NixOS binary compatibilityenable

Operations

ModuleDescription
cattery.cli-apps.operations.cloudturso-cli, awscli2
cattery.cli-apps.operations.kuberneteskubectl, helm, argocd

Tools

ModuleDescriptionOptions
cattery.cli-apps.tool.usefulShell aliases (git, convenience), optional nix aliasesenable
cattery.cli-apps.tool.ghGitHub CLIenable, settings, persistence
cattery.cli-apps.tool.fastfetchSystem info fetcherenable, settings
cattery.cli-apps.tool.hyfetchPride-themed fastfetch forkenable, settings
cattery.cli-apps.tool.http-utilswget, curl, aria2, wrk, ohaenable
cattery.cli-apps.tool.compressorp7zip, gzip, zip, unzip, xz, zstdenable
cattery.cli-apps.tool.monitoringglances, inxi, iftop, btop, htopenable
cattery.cli-apps.tool.networkinetutils (telnet, ping)enable
cattery.cli-apps.tool.installerdisko, colmena, nixos-anywhere, deploy-rsenable
cattery.cli-apps.tool.tldrtlrc with periodic update serviceenable, persistence
cattery.cli-apps.tool.speedtestspeedtest-cli, speedtest-goenable
cattery.cli-apps.tool.thefuckAuto-correct shell commandsenable
cattery.cli-apps.tool.claude-codeClaude Code with persistenceenable, persistence
cattery.cli-apps.tool.opencodeopencode with web UIenable, persistence
cattery.cli-apps.tool.ollamaOllama LLM runnerenable
cattery.cli-apps.tool.miscPre-commit cache persistenceenable
cattery.cli-apps.tool.ventoyVentoy bootable USB toolenable
cattery.cli-apps.tool.acme-shacme.sh ACME clientenable
cattery.cli-apps.miscpsmisc (killall), usbutils (lsusb)enable
cattery.cli-apps.warpCloudflare WARPenable

Database CLI

ModuleDescription
cattery.cli-apps.database.sqliteSQLite

Video Tools

ModuleDescription
cattery.cli-apps.video.visualbrotli, ffmpeg-full, imagemagick, flac, libheif, libwebp, optipng
cattery.cli-apps.video.youtubeyt-dlp

Apps (GUI)

Development

ModuleDescriptionOptions
cattery.apps.vscodeVS Code with wayland, profilesenable, profiles, commandLineArgs, defaultEditor, extraOptions, persistence
cattery.apps.code-cursorCursor editorenable, defaultEditor, persistence
cattery.apps.jetbrains (home)All JetBrains IDEsenable, persistence
cattery.apps.jetbrains (NixOS)jetbrains-toolbox, Android Studioenable, persistence
cattery.apps.zed-editorZed editorenable, package, extraPackages, userSettings, userKeymaps, userTasks, extensions, persistence

Terminals

ModuleDescriptionOptions
cattery.apps.ghosttyGhostty terminalenable, settings
cattery.apps.weztermWezTermenable, extraConfig
cattery.apps.footFoot terminalenable, settings

Communication

ModuleDescriptionOptions
cattery.apps.instant-messengersTelegram, Vesktop (Discord), Signal, Element, Feishuenable, persistence
cattery.apps.slackSlackenable, persistence
cattery.apps.zoom-usZoomenable

Browser

ModuleDescriptionOptions
cattery.apps.browserFirefox/Chromium/Chrome with Wayland flagsenable, needs, persistence
cattery.apps.thunderbirdThunderbird mail with GPGenable, persistence

Productivity

ModuleDescriptionOptions
cattery.apps.usefulFileZilla, GParted, Obsidian, Kleopatra, LibreOfficeenable, persistence
cattery.apps.scienceGeoGebraenable, persistence
cattery.apps.safetyBitwarden desktopenable

Graphics

ModuleDescriptionOptions
cattery.apps.graphicsGIMP, Inkscape, nomacs, imv, Kritaenable, persistence

Remote Access

ModuleDescriptionOptions
cattery.apps.remoteRustDesk, KRDC, Remminaenable, needs

Video & Media

ModuleDescriptionOptions
cattery.apps.videoSyncplay, VLC, mpv, OBS Studioenable, persistence
cattery.apps.iinaIINA player (Darwin-only)enable

Gaming Launchers

ModuleDescription
cattery.apps.gameHeroic Games Launcher, r2modman
cattery.apps.hmclHMCL Minecraft launcher

Virtualization

ModuleDescriptionOptions
cattery.apps.vmwareVMware guest + hostenable, persistence
cattery.apps.winboxMikroTik Winbox (Linux)enable, package, openFirewall, persistence

Darwin-specific Apps

ModuleDescription
cattery.cli-apps.androidandroid-tools (Darwin-only)

System

Core System

ModuleDescriptionOptions
cattery.nixNix config (flakes, auto-optimise, GC, registry)enable
cattery.system.localeSystem localeenable, defaultLocale
cattery.system.timeTimezoneenable, timeZone
cattery.system.networkNetworkManagerenable
cattery.system.network.wirelessiwd + NetworkManager WiFienable
cattery.system.network.bridgesNetwork bridgesPer-bridge: interfaces, rstp, ipv4, ipv6, useDHCP
cattery.system.network.natNAT with IPv6enable, enableIPv6, internalInterfaces, externalInterface
cattery.system.peripheralsCUPS, PipeWire, bluetooth, GPU 32-bit, geoclueenable
cattery.system.automountdevmon, gvfs, udisks2enable
cattery.system.fcitx5Fcitx5 with rime, GTK, Chinese addonsenable, persistence
cattery.system.fontsOpen Sans, Noto, Source Han, DejaVu, Fira Code, Monaspace, Nerd Fontsenable, persistence
cattery.system.ulimitOpen files limitenable, openFilesLimit

Boot

ModuleDescriptionOptions
cattery.system.boot.efisystemd-boot UEFIenable, configurationLimit
cattery.system.boot.grubGRUB with nixos-grub2-themeenable, device, configurationLimit
cattery.system.boot.kernelKernel selection (latest/LTS/ZFS)enable, version, sysctl, useIpForward
cattery.system.boot.binfmtQEMU binfmt (aarch64 emulation)enable
cattery.system.boot.lanzabooteSecure Bootenable, pkiBundle, extraOptions

File Systems

ModuleDescriptionOptions
cattery.system.fileSystems.sambaCIFS/Samba auto-mounts with credentialshostUrl, binds (uid, gid, autoMountOpts, secretsPath)
cattery.system.fileSystems.samba.secretsEncrypted samba credential filesAuto-enabled with secrets
cattery.system.fileSystems.btrfs.impermanenceBTRFS subvolume rolling initrd servicePer-fs: device, tempDir, oldSubvolDir, subvol

Platform

ModuleDescriptionOptions
cattery.system.wslNixOS-WSL with interopenable
cattery.system.proxmox.lxcProxmox LXC containerenable, manageNetwork, manageHostName
cattery.system.sudoTouchmacOS Touch ID for sudoenable
cattery.system.usefulmacOS defaults (no quarantine, show extensions, hide desktop drives)enable
cattery.brewHomebrew with casks/brews (Darwin)enable, brews, casks

User

cattery.user

Core user configuration. Used as defaults by many modules.

OptionTypeDescription
namestrUsername
realNamestrFull name
email.addressstrEmail address
email.userNamestrGit user name (defaults to realName)
email.imap.hoststrIMAP server host
email.imap.portintIMAP port
email.smtp.hoststrSMTP server host
email.smtp.portintSMTP port
defaultUserShellstrDefault shell (auto-enables fish/zsh based on value)
gpg.signKeystrGPG signing key
gpg.encryptKeystrGPG encryption key
initialHashedPasswordstrInitial user password hash
useSecretPasswordFileboolUse agenix for password
authorizedKeys.keyslist of strSSH authorized keys
authorizedKeys.keyFileslist of pathSSH authorized key files
settingsattrsUser settings dict (consumed by theme/desktop modules)
homepathRead-only home directory
uidintRead-only UID
gidintRead-only GID

cattery.home

home-manager bridge for NixOS. Passes extraOptions to home-manager.users.<name>.

OptionTypeDescription
extraOptionsattrsExtra home-manager options

Darwin-specific

ModuleDescriptionOptions
cattery.services.opensshOpenSSH on macOSenable, extraConfig, extraOptions
cattery.homeHome-manager bridge on darwinextraOptions

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.