No description
  • TeX 60.5%
  • Nix 34.9%
  • BibTeX Style 3.5%
  • HCL 1%
  • SCSS 0.1%
Find a file
2025-08-08 21:19:24 -05:00
.git-crypt chore: updated file permissions to be more restrictive 2025-05-24 11:06:41 -05:00
.github/workflows chore: updated file permissions to be more restrictive 2025-05-24 11:06:41 -05:00
homes feat: updated with bitwarden-cli for shell access to password manager 2025-07-10 14:24:09 -05:00
inputs chore: updated nixvim-config input 2025-07-30 16:54:31 -05:00
lib/module refactor: updated all modules to not use global with syntax for lib and lib.${namespace} 2025-06-08 23:29:54 -05:00
modules fix: rustypaste-cli overlay and enabling regardless of server host 2025-08-08 21:19:24 -05:00
overlays fix: rustypaste-cli overlay and enabling regardless of server host 2025-08-08 21:19:24 -05:00
secrets fix: updated tailscale api keys 2025-08-05 14:51:02 -05:00
shells feat: added nix-prefetch-scripts to nix development environment 2025-08-06 00:09:19 -05:00
systems feat: added teamviewer to configuration for desktop devices 2025-07-22 20:50:16 -05:00
.gitattributes chore: updated file permissions to be more restrictive 2025-05-24 11:06:41 -05:00
.gitignore chore: updated file permissions to be more restrictive 2025-05-24 11:06:41 -05:00
.gitmodules feat: removed unused neovim configuration from dotfiles 2025-07-01 15:47:20 -05:00
.sops.yaml chore: updated file permissions to be more restrictive 2025-05-24 11:06:41 -05:00
demo.png chore: updated file permissions to be more restrictive 2025-05-24 11:06:41 -05:00
flake.lock chore: updated flake.lock 2025-08-05 14:39:32 -05:00
flake.nix fix: rustypaste-cli overlay and enabling regardless of server host 2025-08-08 21:19:24 -05:00
LICENSE chore: updated file permissions to be more restrictive 2025-05-24 11:06:41 -05:00
README.md docs: updated yumeami readme to remove old name 2025-07-18 20:21:59 -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
💖 kokoro x86_64-linux thinkBook 15 laptop, mobile development
🌸 shiori x86_64-linux always-on mini pc, quiet and stable host
🐣 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 "nix-command flakes" run github:nix-community/disko -- \
    --mode disko ~/dotfiles/system/hosts/disko.nix \
    --mode disko ~/dotfiles/systems/disko.nix \
    --arg main '"/dev/<device>"'

# 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
sudo nixos-install --root /mnt --flake ~/dotfiles#<system-name> --option extra-experimental-features 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

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