Skip to content
LogoLogo

cattery

cattery is a curated collection of 244+ Nix modules for NixOS, nix-darwin, and home-manager. Choose a room — a pre-configured module bundle — enable it, and get a complete system with theming, desktop, gaming, server, dev tools, and more. No boilerplate.

# flake.nix
{
  inputs.cattery-modules.url = "https://flakehub.com/f/nixcafe/cattery-modules/*.tar.gz";
 
  outputs = { nixpkgs, cattery-modules, ... }: {
    nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
      modules = [ cattery-modules.nixosModules.default ];
    };
  };
}
# configuration.nix
{ config, ... }: {
  cattery.room.desktop.dev.enable = true;
}

One line — full developer desktop with Hyprland, Catppuccin theming, VS Code, JetBrains, Docker, databases, git, shell tools, and more.


What is a Room?

A room is a pre-configured bundle of modules with sensible defaults. Enable one room and you get dozens of modules enabled automatically. Each room extends the one below it — enable desktop.dev and you get the full chain:

room.basis
 ├─ room.general
 ├─ room.server-mini → room.server
 ├─ room.container
 └─ room.desktop.basis
      └─ room.desktop.general
           ├─ room.desktop.dev
           ├─ room.desktop.game
           └─ room.desktop.wsl

room.game  (standalone, not in desktop chain)

Rooms use lib.mkDefault for all sub-module enables, so you can override any individual module:

cattery.room.desktop.dev.enable = true;
cattery.apps.jetbrains.enable = false;  # I prefer neovim

Why cattery?

FeatureDescription
Room-basedOne enable gives you dozens of pre-configured modules
244+ modulesCovers theming, desktop, gaming, servers, dev, security, secrets
Sensible defaultsEvery module ships with good defaults — override what you need
Cross-platformNixOS, nix-darwin, home-manager, NixOS-WSL
agenix secretsBuilt-in encrypted secret management with YubiKey support
ImpermanenceEphemeral root support with persistent state directories
ExtensibleCompose rooms with extraModules from other flakes

Module Categories

CategoryModulesHighlights
ThemingCatppuccin (GTK, Qt, Plasma, Hyprland)System-wide color scheme
DesktopHyprland, Niri, GNOME, KDE PlasmaWayland compositors + addons
GamingSteam, GPU (AMD/NVIDIA), launchersFull gaming setup
Securityagenix secrets, impermanence, Secure Boot, GPG, YubiKeyDefense in depth
Servicesnginx, PostgreSQL, Forgejo, Tailscale, Vaultwarden, Docker, cloudflared, smartdnsProduction-ready
Dev ToolsVS Code, JetBrains, Git, Rust, Go, Java, JS, Nix, OllamaPolyglot dev kits
Shell & CLIfish, zsh, nushell, direnv, starship, atuin, yazi, neovim, helixModern terminal
PlatformNixOS-WSL, Proxmox LXC, nix-darwinEverywhere

Integration Modes

cattery works everywhere:

# NixOS (full system)
imports = [ cattery-modules.nixosModules.default ];
 
# home-manager (user-level)
imports = [ cattery-modules.homeModules.default ];
 
# nix-darwin (macOS)
imports = [ cattery-modules.darwinModules.default ];

Documentation

PageDescription
Quick StartFull setup guide for NixOS, home-manager, darwin
RoomsComplete room hierarchy with module listings
ModulesFull catalog of all 244+ modules
Secrets & agenixEncrypted secret management
ContributingDevelopment guide

License

CC0 1.0 Universal