A premium, modular, and beautiful multi-host system configuration powered by Nix Flakes, customized around a unified Gruvbox Dark Hard aesthetics, a high-performance Hyprland Lua environment, and fully declarative workflows.
Key Features • Screenshots • Architecture • Hosts • Quick Start
- 📂 Modular Design: Separation of system (
modules/nixos), user space (modules/home-manager), custom binaries (pkgs), and host definitions (hosts/). - 🎛️ Multi-Host Support: Ready for standard x86 systems (Framework & ThinkPad T14), ARM64 hardware (ThinkPad X13s), and lightweight standalone Chromebook home-manager setups (
penguin). - 🎨 Unified Aesthetics (Stylix): System-wide Gruvbox Dark Hard color palette applied to applications, cursor (
Bibata-Modern-Ice), fonts (JetBrainsMono Nerd Font), and styling via a centralized wallpapers repository (thiagokimo/nix-wallpapers). - 🌀 Lua-Powered Hyprland: Integrates
noctalia-shellto compile a custom, modularhyprland.luabind/control sheet for advanced screen locker, workspace rules, and hardware bindings. - ⚡ Nixvim Editor: A fully declarative Neovim environment customized with
neotree,lualine,bufferline,vim-nix, and Dart coding plugins.
Hyprland active workspace showing the custom Waybar, Gruvbox theme, and high-performance blur aesthetics.
Kitty terminal executing Zsh and Yazi file manager alongside the declarative Nixvim editor.
This repository uses a sophisticated, custom Nix Flake layout to build NixOS configurations and Home-Manager environments dynamically, using a shared library helper (lib/default.nix).
graph TD
Flake[flake.nix] -->|Imports| Vars[vars.nix]
Flake -->|Uses| Lib[lib/default.nix]
subgraph Build Engine
Lib -->|buildSystem| NixOS[NixOS Configuration]
Lib -->|buildHome| HomeM[Home Manager Configuration]
end
subgraph Host Profiles
NixOS --> HostsCommon[hosts/common]
NixOS --> HostSpecific[hosts/<hostname>]
HostsCommon --> BaseModule[modules/base]
HostsCommon --> NixosModules[modules/nixos/*]
end
subgraph User Configuration
HomeM --> HomeManagerBase[modules/home-manager]
HomeManagerBase --> CLI[modules/home-manager/cli/*]
HomeManagerBase --> Programs[modules/home-manager/programs/*]
HomeManagerBase --> Hyprland[modules/home-manager/hyprland/*]
end
style Flake fill:#7daea3,stroke:#3c3836,stroke-width:2px,color:#282828
style Lib fill:#a9b665,stroke:#3c3836,stroke-width:2px,color:#282828
style NixOS fill:#d3869b,stroke:#3c3836,stroke-width:2px,color:#282828
style HomeM fill:#e78a4e,stroke:#3c3836,stroke-width:2px,color:#282828
.
├── flake.lock
├── flake.nix # Flake entry point & target host declarations
├── vars.nix # Global variables (username, email, themes, etc.)
├── assets/ # Screenshots and assets
├── hosts/ # Machine-specific configurations
│ ├── common/ # Shared base configurations across machines
│ ├── framework/ # Intel Framework 13 Laptop configuration
│ ├── t14/ # Lenovo ThinkPad T14 Laptop configuration
│ ├── x13s/ # Lenovo ThinkPad X13s ARM Laptop configuration
│ └── penguin/ # Standalone Chromebook / Crostini config
├── lib/ # Custom library helper functions for building systems
├── modules/ # Reusable configuration modules
│ ├── base/ # Core system optimizations, GC, user configurations
│ ├── nixos/ # Global NixOS components (Audio, Boot, Fonts, Steam)
│ └── home-manager/ # User-space configurations (Stylix, XDG, Cli, Programs)
│ ├── cli/ # Shell config (Zsh, Fzf, Eza, Yazi, Nixvim)
│ ├── hyprland/ # Custom Lua Hyprland & Hyprpaper setup
│ └── programs/ # GUI apps (Kitty, Dunst, Waybar, Wofi, Noctalia)
├── overlays/ # Nixpkgs overlays (stable packages, custom changes)
└── pkgs/ # Custom local packages definitions
| Hostname | Architecture | Target Platform | Type | Purpose / Description |
|---|---|---|---|---|
framework |
x86_64-linux |
Framework Laptop | NixOS | Primary development machine |
t14 |
x86_64-linux |
ThinkPad T14 | NixOS | Secondary portable workstation |
x13s |
aarch64-linux |
ThinkPad X13s | Home-Manager | High efficiency Snapdragon ARM64 setup |
penguin |
x86_64-linux |
Chromebook / Crostini | Home-Manager | Independent standalone dotfile setup |
git clone https://github.com/thiagokimo/nix-config.git ~/.config/nix-config
cd ~/.config/nix-configEnsure everything evaluates perfectly before building:
nix flake checkApply the host settings (substitute <hostname> with framework or t14):
sudo nixos-rebuild switch --flake .#<hostname>Apply the standalone home-manager profile:
home-manager switch --flake .#thiago@<hostname>Configured with ❄️ and 💚 by thiagokimo
