feat: initialize repo with NixOS and Home Manager configs
- 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
This commit is contained in:
commit
d0b63ce601
34 changed files with 1954 additions and 0 deletions
70
README.md
Normal file
70
README.md
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
# 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
|
||||
|
||||
```sh
|
||||
sudo nixos-rebuild switch --flake .#<hostname>
|
||||
````
|
||||
|
||||
Example for Nixbook:
|
||||
|
||||
```sh
|
||||
sudo nixos-rebuild switch --flake .#Nixbook
|
||||
```
|
||||
|
||||
### Build and switch home configuration
|
||||
```sh
|
||||
home-manager switch --flake .#thiago@<hostname>
|
||||
```
|
||||
|
||||
Example for Nixstation:
|
||||
```sh
|
||||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue