Skip to content
LogoLogo

Rooms

Rooms are pre-configured module bundles. Enable one room and get dozens of modules with sensible defaults. Each room includes and extends the one below it.

Room Hierarchy

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

Available Rooms

Base Rooms

RoomDescriptionKey Modules
room.basisEssential system setupnix, git, openssh, locale, fonts, network
room.generalEveryday additionsshell (fish/zsh), CLI tools, editors, file manager

Server Rooms

RoomDescriptionKey Modules
room.server-miniLightweight serveropenssh, tailscale, firewall
room.serverFull serverdocker, nginx, postgresql, forgejo, vaultwarden, qemu-guest
room.containerContainer hostincus, distrobox

Desktop Rooms

RoomDescriptionKey Modules
room.desktop.basisDesktop basedisplay manager, compositor (hyprland/niri/plasma), Catppuccin theming
room.desktop.generalFull desktopaudio (pipewire), input, fonts, apps (browser, mail, etc.)
room.desktop.devDeveloper desktopIDEs (vscode/jetbrains), databases, dev-kit, containers
room.desktop.gameGaming desktopSteam, GPU drivers (AMD/NVIDIA), Wine, RetroArch
room.desktop.wslWSL desktopWSL-optimized desktop with GPU integration

Customizing Rooms

Rooms use lib.mkDefault for sub-module enables, so you can opt out of any individual module:

cattery.room.desktop.game.enable = true;
# Still get everything except JetBrains
cattery.cli-apps.editor.jetbrains.enable = false;