{"all_yanked":false,"avatar_url":"https://avatars.githubusercontent.com/u/181582751","created_at":"2024-10-12T15:32:26.072823Z","description":null,"download_url":"https://api.flakehub.com/f/nixcafe/cattery-modules/0.1.272+rev-587fae13451d5073deda30f544fe12e3bec1e4f7.tar.gz","labels":["home-manager","nix-modules","catppuccin","nixos-wsl","nixos","nix","agenix","nix-darwin"],"mirrored":false,"org":"nixcafe","outputs":{"checks":{"doc":"The `checks` flake output contains derivations that will be built by `nix flake check`.\n","name":"checks","outputs":[{"outputs":[{"doc":null,"for_systems":["aarch64-darwin"],"path":["checks","aarch64-darwin","git-hooks"],"short_description":"","store_paths":{"out":"/nix/store/1a3zyip7127c9m704jg4wx7r6rg4hr0l-pre-commit-run"},"what":"CI test"},{"doc":null,"for_systems":["aarch64-darwin"],"path":["checks","aarch64-darwin","module-eval"],"short_description":"","store_paths":{"out":"/nix/store/mxhdq4z1b245x7zf34bx2jhp6wwzk4c2-check-module-eval"},"what":"CI test"}],"platform":"aarch64-darwin"},{"outputs":[{"doc":null,"for_systems":["aarch64-linux"],"path":["checks","aarch64-linux","git-hooks"],"short_description":"","store_paths":{"out":"/nix/store/8scs7hwbz7z3hl2b63bccgj3vq3cyxrf-pre-commit-run"},"what":"CI test"},{"doc":null,"for_systems":["aarch64-linux"],"path":["checks","aarch64-linux","module-eval"],"short_description":"","store_paths":{"out":"/nix/store/pmbm4zmjc5ryn3apsbmrzyvw1qzx732f-check-module-eval"},"what":"CI test"}],"platform":"aarch64-linux"},{"outputs":[{"doc":null,"for_systems":["x86_64-linux"],"path":["checks","x86_64-linux","git-hooks"],"short_description":"","store_paths":{"out":"/nix/store/fwi9zwzwfb3acbl2d90q5ga8cgsqlgdf-pre-commit-run"},"what":"CI test"},{"doc":null,"for_systems":["x86_64-linux"],"path":["checks","x86_64-linux","module-eval"],"short_description":"","store_paths":{"out":"/nix/store/1dy1c2kc5n7ag66r4ni6mndh2ppqyl81-check-module-eval"},"what":"CI test"}],"platform":"x86_64-linux"}]},"darwinModules":{"doc":"The `darwinModules` flake output defines importable [nix-darwin modules](https://github.com/nix-darwin/nix-darwin).\n","name":"darwinModules","outputs":[{"outputs":[{"doc":null,"for_systems":[null],"path":["darwinModules","default"],"short_description":null,"store_paths":{},"what":"nix-darwin module"},{"doc":null,"for_systems":[null],"path":["darwinModules","apps"],"short_description":null,"store_paths":{},"what":"nix-darwin module"},{"doc":null,"for_systems":[null],"path":["darwinModules","brew"],"short_description":null,"store_paths":{},"what":"nix-darwin module"},{"doc":null,"for_systems":[null],"path":["darwinModules","cli-apps"],"short_description":null,"store_paths":{},"what":"nix-darwin module"},{"doc":null,"for_systems":[null],"path":["darwinModules","home"],"short_description":null,"store_paths":{},"what":"nix-darwin module"},{"doc":null,"for_systems":[null],"path":["darwinModules","nix"],"short_description":null,"store_paths":{},"what":"nix-darwin module"},{"doc":null,"for_systems":[null],"path":["darwinModules","room"],"short_description":null,"store_paths":{},"what":"nix-darwin module"},{"doc":null,"for_systems":[null],"path":["darwinModules","secrets"],"short_description":null,"store_paths":{},"what":"nix-darwin module"},{"doc":null,"for_systems":[null],"path":["darwinModules","services"],"short_description":null,"store_paths":{},"what":"nix-darwin module"},{"doc":null,"for_systems":[null],"path":["darwinModules","system"],"short_description":null,"store_paths":{},"what":"nix-darwin module"},{"doc":null,"for_systems":[null],"path":["darwinModules","user"],"short_description":null,"store_paths":{},"what":"nix-darwin module"}],"platform":null}]},"devShells":{"doc":"The `devShells` flake output contains derivations that provide a development environment for `nix develop`.\n","name":"devShells","outputs":[{"outputs":[{"doc":null,"for_systems":["aarch64-darwin"],"path":["devShells","aarch64-darwin","default"],"short_description":"","store_paths":{"out":"/nix/store/8h8r0ifpsxhaiiamqsy5m26550kgr18j-nix-shell"},"what":"development environment"}],"platform":"aarch64-darwin"},{"outputs":[{"doc":null,"for_systems":["aarch64-linux"],"path":["devShells","aarch64-linux","default"],"short_description":"","store_paths":{"out":"/nix/store/r5himhnz02svyhz5yxpxayq9c3xh7vri-nix-shell"},"what":"development environment"}],"platform":"aarch64-linux"},{"outputs":[{"doc":null,"for_systems":["x86_64-linux"],"path":["devShells","x86_64-linux","default"],"short_description":"","store_paths":{"out":"/nix/store/34y38jkgh5gjznm0r39g7ggb14hz8lz3-nix-shell"},"what":"development environment"}],"platform":"x86_64-linux"}]},"formatter":{"doc":"The `formatter` output specifies the package to use to format the project.\n","name":"formatter","outputs":[{"outputs":[{"doc":null,"for_systems":["aarch64-darwin"],"path":["formatter","aarch64-darwin"],"short_description":"Official formatter for Nix code","store_paths":{"out":"/nix/store/g6p1h5qm5pdaba6bby5ql2l6ph9ap3pj-nixfmt-1.4.0"},"what":"formatter"}],"platform":"aarch64-darwin"},{"outputs":[{"doc":null,"for_systems":["aarch64-linux"],"path":["formatter","aarch64-linux"],"short_description":"Official formatter for Nix code","store_paths":{"out":"/nix/store/vnscxjjinq43r921147k56i1lcqcgy0g-nixfmt-1.4.0"},"what":"formatter"}],"platform":"aarch64-linux"},{"outputs":[{"doc":null,"for_systems":["x86_64-linux"],"path":["formatter","x86_64-linux"],"short_description":"Official formatter for Nix code","store_paths":{"out":"/nix/store/03ll5c4q8j8dqsx4q822g7h9js51gfyp-nixfmt-1.4.0"},"what":"formatter"}],"platform":"x86_64-linux"}]},"homeModules":{"doc":"The `homeModules` flake output defines importable [Home Manager](https://github.com/nix-community/home-manager) modules.\n","name":"homeModules","outputs":[{"outputs":[{"doc":null,"for_systems":[null],"path":["homeModules","default"],"short_description":null,"store_paths":{},"what":"Home Manager module"},{"doc":null,"for_systems":[null],"path":["homeModules","darwin"],"short_description":null,"store_paths":{},"what":"Home Manager module"},{"doc":null,"for_systems":[null],"path":["homeModules","nixos"],"short_description":null,"store_paths":{},"what":"Home Manager module"},{"doc":null,"for_systems":[null],"path":["homeModules","room"],"short_description":null,"store_paths":{},"what":"Home Manager module"},{"doc":null,"for_systems":[null],"path":["homeModules","shared"],"short_description":null,"store_paths":{},"what":"Home Manager module"},{"doc":null,"for_systems":[null],"path":["homeModules","user"],"short_description":null,"store_paths":{},"what":"Home Manager module"}],"platform":null}]},"nixosModules":{"doc":"The `nixosModules` flake output defines importable [NixOS modules](https://nixos.org/manual/nixos/stable/#sec-writing-modules).\n","name":"nixosModules","outputs":[{"outputs":[{"doc":null,"for_systems":[null],"path":["nixosModules","default"],"short_description":null,"store_paths":{},"what":"NixOS module"},{"doc":null,"for_systems":[null],"path":["nixosModules","apps"],"short_description":null,"store_paths":{},"what":"NixOS module"},{"doc":null,"for_systems":[null],"path":["nixosModules","cli-apps"],"short_description":null,"store_paths":{},"what":"NixOS module"},{"doc":null,"for_systems":[null],"path":["nixosModules","containers"],"short_description":null,"store_paths":{},"what":"NixOS module"},{"doc":null,"for_systems":[null],"path":["nixosModules","desktop"],"short_description":null,"store_paths":{},"what":"NixOS module"},{"doc":null,"for_systems":[null],"path":["nixosModules","home"],"short_description":null,"store_paths":{},"what":"NixOS module"},{"doc":null,"for_systems":[null],"path":["nixosModules","nix"],"short_description":null,"store_paths":{},"what":"NixOS module"},{"doc":null,"for_systems":[null],"path":["nixosModules","room"],"short_description":null,"store_paths":{},"what":"NixOS module"},{"doc":null,"for_systems":[null],"path":["nixosModules","secrets"],"short_description":null,"store_paths":{},"what":"NixOS module"},{"doc":null,"for_systems":[null],"path":["nixosModules","security"],"short_description":null,"store_paths":{},"what":"NixOS module"},{"doc":null,"for_systems":[null],"path":["nixosModules","services"],"short_description":null,"store_paths":{},"what":"NixOS module"},{"doc":null,"for_systems":[null],"path":["nixosModules","system"],"short_description":null,"store_paths":{},"what":"NixOS module"},{"doc":null,"for_systems":[null],"path":["nixosModules","user"],"short_description":null,"store_paths":{},"what":"NixOS module"}],"platform":null}]}},"pretty_download_url":"https://flakehub.com/f/nixcafe/cattery-modules/0.1.272.tar.gz","project":"cattery-modules","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","repo_url":"https://github.com/nixcafe/cattery-modules","revision":"587fae13451d5073deda30f544fe12e3bec1e4f7","simplified_version":"0.1.272","source_github_owner_repo_pair":"nixcafe/cattery-modules","source_subdirectory":null,"spdx_identifier":"CC0-1.0","version":"0.1.272+rev-587fae13451d5073deda30f544fe12e3bec1e4f7","visibility":"public"}