Skip to content

stefan-hacks/nixme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

102 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nixme 🏠

A modular NixOS configuration using flakes, flake-parts, Home Manager, and fwupd.

Version: NixOS 26.05 (Yarara) Stable
Host: Ghost (Primary Laptop)


📁 Directory Structure

nixme/
├── 📄 flake.nix              # Entry point - defines inputs (nixpkgs, home-manager)
├── 📄 parts.nix              # Flake-parts configuration - wires everything together
├── 📄 flake.lock             # Lock file for reproducible builds
│
├── 🖥️ hosts/                 # MACHINE configurations
│   └── ghost/
│       ├── default.nix               # Ghost laptop config (bootloader, user)
│       └── hardware-configuration.nix  # Hardware-specific (LUKS, systemd-boot, kernel modules)
│
├── 🧩 modules/               # Reusable modules
│   ├── nixos/                # ⬅️ SYSTEM-LEVEL modules (require sudo)
│   │   ├── options.nix               # Global nixme.* options namespace
│   │   ├── desktops/gnome            # GNOME desktop environment
│   │   ├── security/base             # Firewall, SSH hardening
│   │   └── system/base               # Core packages, Nix settings, auto-upgrade
│   │
│   └── home/                   # ⬅️ USER-LEVEL modules (Home Manager)
│       ├── desktops/gnome-dconf      # GNOME user settings
│       ├── dev/git                   # Git configuration
│       ├── editors/nvim              # Neovim editor
│       ├── networking                # Network diagnostic tools
│       ├── security                  # Security tools
│       ├── shells/bash               # Bash with modern enhancements
│       ├── shells/starship           # Starship prompt
│       ├── sysadmin                  # System monitoring tools
│       └── terminals/kitty           # Kitty terminal
│
├── 👤 users/                 # USER configurations
│   └── stefan-hacks/
│       └── home.nix                  # Imports and enables home/ modules
│
└── 📚 README.md              # This file

🏗️ Architecture Philosophy

System vs User Separation

Directory Affects Privilege Examples
modules/nixos/ Entire system sudo Bootloader, GNOME, audio, firmware
modules/home/ Single user None Shell configs, editors, terminal settings

Mental Model: Think of it like macOS System Preferences vs User Preferences.


🚀 Quick Start

Apply Configuration

cd ~/.config/nixme
sudo nixos-rebuild switch --flake .#ghost
home-manager switch --flake .#stefan-hacks

📦 What's Installed

System Level (modules/nixos/)

Module Purpose Status
system/base Core packages, Nix settings, auto-upgrade ✅ Enabled
security/base Firewall, SSH hardening ✅ Enabled
desktops/gnome GNOME desktop with PipeWire, Bluetooth, fonts, printing ✅ Enabled

User Level (modules/home/)

Module Purpose Status
shells/bash Bash with blesh, carapace, atuin, zoxide ✅ Enabled
shells/starship Starship prompt ✅ Enabled
editors/nvim Neovim editor ✅ Enabled
terminals/kitty Kitty terminal ✅ Enabled
dev/git Git + lazygit + gh ✅ Enabled
desktops/gnome-dconf GNOME user settings ✅ Enabled
sysadmin System monitoring & hardware tools ✅ Enabled
networking Network diagnostic & security tools ✅ Enabled
security Auditing & encryption tools ✅ Enabled

⚙️ Shell Configuration

The bash module includes:

  • Blesh - Syntax highlighting, auto-suggestions, menu completion
  • Carapace - Completions for 500+ CLI tools
  • Atuin - Shell history sync and search
  • Zoxide - Smart cd replacement

⚡ Boot Configuration

Setting Value
Bootloader systemd-boot (UEFI)
Timeout 3 seconds
Boot entries 10 (max)
LUKS Enabled (root + swap)
Hostname ghost
Timezone America/Sao_Paulo
Locale en_US.UTF-8
stateVersion 26.05

🛠️ Available (But Disabled) Modules

The repo contains additional modules that are not currently enabled:

Category Modules
Browsers Brave, Chromium, Firefox, LibreWolf
Communication Discord, Telegram
Creative Blender, GIMP
Gaming Steam
Media MPV, Spotify, VLC
Productivity Notes apps, Office suites
Containers Docker, Kubernetes (kubectl, helm)
Databases MongoDB, MySQL, PostgreSQL, Redis, SQLite
Desktops Hyprland, i3, KDE, Sway, XFCE
Development VSCode, JetBrains, Go, Node.js, Python, Rust
Graphics AMD, NVIDIA drivers
Monitoring Grafana, Netdata, Prometheus
VPN Mullvad, OpenVPN, WireGuard
Web Servers Caddy, Nginx
Security AppArmor, ClamAV, Fail2ban
Services Nextcloud, Samba

🔧 Key Files

File Purpose
flake.nix Inputs: nixpkgs 26.05, home-manager, flake-parts
hosts/ghost/default.nix Ghost config - bootloader, user, system settings
users/stefan-hacks/home.nix User config - enables home/ modules
modules/nixos/desktops/gnome/ GNOME desktop with all deps

🔄 Update Workflow

# Update flake inputs
nix flake update

# Test
nix flake check

# Apply
sudo nixos-rebuild switch --flake .#ghost
home-manager switch --flake .#stefan-hacks

# Commit and push
git add -A
git commit -m "update: description"
git push origin master

About

A modular, scalable NixOS configuration using flakes, flake-parts, Home Manager, Flatpak, and fwupd.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors