my NixOS Config public just in case it is useful to someone
  • Nix 63.4%
  • Shell 18%
  • Emacs Lisp 15.1%
  • Fennel 2.7%
  • CSS 0.6%
  • Other 0.2%
Find a file
Thiago Sposito 9831a2be48
All checks were successful
/ update-mirrors (push) Successful in 20s
chore: update flake.lock with new secrets
2026-05-12 14:16:49 -03:00
.forgejo/workflows feat: set debian as default runner on forgejo 2026-04-11 11:27:40 -03:00
dev-templates/rust-minimal chore: autoformat 2026-01-10 21:54:04 -03:00
home-manager feat: use unstable Neovim (0.12.2) package and update nvim.lua SHA256 2026-05-11 20:08:20 -03:00
hosts refactor: replace systemd service for brcmfmac with resumeCommands for better suspend handling 2026-05-12 08:58:44 -03:00
.gitignore feat: update to agenix and fix alex-lib 2026-04-11 11:23:26 -03:00
flake.lock chore: update flake.lock with new secrets 2026-05-12 14:16:49 -03:00
flake.nix chore: update repository URLs and flake.lock revisions 2026-04-11 11:23:26 -03:00
flsproject.fnl feat: make vim visible to fennel 2026-04-12 14:09:02 -03:00
LICENSE chore: reinit 2025-08-25 23:50:16 -03:00
README.md chore: add Nextcloud, Tailscale, and Beszel monitoring 2026-04-11 11:23:25 -03:00

My personal machines config files

This repository contains declarative configurations for personal machines managed with NixOS flakes and Home Manager.
The setup is split into host-specific configurations, common reusable modules, and user-level home configurations.

Structure

  • flake.nix — entry point, defines inputs (nixpkgs, home-manager, nixvim, etc.) and system/home outputs.
  • hosts/ — machine-specific system configurations.
    • Nixbook/ — laptop setup (Apple hardware, Hyprland)
    • Nixstation/ — desktop workstation (NVIDIA, virtualization, btrfs scrub, firewall).
    • Nixtest/ — minimal VM environment for testing with QEMU.
    • common/ — shared modules (users, keyboard, network, gpus, etc.).
  • home-manager/ — user environment configurations.
    • home.nix — main Home Manager entry for user packages and programs.
    • vim.nix, zsh.nix, gnome.nix, hyprland/ — modular desktop and tool configurations.
    • scripts/ — helper shell scripts (GPU monitor, RAM-disk builds, install helpers).

Usage

Build and switch system configuration

sudo nixos-rebuild switch --flake .#<hostname>

Example for Nixbook:

sudo nixos-rebuild switch --flake .#Nixbook

Build and switch home configuration

home-manager switch --flake .#thiago@<hostname>

Example for Nixstation:

home-manager switch --flake .#thiago@Nixstation

Example for remote build on Nixcloud:

nixos-rebuild switch --flake .#Nixcloud --target-host root@sposi.to    

Installation

For new installs, use the provided install scripts:

  • hosts/Nixbook/scripts/install.sh — remote installation with nixos-anywhere.
  • hosts/Nixtest/scripts/install_test.sh — bootstraps a test VM with Alpine + QEMU.

Scripts

Some helper scripts are included:

  • lsgpu.sh — monitor NVIDIA GPUs in terminal.
  • nixstation-home-ram-build.sh — run home-manager builds in a RAM disk.
  • Install scripts under each host as described above.

TODOs:

  • Device identifiers (disk paths, GPU PCI IDs, monitor names) are currently hardcoded and may need modification on different hardware.
  • Find a good secret management system/process

Contributing

Commit tags:

  • feat: a new feature
  • fix: a bug fix
  • chore: maintenance tasks, config, tooling, repo setup
  • docs: documentation only
  • style: code style/formatting (no logic changes)
  • refactor: code restructuring (no feature/bug fix)
  • perf: performance improvements
  • test: adding or modifying tests
  • ci: continuous integration changes
  • build: changes to build system or dependencies

License

Configuration files are provided under GPLv3 where applicable