Personal GNU/Linux configuration for NixOS and development environment.
This repository contains my current system configuration, editor setup, terminal configuration and shell tooling.
Distribution: NixOS
Desktop Environment: GNOME
Terminal: Kitty (Gruvbox Material Dark Hard)
Shell: Bash (minimal, vi-mode enabled)
System configuration is modularized under nixos/.
- Flakes enabled
- Modular NixOS config (
modules/) - Docker + libvirt
- PipeWire (ALSA, Pulse, JACK)
- GNUPG agent with SSH support
- YubiKey tooling
- Security tooling (nmap, john, hashcat, wireshark)
- Developer toolchains (clang, gcc, JDK, node, LSP servers)
Minimal, modern configuration based on:
- lazy.nvim (plugin manager)
- Gruvbox Material (hard variant)
- Treesitter
- Native Neovim 0.11 LSP
- nvim-cmp (completion)
- Telescope (fuzzy finding)
- nvim-tree (file explorer)
- gitsigns
- lualine
Configured via native vim.lsp.config for:
- Python (pyright)
- C/C++ (clangd)
- Java (jdtls)
Key features:
- Go to definition (
gd) - Hover (
K) - Rename (
<leader>rn) - Code actions (
<leader>ca) - References (
gr) - Format (
<leader>f)
Bash configuration includes:
- Extended history
- Gruvbox-inspired prompt
- Minimal Git branch indicator
- Useful aliases for:
- git
- ripgrep
- ls
- nixos rebuild
- vi keybindings enabled
Kitty configured with:
- Gruvbox Material Dark Hard
- Fira Code (10pt)
- True color
- Minimal UI noise
dotfiles/ ├── nixos/ ├── nvim/ ├── kitty/ ├── bash/ └── scripts/
nixos/→ system configurationnvim/→ editor configkitty/→ terminal configbash/→ shell configuration
Secrets (certificates, private keys, tokens) are not stored in this repository.
Host-specific configuration (e.g. hardware configuration) may differ per machine.
- Minimal
- Explicit
- No framework bloat
- Native tooling preferred
- Declarative system configuration
- Editor as controlled environment, not a plugin zoo