my NixOS Config public just in case it is useful to someone
Find a file
Thiago Sposito 95e94196b2 refactor: cleanup configs, unify session handling
- flake.nix:
  - Close braces formatting for `allowUnfree`
  - Remove per-user `custom.sessionType` modules
- home-manager:
  - home.nix: remove unused apps (bambu-studio, hydralauncher, keymapp, etc.)
    - drop librespot service
    - add waydroid
    - fix kitty font_family spacing
  - gnome: add gnome-tweaks and appindicator extension
  - vim: update nixvim module import path
  - zsh: drop sessionType option and conditional aliases
    - hardcode wl-copy/wl-paste as pbcopy/pbpaste
- hyprland: style fixes in braces, spacing, keybind comments
- hosts/Nixstation:
  - remove gnome-session and redundant tweaks
  - remove env vars NIXOS_HOST / NIXOS_DE
  - enable virtualization (libvirtd, spiceUSBRedirection, vmware.host=false)
- hardware-configuration: reformat fileSystems definitions
- common/nvidia:
  - remove explicit kernelPackages override
  - ensure xserver.enable=true and GNOME/GDM config intact
- users/thiago: reorder and regroup extraGroups list
2025-08-25 20:36:59 -03:00
home-manager refactor: cleanup configs, unify session handling 2025-08-25 20:36:59 -03:00
hosts refactor: cleanup configs, unify session handling 2025-08-25 20:36:59 -03:00
.gitattributes feat: initialize repo with NixOS and Home Manager configs 2025-08-20 23:49:49 -03:00
.gitignore fix: add flake.lock back and update host configs 2025-08-25 15:04:45 -03:00
.statix.toml feat: initialize repo with NixOS and Home Manager configs 2025-08-20 23:49:49 -03:00
flake.lock fix: add flake.lock back and update host configs 2025-08-25 15:04:45 -03:00
flake.nix refactor: cleanup configs, unify session handling 2025-08-25 20:36:59 -03:00
LICENSE docs: include LICENSE file with GPLv3 text 2025-08-21 00:02:52 -03:00
README.md refactor: drop disko, simplify inputs, centralize fuse/rclone, bump state versions 2025-08-24 14:07:15 -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

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