0xWheatyz ea03f7d998 feat(claude): disable commit signature and fix permission syntax
- Add includeCoAuthoredBy option set to false
- Update customInstructions to exclude signature from commits
- Fix Bash permission syntax from "git *" to "git:*"
2026-03-15 12:22:12 -04:00

NixOS Configuration

Personal NixOS system configuration using Flakes and Home Manager for declarative system management.

System Overview

  • OS: NixOS 25.11
  • Desktop Environment: GNOME (Wayland/X11)
  • Terminal: Ghostty + tmux
  • Shell: Zsh with Oh-My-Zsh (agnoster theme)
  • Editor: Neovim with kickstart.nvim
  • Hostname: nixos

Features

Core System

  • Bootloader: GRUB with EFI support and OS Prober (dual-boot ready)
  • Timezone: America/New_York
  • Locale: en_US.UTF-8
  • Networking: NetworkManager enabled

Hardware Support

  • Bluetooth: Enabled with Blueman
  • Fingerprint Sensor: fprintd enabled
  • Audio: PipeWire with ALSA and PulseAudio compatibility
  • Printing: CUPS enabled

Security & Authentication

  • YubiKey Support: Configured for login and sudo authentication
  • Auto-lock on YubiKey removal: Sessions lock when YubiKey is disconnected
  • Fingerprint Authentication: Available for compatible hardware

Development Environment

  • Docker: Rootless mode enabled with proper namespace configuration
  • VMware Workstation: Host support enabled
  • Nix Flakes: Experimental features enabled

Networking

  • Tailscale VPN: Enabled with client routing features
  • Firewall: Configured with Tailscale trusted interface
  • Editable /etc/hosts: Permissions set to 0644 for easy modification

Desktop Customization

  • GNOME Extensions:
    • Blur My Shell
    • Just Perfection
    • Arc Menu
  • Fonts: 0xProto Nerd Font, Adwaita icons
  • Scaling: Experimental fractional scaling and xwayland-native-scaling enabled
  • QT Integration: QT apps use GNOME theme (Adwaita Dark)

Alternative Window Manager

  • Hyprland: Configured but not currently active (see home.nix for configuration)

Installed Software

System Packages

  • Firefox
  • VMware Workstation
  • Lunar Client (Minecraft)
  • JetBrains Rust Rover
  • Cursor (VS Code fork)
  • Obsidian
  • Claude Code

User Packages

  • Kate (KDE text editor)
  • Bitwarden (desktop + CLI)
  • LunarVim
  • KiCad
  • Ghostty terminal
  • Python 3
  • nmap
  • minicom
  • freerdp

Configuration Files

.
├── configuration.nix          # System-level configuration
├── home.nix                   # User-level configuration (Home Manager)
├── hardware-configuration.nix # Auto-generated hardware config
└── flake.nix                  # Flake inputs and outputs

Getting Started

First Time Setup

  1. Clone this repository:
git clone <your-repo-url> ~/Documents/nixos-configuration
cd ~/Documents/nixos-configuration
  1. Review and customize configurations:

    • Edit configuration.nix for system-wide changes
    • Edit home.nix for user-specific settings
  2. Apply the configuration:

sudo nixos-rebuild switch --flake .#nixos

Making Changes

System-Level Changes

Edit configuration.nix and rebuild:

sudo nixos-rebuild switch --flake .#nixos

User-Level Changes

Edit home.nix and rebuild:

sudo nixos-rebuild switch --flake .#nixos
# or use home-manager directly:
home-manager switch

Adding Packages

System-wide (available to all users): Add to environment.systemPackages in configuration.nix:

environment.systemPackages = with pkgs; [
  # your-package-here
];

User-specific: Add to home.packages in home.nix:

home.packages = with pkgs; [
  # your-package-here
];

Updating the System

Update flake inputs and rebuild:

nix flake update
sudo nixos-rebuild switch --flake .#nixos

Key Configurations

Git Configuration

Managed declaratively in home.nix:

  • User: 0xWheatyz
  • Email: wyatt@leeworks.dev
  • Default Branch: master
  • Auto push remote setup: Enabled
  • Custom alias: git lg for pretty log visualization

SSH Configuration

Custom SSH hosts configured in home.nix:

  • vps: Direct connection to 45.79.198.105
  • home: Via jump host proxy
  • git: Local git server at 10.0.1.10
  • Connection multiplexing enabled for faster subsequent connections

Tmux

  • Mouse support enabled
  • Window numbering starts at 1
  • 256-color terminal support
  • Auto-starts on terminal launch

Zsh

  • Oh-My-Zsh with agnoster theme
  • Custom nix develop wrapper that launches in zsh
  • Tmux auto-start on interactive terminals
  • Project shell indicator in prompt

Neovim Configuration

Using kickstart.nvim as the base configuration, managed through Flakes.

Required dependencies are automatically installed:

  • Neovim
  • ripgrep
  • fd
  • gcc
  • gnumake
  • git

Configuration is synchronized from the GitHub repository and placed in ~/.config/nvim.

Docker Configuration

Docker is configured in rootless mode:

  • Unprivileged user namespaces enabled
  • Socket variable automatically set
  • User l-wyatt is in the docker group

Usage:

docker ps  # No sudo required

Troubleshooting

Slow Shutdown

The configuration includes optimizations for shutdown handling:

  • User manager timeout reduced to 30s (from default 90s)
  • Prevents hangs when user linger is enabled

Building from Flake

If you encounter issues, try:

# Rebuild with verbose output
sudo nixos-rebuild switch --flake .#nixos --show-trace

# Check flake validity
nix flake check

# Update flake lock file
nix flake update

YubiKey Issues

If YubiKey authentication isn't working:

# Check PAM configuration
cat /etc/pam.d/login
cat /etc/pam.d/sudo

# Verify udev rules
udevadm control --reload-rules

Important Notes

  • stateVersion: Set to 25.11 - do not change after initial installation
  • Home Manager stateVersion: Also 25.11 - keep in sync with system version
  • Unfree packages: Enabled system-wide via nixpkgs.config.allowUnfree
  • User groups: l-wyatt is member of: networkmanager, wheel, docker, dialout
  • User linger: Enabled for background services

Additional Resources

License

This configuration is personal and provided as-is for reference.

S
Description
No description provided
Readme 283 KiB
Languages
Nix 100%