No description
  • TeX 60.5%
  • Nix 34.9%
  • BibTeX Style 3.5%
  • HCL 1%
  • SCSS 0.1%
Find a file
C4 Patino 4170e35b41
All checks were successful
ci / treefmt (push) Successful in 2m17s
chore: increased failed extraction retries for unpackerr
2026-06-29 21:28:00 -05:00
.forgejo/workflows ci: update cache-nix-action to use newly fixed cache and remove old git config 2026-06-17 00:25:57 -05:00
.git-crypt feat: add c4patino@mutualofomaha host nixosConfiguration and homeConfiguration 2026-06-02 09:07:29 -05:00
homes chore: enable aciinema and rustypaste in mutualofomaha configuration 2026-06-28 11:31:44 -05:00
infra feat: move off of cloudflared for public internet access to acme and httpd 2026-05-31 14:03:15 -05:00
inputs chore: added robots.txt for more public sites to dotfiles 2026-06-27 22:16:09 -05:00
lib/module feat: add unpackerr module and configuration to servarr 2026-06-24 00:28:55 -05:00
modules fix: add qui user to qbittorrent group and changed directory permissions 2026-06-29 12:07:17 -05:00
overlays chore: update qui package version 2026-06-28 17:49:25 -05:00
secrets chore: increased failed extraction retries for unpackerr 2026-06-29 21:28:00 -05:00
shells fix: update package source from nodePackages namespace to root namespace 2026-05-30 22:18:42 -05:00
systems refactor: bundle server-specific config with httpd, fail2ban, and nh auto-clean 2026-06-28 21:38:47 -05:00
templates feat: add latex-aaai and latex-aamas templates to flake environment 2026-06-27 12:53:57 -05:00
.gitattributes chore: updated file permissions to be more restrictive 2025-05-24 11:06:41 -05:00
.gitignore feat: added devenv to templates and removed .envrc entries from .gitignore 2025-11-15 07:42:10 -06:00
.gitmodules chore: switched yumevim-nix and dotfiles submodule urls to use https instead of ssh 2026-06-09 20:12:03 -05:00
.sops.yaml feat: add c4patino@mutualofomaha host nixosConfiguration and homeConfiguration 2026-06-02 09:07:29 -05:00
demo.png chore: updated file permissions to be more restrictive 2025-05-24 11:06:41 -05:00
deploy.nix chore: remove arisu-windows and kokoro-windows profiles from deploy-rs 2026-05-30 22:18:42 -05:00
flake.lock chore: added robots.txt for more public sites to dotfiles 2026-06-27 22:16:09 -05:00
flake.nix feat: add asciinema server module and CLI tool 2026-06-27 17:43:08 -05:00
LICENSE chore: updated file permissions to be more restrictive 2025-05-24 11:06:41 -05:00
README.md docs: update list of existing environments with tsuki and removed tobira 2026-05-30 22:43:10 -05:00

ゆめあみ (yumeami)

logo

Meticulously crafted collection of NixOS configurations tailored for my systems. This repository encapsulates a unified setup across different machines, ensuring a consistent and efficient environment no matter where I'm working. The configurations are designed with modularity and clarity in mind, making it easy to adapt and scale. Whether it's setting up a new machine or refining an existing setup, ゆめあみ brings what I believe to be the best practices in NixOS configuration management, unified under a single, cohesive structure.

System Architecture Description
🧠 arisu x86_64-linux primary development tower, custom built
🌙 tsuki x86_64-linux 4U ATX rack server, networking and core services
💖 kokoro x86_64-linux thinkBook 15 laptop, mobile development
🌸 shiori x86_64-linux always-on mini pc, torrents and DNS services
🐣 chibi aarch64-linux raspberry Pi 4B for hosting and local dev
hikari x86_64-linux custom installer iso, new systems and VMs

Repository Structure

