- Add .gitignore for common languages, tools, and OS/editor artifacts - Configure .gitattributes for Git LFS (fonts, images, archives, ISOs) - Add README with repo description - Add flake.nix defining inputs and outputs for NixOS, Home Manager, and related modules - Introduce home-manager configs: - Base home.nix with packages, services, and programs - Hyprland WM configuration (waybar, fuzzel, keybindings, theming) - Vim (nixvim) setup with LSP and plugins - Zsh setup with aliases, Oh My Zsh, clipboard helpers - Systemd user services (e.g., librespot) - Add scripts (GPU monitor, RAM build helper, install automation) - Add host configurations: - Nixbook (Apple laptop) with hardware, disko, and install script - Nixstation (desktop) with firewall, virtualization, Btrfs scrub timer - Nixtest (test VM) with QEMU + Alpine-based install test harness - Common modules (network, NVIDIA, rclone, screen, keychron, users) - Include statix config for linting
2.6 KiB
2.6 KiB
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, disk layout via disko).Nixstation/— desktop workstation (NVIDIA, virtualization, btrfs scrub, firewall).Nixtest/— minimal VM environment for testing with QEMU.common/— shared modules (users, keyboard, network, gpus, rclone, 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— runhome-managerbuilds 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