This is my personal NixOS configuration using flakes, home-manager, and nixvim. It includes configurations for both regular NixOS and WSL (Windows Subsystem for Linux).
- π§ NixOS: Complete system configuration with KDE Plasma desktop
- πͺ WSL Support: NixOS running in Windows Subsystem for Linux
- π Home Manager: User environment and application configuration
- π¨ NixVim: Neovim configuration with AI integration
- π Secrets Management: Both pass and SOPS for secure secret handling
- π€ AI Integration: OpenAI API integration for Neovim AI features
nixos/
βββ flake.nix # Main flake configuration
βββ .sops.yaml # SOPS encryption configuration
βββ secrets/ # Encrypted secrets (SOPS)
βββ nix/
β βββ configurations/ # System configurations
β β βββ nixos/ # NixOS system configs
β β βββ home/ # Home-manager configs
β βββ modules/ # Reusable modules
β βββ nixvim/ # Neovim configuration
βββ README.md
- Install NixOS (if not already installed)
- Clone this repository to your system
- Set up secrets (see Secrets Management section)
# For regular NixOS
sudo nixos-rebuild switch --flake .#arifinoid
# For WSL
sudo nixos-rebuild switch --flake .#wsl-arifinoid# Update flake inputs
nix flake update
# Update specific input
nix flake update nixpkgs
# Build without switching
nix build .#arifinoidThis configuration supports two secret management approaches:
- Setup:
pass init <gpg-key-id> - Add secret:
pass insert arifinoid/openai.api.key - Usage:
cmd:pass show arifinoid/openai.api.key(in nixvim config)
- Setup: Run
./setup-sops-key.sh - Edit secrets:
sops secrets/secret.yaml - Usage: Available as environment variables
The configuration includes AI-powered Neovim features:
- Avante: AI code assistant with multiple providers
- Claude Code: Claude AI integration
- OpenAI: GPT integration via pass or SOPS secrets
<leader>ca: Open AI Ask<leader>cc: Open AI Chat<leader>ce: Edit with instructionta: Toggle Avante
- KDE Plasma desktop environment
- Full development environment
- Steam gaming support
- Bluetooth and audio configuration
- Minimal WSL-optimized configuration
- Development tools and fonts
- SSH server support
- Cross-platform compatibility
Edit the appropriate configuration file:
- System packages:
nix/configurations/nixos/arifinoid.nix - User packages:
nix/modules/home/platform.nix
- Main config:
nix/nixvim/config/default.nix - AI features:
nix/nixvim/config/ai.nix - Editor settings:
nix/nixvim/config/editor.nix
- SOPS decryption errors: Run
./setup-sops-key.shand re-encrypt secrets - Plugin not found: Check if plugin exists in nixpkgs unstable
- Build failures: Check flake inputs and dependencies
- Check NixOS manual:
nixos-help - Search packages:
nix search <package-name> - Check flake inputs:
nix flake show
This configuration was inspired by these excellent NixOS setups:
- malob/nixpkgs - A comprehensive Nix configuration with flakes, home-manager, and nix-darwin support.
- r17x/universe - A development universe. Includes AI integration, secrets management with SOPS, and modern development tooling.