.
├── flake.nix              # Main flake configuration
├── homes/                 # Home-manager configurations
│   ├── aarch64-linux/     # ARM architecture systems
│   └── x86_64-linux/      # x86 architecture systems
├── lib/                   # Shared library functions
├── modules/               # Modular configurations
│   ├── home/              # Home-manager modules
│   └── nixos/             # NixOS system modules
├── secrets/               # Encrypted secrets (git-crypt)
├── shells/                # Development shell environments
└── systems/               # NixOS system configurations

Prerequisites

  • NixOS installation media
  • ZFS support (for impermanence)
  • A storage device to install to
  • Basic understanding of NixOS and the Nix language

Installation

To set up your system using ゆめあみ configurations:

# Clone the repository
git clone https://github.com/c4patino/nixos-configuration.git ~/dotfiles
cd ~/dotfiles

# Partition and format drives using disko
# Replace <device> with your disk device (e.g., sda, nvme0n1)
sudo nix --experimental-features "flakes nix-command pipe-operators" run github:nix-community/disko -- \
    --mode disko ~/dotfiles/systems/disko.nix \
    --arg main '"/dev/<device>"'
sudo zfs snapshot zroot/root@blank

# Copy configuration to the persistent storage
sudo cp ~/dotfiles /mnt/persist

# Install NixOS with the configuration for your system
# Replace <system-name> with one of: arisu, kokoro, shiori, chibi, tsuki
sudo nixos-install --root /mnt --flake ~/dotfiles#<system-name> --option extra-experimental-features "flakes nix-command pipe-operators"

Customization

To customize a configuration for your own use:

  1. Create a new host configuration in systems/<arch>/<hostname>/default.nix
  2. Configure your hardware settings in systems/<arch>/<hostname>/hardware-configuration.nix
  3. Create a home-manager configuration in homes/<arch>/<user>@<hostname>/default.nix
  4. Enable the desired modules for your system and home configurations

Features

  • Impermanence: ZFS snapshot-based system with persistent directories for clean reboots
  • Dynamic backgrounds: Variety-powered slideshow for ever-changing wallpapers
  • Development environments: Preconfigured setups for various programming languages
  • Neovim: Highly customized configuration for efficient coding
  • Various editors: Native Vim shortcut support and configurations
  • Yazi: Fast, terminal-based file manager
  • Eww task bar: Minimal and versatile task bar interface
  • Spotify: Seamless Spotify integration
  • Anyrun: Intuitive application launcher
  • Kitty terminal: Customized themes and keybindings
  • Zoxide: Enhanced terminal navigation with zoxide

Formatter Setup

This project uses treefmt-nix to orchestrate formatters for Nix and Lua files:

  • alejandra for Nix
  • stylua for Lua

Usage

Format all files

nix fmt

Check formatting (for CI or local validation)

nix flake check

Configuration

Formatters are configured in flake.nix and treefmt.nix.

  • To add more formatters, edit treefmt.nix and update the programs section.

Troubleshooting

If you encounter issues, ensure your Nix version is up to date (2.25+ recommended).

For more info, see treefmt-nix documentation.

Usage

Rebuilding Your System

# For system configuration
sudo nixos-rebuild switch --flake ~/dotfiles#<hostname>

# For home-manager configuration
home-manager switch --flake ~/dotfiles#<user>@<hostname>

Adding New Modules

  1. Create a new module in the appropriate directory:
    • System modules: modules/nixos/<category>/<module-name>/
    • Home modules: modules/home/<category>/<module-name>/
  2. Create a default.nix file following the existing module structure
  3. Enable your module in your system or home configuration

Troubleshooting

Common Issues

  • ZFS import fails: Ensure you have the correct pool name in your configuration
  • Module not found: Check that the module is correctly imported and the namespace is correct
  • Secrets not accessible: Run git-crypt unlock if you have access to the repository keys

Roadmap

  • Add comprehensive module test coverage
  • Implement integration tests with virtual machines
  • Add performance benchmarking for critical configurations

Authors

Here are some related projects that are used in this configuration

License

MIT