{"simplified_version":"0.1.295","repo_url":"https://github.com/nixcafe/cattery-modules","source_subdirectory":null,"org":"nixcafe","project":"cattery-modules","version":"0.1.295+rev-ad27e52d8632afef4bf95c97a32189f3263ee318","description":null,"readme":"<h1 align=\"center\">cattery-modules</h1>\n<p align=\"center\">\n  A curated collection of <strong>244+ Nix modules</strong> — choose a room, enable it, and get a complete system with theming, desktop, gaming, server, dev tools, and more.\n  <br>\n  <a href=\"https://cattery.nixcafe.org\" rel=\"nofollow noopener noreferrer\"><strong>cattery.nixcafe.org</strong></a>\n</p>\n<p align=\"center\">\n  <a href=\"https://flakehub.com/flake/nixcafe/cattery-modules\" rel=\"nofollow noopener noreferrer\"><img src=\"https://img.shields.io/endpoint?url=https://flakehub.com/f/nixcafe/cattery-modules/badge\" alt=\"FlakeHub\"></a>\n  <a href=\"https://github.com/nixcafe/cattery-modules/blob/main/LICENSE\" rel=\"nofollow noopener noreferrer\"><img src=\"https://img.shields.io/badge/license-CC0--1.0-brightgreen\" alt=\"License\"></a>\n</p>\n<hr>\n<h2 id=\"readme-quick-start\"><a href=\"#readme-quick-start\" rel=\"nofollow noopener noreferrer\">Quick Start</a></h2>\n<pre><code><span class=\"source\"><span class=\"comment\"># flake.nix</span>\n<span class=\"punctuation definition\">{</span>\n  <span class=\"entity other attribute-name\">inputs</span>.<span class=\"entity other attribute-name\">cattery-modules</span>.<span class=\"entity other attribute-name\">url</span> <span class=\"keyword operator\">=</span> <span class=\"string\"><span class=\"punctuation definition string\">\"</span>https://flakehub.com/f/nixcafe/cattery-modules/*.tar.gz<span class=\"punctuation definition string\">\"</span></span><span class=\"punctuation\">;</span>\n\n  <span class=\"entity other attribute-name\">outputs</span> <span class=\"keyword operator\">=</span> <span class=\"punctuation definition entity function\">{</span> <span class=\"variable parameter function\">nixpkgs</span><span class=\"keyword operator\">,</span> <span class=\"variable parameter function\">cattery-modules</span><span class=\"keyword operator\">,</span> <span class=\"keyword operator\">... </span><span class=\"punctuation definition entity function\">}</span><span class=\"punctuation definition function\">:</span> <span class=\"punctuation definition\">{</span>\n    <span class=\"entity other attribute-name\">nixosConfigurations</span>.<span class=\"entity other attribute-name\">myhost</span> <span class=\"keyword operator\">=</span> <span class=\"variable parameter name\">nixpkgs</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">lib</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">nixosSystem</span> <span class=\"punctuation definition\">{</span>\n      <span class=\"entity other attribute-name\">modules</span> <span class=\"keyword operator\">=</span> <span class=\"punctuation definition list\">[</span> <span class=\"variable parameter name\">cattery-modules</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">nixosModules</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">default</span> <span class=\"punctuation definition list\">]</span><span class=\"punctuation\">;</span>\n    <span class=\"punctuation definition\">}</span><span class=\"punctuation\">;</span>\n  <span class=\"punctuation definition\">}</span><span class=\"punctuation\">;</span>\n<span class=\"punctuation definition\">}</span>\n</span></code></pre>\n<pre><code><span class=\"source\"><span class=\"comment\"># configuration.nix</span>\n<span class=\"punctuation definition entity function\">{</span> <span class=\"variable parameter function\">config</span><span class=\"keyword operator\">,</span> <span class=\"keyword operator\">... </span><span class=\"punctuation definition entity function\">}</span><span class=\"punctuation definition function\">:</span> <span class=\"punctuation definition\">{</span>\n  <span class=\"entity other attribute-name\">cattery</span>.<span class=\"entity other attribute-name\">room</span>.<span class=\"entity other attribute-name\">desktop</span>.<span class=\"entity other attribute-name\">dev</span>.<span class=\"entity other attribute-name\">enable</span> <span class=\"keyword operator\">=</span> <span class=\"constant\">true</span><span class=\"punctuation\">;</span>\n<span class=\"punctuation definition\">}</span>\n</span></code></pre>\n<p>One line — full developer desktop. <code>nixos-rebuild switch</code>, done.</p>\n<h2 id=\"readme-what-is-cattery\"><a href=\"#readme-what-is-cattery\" rel=\"nofollow noopener noreferrer\">What is cattery?</a></h2>\n<p>cattery provides <strong>rooms</strong> (pre-configured module bundles) and <strong>244+ individual modules</strong> for NixOS, nix-darwin, home-manager, and NixOS-WSL. Enable a room and get dozens of modules with sensible defaults. Override anything you want.</p>\n<pre><code>room.basis                          # mtr, nix-ld, cron, openssh, locale, network, time, kernel\n └─ room.general                    # basis + boot.efi\n     ├─ room.server-mini            # basis + cloud-init, qemu-guest, acme\n     │   └─ room.server             # basis + server-mini (passthrough)\n     ├─ room.container              # basis + acme, boot.isContainer\n     └─ room.desktop.basis          # basis + automount, wireless, peripherals, fonts, fcitx5\n          └─ room.desktop.general   # desktop.basis + boot.efi\n               ├─ room.desktop.dev  # desktop.general + yubikey, docker, vscode-server\n               ├─ room.desktop.game # desktop.general + steam\n               └─ room.desktop.wsl  # desktop.basis + wsl\n\nroom.game                           # standalone (home-manager): basis + vscode, zed, messengers, video\n</code></pre>\n<h2 id=\"readme-features\"><a href=\"#readme-features\" rel=\"nofollow noopener noreferrer\">Features</a></h2>\n<ul>\n<li><strong>244+ modules</strong> — theming, desktop, gaming, servers, dev tools, security, secrets</li>\n<li><strong>Room-based quick start</strong> — one enable gives you a fully configured system</li>\n<li><strong>agenix secrets</strong> — encrypted configs for nginx, postgres, forgejo, wireguard, cloudflared, and more</li>\n<li><strong>Impermanence</strong> — ephemeral root with persistent state directories</li>\n<li><strong>Cross-platform</strong> — NixOS, nix-darwin, home-manager, NixOS-WSL, Proxmox LXC</li>\n<li><strong>Extensible</strong> — every module accepts <code>extraOptions</code>, every room uses <code>mkDefault</code></li>\n</ul>\n<h2 id=\"readme-module-categories\"><a href=\"#readme-module-categories\" rel=\"nofollow noopener noreferrer\">Module Categories</a></h2>\n<table>\n<thead>\n<tr>\n<th>Category</th>\n<th>Highlights</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Theming</strong></td>\n<td>Catppuccin (GTK, Qt, Plasma, Hyprland, SDDM)</td>\n</tr>\n<tr>\n<td><strong>Desktop</strong></td>\n<td>Hyprland (charm-cat &amp; caelestia themes), Niri, GNOME, KDE Plasma</td>\n</tr>\n<tr>\n<td><strong>Gaming</strong></td>\n<td>Steam, AMD GPU, game launchers</td>\n</tr>\n<tr>\n<td><strong>Security</strong></td>\n<td>agenix, impermanence, Secure Boot (lanzaboote), YubiKey, GPG</td>\n</tr>\n<tr>\n<td><strong>Services</strong></td>\n<td>nginx, PostgreSQL, Forgejo, Gitea, Tailscale, Vaultwarden, Docker</td>\n</tr>\n<tr>\n<td><strong>Dev Tools</strong></td>\n<td>VS Code, JetBrains, all dev-kits (git, rust, go, java, js, cpp, lua, wasm), Ollama</td>\n</tr>\n<tr>\n<td><strong>Shell &amp; CLI</strong></td>\n<td>fish, zsh, nushell, direnv, starship, atuin, yazi, neovim, helix</td>\n</tr>\n<tr>\n<td><strong>Platform</strong></td>\n<td>NixOS-WSL, Proxmox LXC, nix-darwin</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"readme-picking-individual-modules\"><a href=\"#readme-picking-individual-modules\" rel=\"nofollow noopener noreferrer\">Picking Individual Modules</a></h2>\n<pre><code><span class=\"source\"><span class=\"variable parameter name\">cattery</span> <span class=\"invalid illegal\">=</span> <span class=\"punctuation definition\">{</span>\n  <span class=\"entity other attribute-name\">themes</span>.<span class=\"entity other attribute-name\">catppuccin</span>.<span class=\"entity other attribute-name\">enable</span> <span class=\"keyword operator\">=</span> <span class=\"constant\">true</span><span class=\"punctuation\">;</span>\n  <span class=\"entity other attribute-name\">desktop</span>.<span class=\"entity other attribute-name\">hyprland</span>.<span class=\"entity other attribute-name\">enable</span> <span class=\"keyword operator\">=</span> <span class=\"constant\">true</span><span class=\"punctuation\">;</span>\n  <span class=\"entity other attribute-name\">services</span>.<span class=\"entity other attribute-name\">tailscale</span>.<span class=\"entity other attribute-name\">enable</span> <span class=\"keyword operator\">=</span> <span class=\"constant\">true</span><span class=\"punctuation\">;</span>\n  <span class=\"entity other attribute-name\">cli-apps</span>.<span class=\"entity other attribute-name\">dev-kit</span>.<span class=\"entity other attribute-name\">git</span>.<span class=\"entity other attribute-name\">enable</span> <span class=\"keyword operator\">=</span> <span class=\"constant\">true</span><span class=\"punctuation\">;</span>\n  <span class=\"entity other attribute-name\">cli-apps</span>.<span class=\"entity other attribute-name\">dev-kit</span>.<span class=\"entity other attribute-name\">rust</span>.<span class=\"entity other attribute-name\">enable</span> <span class=\"keyword operator\">=</span> <span class=\"constant\">true</span><span class=\"punctuation\">;</span>\n<span class=\"punctuation definition\">}</span><span class=\"invalid illegal\">;</span>\n</span></code></pre>\n<h2 id=\"readme-customizing-rooms\"><a href=\"#readme-customizing-rooms\" rel=\"nofollow noopener noreferrer\">Customizing Rooms</a></h2>\n<p>All sub-module enables use <code>lib.mkDefault</code> — your overrides always win:</p>\n<pre><code><span class=\"source\"><span class=\"variable parameter name\">cattery</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">room</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">desktop</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">dev</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">enable</span> <span class=\"invalid illegal\">=</span> <span class=\"constant\">true</span><span class=\"invalid illegal\">;</span>\n<span class=\"variable parameter name\">cattery</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">apps</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">jetbrains</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">enable</span> <span class=\"invalid illegal\">=</span> <span class=\"constant\">false</span><span class=\"invalid illegal\">;</span>       <span class=\"comment\"># I prefer neovim</span>\n<span class=\"variable parameter name\">cattery</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">desktop</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">hyprland</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">enable</span> <span class=\"invalid illegal\">=</span> <span class=\"constant\">false</span><span class=\"invalid illegal\">;</span>     <span class=\"comment\"># I prefer Niri</span>\n<span class=\"variable parameter name\">cattery</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">desktop</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">niri</span><span class=\"keyword operator\">.</span><span class=\"variable parameter name\">enable</span> <span class=\"invalid illegal\">=</span> <span class=\"constant\">true</span><span class=\"invalid illegal\">;</span>\n</span></code></pre>\n<h2 id=\"readme-development\"><a href=\"#readme-development\" rel=\"nofollow noopener noreferrer\">Development</a></h2>\n<pre><code><span class=\"meta\"><span class=\"meta\"><span class=\"variable function\">nix</span></span><span class=\"source\"> develop</span>     <span class=\"comment\"><span class=\"punctuation definition comment\">#</span> enter dev shell (nixfmt, deadnix, statix)</span>\n</span><span class=\"meta\"><span class=\"meta\"><span class=\"variable function\">nix</span></span><span class=\"meta\"> flake check</span> <span class=\"comment\"><span class=\"punctuation definition comment\">#</span> lint + eval all 244+ modules</span>\n</span><span class=\"meta\"><span class=\"meta\"><span class=\"variable function\">nix</span></span><span class=\"meta\"> fmt</span>         <span class=\"comment\"><span class=\"punctuation definition comment\">#</span> format all files</span>\n</span></code></pre>\n<h2 id=\"readme-documentation\"><a href=\"#readme-documentation\" rel=\"nofollow noopener noreferrer\">Documentation</a></h2>\n<p>Full documentation at <strong><a href=\"https://cattery.nixcafe.org\" rel=\"nofollow noopener noreferrer\">cattery.nixcafe.org</a></strong> — quick start, room hierarchy, full module catalog, secrets guide, and contributing.</p>\n<h2 id=\"readme-license\"><a href=\"#readme-license\" rel=\"nofollow noopener noreferrer\">License</a></h2>\n<p><a href=\"https://github.com/nixcafe/cattery-modules/blob/HEAD/LICENSE\" rel=\"nofollow noopener noreferrer\">CC0 1.0 Universal</a></p>\n","revision":"ad27e52d8632afef4bf95c97a32189f3263ee318","visibility":"public","spdx_identifier":"CC0-1.0","labels":["nixos-wsl","agenix","home-manager","nixos","nix-darwin","nix-modules","catppuccin","nix"],"mirrored":false,"created_at":"2024-10-12T15:32:26.072823Z","outputs":{"checks":{"name":"checks","doc":"The `checks` flake output contains derivations that will be built by `nix flake check`.\n","outputs":[{"platform":"aarch64-darwin","outputs":[{"path":["checks","aarch64-darwin","git-hooks"],"short_description":"","doc":null,"what":"CI test","for_systems":["aarch64-darwin"],"store_paths":{"out":"/nix/store/77ngc6n4sp0bcqrdg42ds481pmlvidsl-pre-commit-run"}},{"path":["checks","aarch64-darwin","module-eval"],"short_description":"","doc":null,"what":"CI test","for_systems":["aarch64-darwin"],"store_paths":{"out":"/nix/store/2pgkvdl6kzbm9fd3rzxd4q3vqa4hhffa-check-module-eval"}}]},{"platform":"aarch64-linux","outputs":[{"path":["checks","aarch64-linux","git-hooks"],"short_description":"","doc":null,"what":"CI test","for_systems":["aarch64-linux"],"store_paths":{"out":"/nix/store/4cznmncbiivq95s0rfq8x6q1zy0zpg2n-pre-commit-run"}},{"path":["checks","aarch64-linux","module-eval"],"short_description":"","doc":null,"what":"CI test","for_systems":["aarch64-linux"],"store_paths":{"out":"/nix/store/l0irm32nncmkjxzsxccnllfcigmm8xl6-check-module-eval"}}]},{"platform":"x86_64-linux","outputs":[{"path":["checks","x86_64-linux","git-hooks"],"short_description":"","doc":null,"what":"CI test","for_systems":["x86_64-linux"],"store_paths":{"out":"/nix/store/1xm0yxgwv42g60d8iqwx4j0f70wi96fh-pre-commit-run"}},{"path":["checks","x86_64-linux","module-eval"],"short_description":"","doc":null,"what":"CI test","for_systems":["x86_64-linux"],"store_paths":{"out":"/nix/store/l0w6m6p9xlmr6wy9d1mnpkp3ilvgx3p7-check-module-eval"}}]}]},"formatter":{"name":"formatter","doc":"The `formatter` output specifies the package to use to format the project.\n","outputs":[{"platform":"aarch64-darwin","outputs":[{"path":["formatter","aarch64-darwin"],"short_description":"Official formatter for Nix code","doc":null,"what":"formatter","for_systems":["aarch64-darwin"],"store_paths":{"out":"/nix/store/958q1ady98nwszsx9z44f1hbk0wid50f-nixfmt-1.4.0"}}]},{"platform":"aarch64-linux","outputs":[{"path":["formatter","aarch64-linux"],"short_description":"Official formatter for Nix code","doc":null,"what":"formatter","for_systems":["aarch64-linux"],"store_paths":{"out":"/nix/store/fvp14q5301x0l6m3x3wbwiz40q2144nd-nixfmt-1.4.0"}}]},{"platform":"x86_64-linux","outputs":[{"path":["formatter","x86_64-linux"],"short_description":"Official formatter for Nix code","doc":null,"what":"formatter","for_systems":["x86_64-linux"],"store_paths":{"out":"/nix/store/81mvb88s7l4ciq2sicr0zsadazkd49yn-nixfmt-1.4.0"}}]}]},"darwinModules":{"name":"darwinModules","doc":"The `darwinModules` flake output defines importable [nix-darwin modules](https://github.com/nix-darwin/nix-darwin).\n","outputs":[{"platform":null,"outputs":[{"path":["darwinModules","default"],"short_description":null,"doc":null,"what":"nix-darwin module","for_systems":[null],"store_paths":{}},{"path":["darwinModules","apps"],"short_description":null,"doc":null,"what":"nix-darwin module","for_systems":[null],"store_paths":{}},{"path":["darwinModules","brew"],"short_description":null,"doc":null,"what":"nix-darwin module","for_systems":[null],"store_paths":{}},{"path":["darwinModules","cli-apps"],"short_description":null,"doc":null,"what":"nix-darwin module","for_systems":[null],"store_paths":{}},{"path":["darwinModules","home"],"short_description":null,"doc":null,"what":"nix-darwin module","for_systems":[null],"store_paths":{}},{"path":["darwinModules","nix"],"short_description":null,"doc":null,"what":"nix-darwin module","for_systems":[null],"store_paths":{}},{"path":["darwinModules","room"],"short_description":null,"doc":null,"what":"nix-darwin module","for_systems":[null],"store_paths":{}},{"path":["darwinModules","secrets"],"short_description":null,"doc":null,"what":"nix-darwin module","for_systems":[null],"store_paths":{}},{"path":["darwinModules","services"],"short_description":null,"doc":null,"what":"nix-darwin module","for_systems":[null],"store_paths":{}},{"path":["darwinModules","system"],"short_description":null,"doc":null,"what":"nix-darwin module","for_systems":[null],"store_paths":{}},{"path":["darwinModules","user"],"short_description":null,"doc":null,"what":"nix-darwin module","for_systems":[null],"store_paths":{}}]}]},"homeModules":{"name":"homeModules","doc":"The `homeModules` flake output defines importable [Home Manager](https://github.com/nix-community/home-manager) modules.\n","outputs":[{"platform":null,"outputs":[{"path":["homeModules","default"],"short_description":null,"doc":null,"what":"Home Manager module","for_systems":[null],"store_paths":{}},{"path":["homeModules","darwin"],"short_description":null,"doc":null,"what":"Home Manager module","for_systems":[null],"store_paths":{}},{"path":["homeModules","nixos"],"short_description":null,"doc":null,"what":"Home Manager module","for_systems":[null],"store_paths":{}},{"path":["homeModules","room"],"short_description":null,"doc":null,"what":"Home Manager module","for_systems":[null],"store_paths":{}},{"path":["homeModules","shared"],"short_description":null,"doc":null,"what":"Home Manager module","for_systems":[null],"store_paths":{}},{"path":["homeModules","user"],"short_description":null,"doc":null,"what":"Home Manager module","for_systems":[null],"store_paths":{}}]}]},"devShells":{"name":"devShells","doc":"The `devShells` flake output contains derivations that provide a development environment for `nix develop`.\n","outputs":[{"platform":"aarch64-darwin","outputs":[{"path":["devShells","aarch64-darwin","default"],"short_description":"","doc":null,"what":"development environment","for_systems":["aarch64-darwin"],"store_paths":{"out":"/nix/store/42rqyw2hmxm675j6d2jlv4yzxyv9x7il-nix-shell"}}]},{"platform":"aarch64-linux","outputs":[{"path":["devShells","aarch64-linux","default"],"short_description":"","doc":null,"what":"development environment","for_systems":["aarch64-linux"],"store_paths":{"out":"/nix/store/cnsqpac95rv044z6q82idxhlgss7x84w-nix-shell"}}]},{"platform":"x86_64-linux","outputs":[{"path":["devShells","x86_64-linux","default"],"short_description":"","doc":null,"what":"development environment","for_systems":["x86_64-linux"],"store_paths":{"out":"/nix/store/qiqp7i6x5fw9bwqv2w0asmdx3ifxmjch-nix-shell"}}]}]},"nixosModules":{"name":"nixosModules","doc":"The `nixosModules` flake output defines importable [NixOS modules](https://nixos.org/manual/nixos/stable/#sec-writing-modules).\n","outputs":[{"platform":null,"outputs":[{"path":["nixosModules","default"],"short_description":null,"doc":null,"what":"NixOS module","for_systems":[null],"store_paths":{}},{"path":["nixosModules","apps"],"short_description":null,"doc":null,"what":"NixOS module","for_systems":[null],"store_paths":{}},{"path":["nixosModules","cli-apps"],"short_description":null,"doc":null,"what":"NixOS module","for_systems":[null],"store_paths":{}},{"path":["nixosModules","containers"],"short_description":null,"doc":null,"what":"NixOS module","for_systems":[null],"store_paths":{}},{"path":["nixosModules","desktop"],"short_description":null,"doc":null,"what":"NixOS module","for_systems":[null],"store_paths":{}},{"path":["nixosModules","home"],"short_description":null,"doc":null,"what":"NixOS module","for_systems":[null],"store_paths":{}},{"path":["nixosModules","nix"],"short_description":null,"doc":null,"what":"NixOS module","for_systems":[null],"store_paths":{}},{"path":["nixosModules","room"],"short_description":null,"doc":null,"what":"NixOS module","for_systems":[null],"store_paths":{}},{"path":["nixosModules","secrets"],"short_description":null,"doc":null,"what":"NixOS module","for_systems":[null],"store_paths":{}},{"path":["nixosModules","security"],"short_description":null,"doc":null,"what":"NixOS module","for_systems":[null],"store_paths":{}},{"path":["nixosModules","services"],"short_description":null,"doc":null,"what":"NixOS module","for_systems":[null],"store_paths":{}},{"path":["nixosModules","system"],"short_description":null,"doc":null,"what":"NixOS module","for_systems":[null],"store_paths":{}},{"path":["nixosModules","user"],"short_description":null,"doc":null,"what":"NixOS module","for_systems":[null],"store_paths":{}}]}]}},"avatar_url":"https://avatars.githubusercontent.com/u/181582751","all_yanked":false,"download_url":"https://api.flakehub.com/f/nixcafe/cattery-modules/0.1.295+rev-ad27e52d8632afef4bf95c97a32189f3263ee318.tar.gz","pretty_download_url":"https://flakehub.com/f/nixcafe/cattery-modules/0.1.295.tar.gz","source_github_owner_repo_pair":"nixcafe/cattery-modules"}