$ show Jovian-Experiments/Jovian-NixOS
Jovian-NixOS is a NixOS overlay and module collection that enables running NixOS on the Steam Deck and similar handheld gaming devices. It provides hardware-specific kernel configurations, firmware update integration, Steam Deck UI (Gaming Mode) support, audio/display driver patches, and a suite of system services (power management, input handling, performance control) modeled after SteamOS. The repository is structured as a Nix flake with a clear separation of concerns: NixOS modules under `modules/` define configuration options for Steam Deck hardware, Steam client integration, and SteamOS-like system settings; a Nix overlay under `pkgs/` provides patched or vendored packages (gamescope, mesa, linux kernel, pipewire, etc.) that are not yet in upstream Nixpkgs or require Steam Deck-specific modifications. The codebase demonstrates strong NixOS engineering practices: modular design, extensive use of lib.mkIf/mkMerge for conditional configuration, hardcoded path patching via replaceVars, and resholve for shell script safety. The documentation system is a custom Ruby pipeline that generates a static site from markdown with options and package listings. While the repository is tightly coupled to NixOS and the Steam Deck domain, it is a well-maintained, production-quality example of how to extend NixOS for specialized hardware.
The LLM identified 3 files worth highlighting for reuse:
A Ruby script that converts a directory of Markdown files into a static HTML documentation site using cmark-gfm, ERB templates, and Nokogiri for post-processing. It supports fixups via an external Ruby file, generates option and package listings from JSON, and creates a sitemap. The script is self-contained and could be reused for generating documentation for any NixOS module collection or similar project, requiring only a template directory and a fixups script.
A shell script that generates a splash screen image for the Steam Deck updater by compositing a logo (or BGRT) onto a canvas sized to the display's native resolution, accounting for panel rotation. It uses drm_info to detect orientation and imagemagick to compose and crop the image. The script is self-contained, parameterized (input and output paths), and could be extracted and reused for any system that needs to produce a splash image with correct orientation for the updater or boot process.
A Python script that compares package versions between upstream Arch Linux repositories (jupiter-main, holo-main) and local Nix expressions, using pyalpm for version comparison and TOML configuration for mappings. It fetches package databases via HTTP, parses desc files, and prints out-of-date or new packages. This script is a reusable tool for maintaining any overlay that tracks upstream package versions, and its design (mappings, fixups, ignore lists) makes it adaptable to different package ecosystems.