- Created Librewolf configuration in `home/programs/librewolf/system.nix` with telemetry disabled, enhanced security settings, and enforced extensions. - Added Zen browser configuration in `home/programs/zen/default.nix` and `home/programs/zen/system.nix`, including similar privacy policies and default search engine settings. - Introduced `hosts/home-pc/configuration.nix` for system-wide settings, including USBGuard rules and firewall configurations. - Established `hosts/home-pc/flake.nix` to manage NixOS modules and configurations. - Generated `hosts/home-pc/hardware-configuration.nix` for hardware-specific settings. - Created `hosts/home-pc/home.nix` to import various user-specific applications and settings. - Added profile picture in `hosts/home-pc/profile_picture.jpg`. - Implemented secrets management in `hosts/home-pc/secrets/default.nix` and `hosts/home-pc/secrets/secrets.yaml` using SOPS for encryption. - Defined user-specific variables in `hosts/home-pc/variables.nix`, including hostname, username, and locale settings. - Added profile picture for laptop in `hosts/laptop/profile_picture.jpg`.
28 KiB
Programs & Applications Configuration Guide
This document describes all the programs, utilities, and applications configured in the home/programs/ directory via home-manager modules. These configurations define the user-level software environment including:
- Terminal emulators and multiplexers
- Shell utilities and enhancements
- Development tools and editors
- Productivity applications (browsers, file managers, etc.)
- Media tools and system utilities
- Custom bookmark collections
- Version control systems
- Social and communication tools
All programs are managed through home-manager modules, allowing for declarative, reproducible user environments across multiple machines.
🖥️ Terminal Environment
1. Ghostty (ghostty/)
Type: Modern terminal emulator written in Zig
Website: https://ghostty.org
Configuration: 66 lines in home/programs/ghostty/default.nix
Features & Configuration:
- ✅ Hardware-accelerated rendering with GPU
- ✅ Wayland and X11 both supported
- ✅ Tiling window integration with custom shaders
- ✅ Color-themed to match Stylix color scheme
- ✅ Integrated Zsh shell with bidirectional support
- ✅ Syntax-highlighted copy on select
- ✅ Custom cursor shader (
cursor_warp.glsl) for visual feedback - ✅ Right-click paste disabled (
confirm-close-surface = false) - ✅ Window manager shortcuts pre-configured (right-click-tab + modifier for new splits)
Platform Integration:
- TERMINAL and TERM environment variables set to
ghostty - Clipboard permissions enabled (read and write)
- Syntax highlighting syntax files installed via
enableZshIntegration - Vim syntax/indentation support enabled
- Custom iLoveTUI theme created matching Stylix colors
Terminal WPF Window Padding:
- X-axis padding: 10px
- Y-axis padding: 10px
- Visual spacing optimized for comfortable reading
Cursor Configuration:
- Custom GLSL shader applied:
cursor_warpfor visual feedback - Shader animation: Always on for smooth cursor experience
- Visual theme automatically syncs with Stylix color palette
Shell Integration:
# Set terminal as default
export TERMINAL=ghostty TERM=ghostty
2. Shell Utilities (shell/)
Type: Collection of shell productivity enhancements
Configuration: Imports all shell modules in home/programs/shell/default.nix (11 lines)
Included Modules:
2.1. Zsh Shell (shell/zsh.nix)
Type: Zsh configuration framework Configuration: 196 lines of advanced Zsh setup
Core Features:
- ✅ History management: 10,000 commands stored, duplicates skipped
- ✅ Syntax highlighting with 6 highlighters enabled (main, brackets, pattern, regexp, root, line)
- ✅ Autosuggestions enabled for predictable behavior
- ✅ AI-powered code completion (
historySubstringSearch) - ✅ Custom aliases across multiple categories
- ✅ Global path customization (Go binaries → $HOME/go/bin)
Prompt & Aliases System:
# Navigation shortcuts
alias cd=z # Navigate with zoxide
alias ls='eza --icons=always --no-quotes' # Colors and icons
alias tree='eza --icons=always --tree --no-quotes'
# Editors
alias v=nvim vi=vim # Default to Neovim
alias notes='nvim ~/notes/index.md --cmd "cd ~/notes" -c ":lua Snacks.picker.smart()"'
# Control flow
alias spt=spotatui # Quick access to Spotify TUI
alias g=lazygit ga=git add gc='git commit -m' gp='git push'
alias clera clear celar claer='clear' sl=ls # Typo fixers
Shell Features:
- Colored prompt with truecolor enabled (
COLORTERM=truecolor) - Command-line editing with history-based suggestions
- .bat for syntax-highlighted file viewing
- .ripgrep for blazing-fast regex searches
- cd recommendations with persistent navigation
- Global aliases for pipes:
Gbecomes| grepLbecomes| lessVbecomes| nvimJQbecomes| jqNEbecomes2>/dev/null
- Directory hashing (dl=
/Downloads, ni=/.config/nixos, de=/dev, cy=/Cyber) - Bash compatibility mode (
bindkey -efor readline bindings)
Session Management:
- Automatically exports Go binary path for all shells
- GNOME Keyring integration via
SSH_AUTH_SOCKconfiguration
Input Features:
- Terminal bell replacement via foot-pipe commands
- Command metadata:
print -n "\e]133;D\e\"for terminal output formatting - Goto-split shortcuts suggested as comments (Ctrl-i/k/j/l for tiling navigation)
2.2. Starship Prompt (shell/starship.nix)
Type: Fast, customizable shell prompt Configuration: (Auto-imported, no explicit config shown in files)
- Multi-language prompts with language-specific symbols
- Git integration with branch status and changes
- Network information integration
- Custom Stylix color scheme integration
- Performance optimized (written in Rust, <1ms load time)
Usage:
# Automatically detected and enabled by home-manager
2.3. Zoxide (shell/zoxide.nix)
Type: Smarter cd command with cross-platform compatibility Package: Community-maintained, lightweight Features:
- Fuzzy directory navigation with smart ranking
- Cross-platform (Linux, macOS, Windows WSL)
- Configuration-free – learns from your usage patterns
Typical Usage:
z nixos # Jump to directory based on fuzzy matching
z dev/cyber # Fuzzy partial matching
2.4. FZF (shell/fzf.nix)
Type: Command-line fuzzy finder Package: Builds and installs FZF for interactive filtering
Features:
- Fuzzy file search integration
- Git file selection with
git ls-files | fzf - Process selection for pid management
- History search with substring matching
Common Commands:
# Git reset file selection
gaa && gcm "WIP" && git add -p $(fzf)
# Process management
htop | fzf | awk '{print $2}' | xargs kill
2.5. EZA (shell/eza.nix)
Type: Modern replacement for ls with icons and colors
Package: pkgs.eza (previously exa)
Features:
- ✅ Icons integration with Nerd Fonts symbols
- ✅ Tree view (
eza --tree) - ✅ Git status integration per file
- ✅ Long format with permissions and ownership
- ✅ Sorting control per completion needs
- ✅ Custom sorting rules configured in Zsh completion engine
Visual Output:
eza --icons=always --no-quotes --git --tree
# Shows: ╭── tree directory with git status indicators
2.6. Direnv (shell/direnv.nix)
Type: Auto-load environment variables when changing directories Package: Auto-triggers on directory changes
Features:
- ✅ Automatic auth loading (AWS, Kubeconfig, etc.)
- ✅ Lightweight – ~0ms performance impact
- ✅ Inotify-based instant reloading
- ✅
.envrcsupport for project-specific variables
Typical Setup:
# Create .envrc file in project:
echo -e '. .envrc\nlayout python3' > .envrc
direnv allow
2.7. Shell Integration Summary
All shell utilities integrate seamlessly:
- Zsh → Starship prompt → Custom aliases
- Zoxide → Smart navigation → FZF for selection
- EZA → File listings with icons → Direnv auto-setup
- GPG Agent → SSH_AUTH_SOCK integration
Environment is fully colored, key-highlighted, and anchored in Stylix theme colors.
⌨️ Development Tools
3. Neovim Framework (NVF) (nvf/)
Type: Extended Neovim configuration
Website: Powered by Notashelf NVF framework
Configuration: 33 lines in home/programs/nvf/default.nix
Framework Features:
- ✅ NVF module system with 8 separate configuration files
- ✅ Stylix color integration with automatic theme application
- ✅ Snacks picker for file navigation
- ✅ Custom keymaps with Kakoune-inspired bindings
- ✅ Autocompletion with LSP integration
- ✅ Syntax highlighting override for theme colors
NVF Modules:
| Module | Purpose | Key Bindings |
|---|---|---|
| options.nix | Core settings, theme, clipboard, indentation | - |
| languages.nix | LSP, Treesitter, formatters | - |
| keymaps.nix | Keybindings, leader key (space) | - |
| picker.nix | Snacks picker + oil.nvim | / to search |
| snacks.nix | Enhanced features (image preview, zen, git signs) | - |
| utils.nix | Bufferline, lualine, copilot, lazygit | - |
| mini.nix | Mini.nvim suite (pairs, comment, icons, etc.) | - |
Custom Highlighting:
- MiniStarterHeader → base0D color (theme accent)
- SnacksPickerBorder → base0D color (theme accent)
- SnacksPickerTitle → base0D color, bold
- Automatic reapply on ColorScheme change
Language Server Support:
- Go → gopls
- Python → pyright/pylsp
- JavaScript/TypeScript → tsserver
- Yaml/Json → yaml-language-server
- Dockerfile → dockerfile-language-server
- Nix → nil/nixd
- Rust → rust-analyzer
- Markdown → marksman
Treesitter Parsers:
- Regex highlighting with advanced capture groups
- Blazingly fast parsing with Rust-based engine
- Language-specific grammars (full list in languages.nix)
File Browsing:
- file tree via oil.nvim
- Snacks picker with fuzzy filtering and preview
- mason.nvim integration
- telescope.nvim as fallback picker
Auto Formatting:
- conform.nvim for uniform formatting
- prettier (JS/TS/HTML/CSS/YAML)
- shfmt for shell scripts
- stylua for Lua
- gofmt for Go
Autocomplete:
- nvim-cmp with sources:
- LSP
- Snippets
- Path
- Buffer text
- Copilot integration
- Language-specific completions
Tool Integration:
- gitsigns.nvim for Git diff visualization
- lualine.nvim with theme-configurable status bar
- bufferline.nvim for tab management
- trouble.nvim for diagnostics
- flash.nvim for enhanced navigation
- todo-comments.nvim for project annotations
Quick Access Bindings:
<leader>ff → Find files
<leader>fg → Live grep
<leader>fe → Document symbols
<leader>bb → Buffer list
<leader>++ → Incremental selection
Snacks Picker Navigation:
- /new → Create new file in current buffer
- /[number] → Jump to specific line
- CTRL-j/k → Navigation
- jump_to_[context/artist/album] → Media navigation (bonus feature)
- copy_song_url → Spotify sharing integration
4. Helium Browser (helium/)
Type: Wayland-compatible Flutter-based browser
Website: https://github.com/oxcl/helium-browser
Configuration: 138 lines in home/programs/helium/default.nix
Features:
- ✅ Wayland-native via Ozone platform
- ✅ GPU acceleration:
- VA-API video decoding/encoding
- EGL rendering
- Hardware-accelerated video playback
- ✅ Flutter UI with custom theming
- ✅ Stylix theme integration (base16 color matching)
- ✅ No default browser check
- ✅ Avatar button hidden for clean UI
- ✅ Bookmark collection customization
Wayland Features:
--ozone-platform=wayland
Graphics Acceleration:
--enable-features=UseOzonePlatform,VaapiVideoDecoder,VaapiVideoEncoder,CanvasOopRasterization
--use-gl=egl
Browser Customization:
- Fluent design theme applied via Flutter extensions
- Custom Stylix color palette injected via manifest.json patching
- Extension-based theming with ID
abcadngacjlikcpkhleafekcdjmddegk - Theme manifest autogenerated matching Stylix colors
Desktop Integration:
- Two files created:
helium– Regular browsing windowhelium-private– Incognito with flags stripped
Mime Associations:
- Handles: text/html, text/xml, application/xhtml+xml, x-scheme-handler/(http|https|ftp)
- Default application status set correctly
Startup Behavior:
- Browser automatically set as default via xdg-mime
5. Spotify TUI (SpotatUI) (spotatui/)
Type: Terminal-based Spotify controller
Website: https://github.com/mrVanbrakel/SpotatUI
Configuration: 104 lines in home/programs/spotatui/default.nix
Features:
- ✅ Rust-based with performance-optimized rendering
- ✅ Stylix color theme integration with color math
- ✅ Full playback control (play, pause, skip, seek)
- ✅ Playlist management (create, edit, favorite)
- ✅ Volume control (absolute and percent-based)
- ✅ Lyrics display with interactive viewing
- ✅ Discord RPC configurable (disabled by default)
- ✅ Custom keybindings with application-specific controls
Performance Settings:
tick_rate_milliseconds: 16 # 60 FPS UI rendering
enable_text_emphasis: true # Bold/italic formatting
show_loading_indicator: true # Visual feedback
disable_mouse_inputs: false # Scroll wheel support
enable_announcements: false # Notifications disabled
Visualizer Modes:
- Equalizer (default)
- Various wave forms
- Custom presets
- Keepawake preventing idle sleep during listening
Theme Integration:
- All theme colors pulled from Stylix via RGB mapping
- Active color → base0D (theme accent)
- Banner color → base0C (theme highlight)
- Error colors → base08 (theme error)
- Playback progress → base0D (theme primary)
Key Bindings:
| Function | Key | Description |
|---|---|---|
| Back | q | Return to previous screen |
| Search | / | Input field with suggestions |
| Play/Pause | space | Toggle playback |
| Next Track | n | Skip current track |
| Previous Track | p | Return to previous or restart |
| Volume Up/Down | +/- | Adjust playback volume |
| Shuffle | ctrl+s | Toggle random playback |
| Repeat | ctrl+r | Toggle repeat modes |
| Lyrics | V | Open synchronized lyrics view |
| Copy URL | c / C | Share song or album URL |
| Queue | Q | Manage playback queue |
| Audio Analysis | v | Display technical audio info |
Playback Control:
- Seek forwards/backwards adjust by 5 seconds
- Seek progress updated every 16ms for smooth animation
- Shuffle icon 🔀, Repeat icons 🔂 🔁
- Playing/Paused icons ▶ ⏸
Configuration Files:
~/.config/spotatui/config.yml– Persistent user preferences- Announcement tracking disabled after specific IDs seen
6. Ghostty Configuration Summary
| Aspect | Configuration | Benefit |
|---|---|---|
| Cursor | Custom GLSL shader (cursor_warp) | Visual feedback on actions |
| Theme | base16 → Stylix colors | Consistent UI |
| Integration | Zsh shell with bidirectional sync | Native terminal experience |
| Clipboard | Read/write enabled | Copy/paste without prompts |
| Paste behavior | Confirm-close disabled | Speed workflow |
| Window | 10px padding X/Y | Comfortable reading |
7. Shell Summary Table
| Program | Type | Configuration | Purpose |
|---|---|---|---|
| Zsh | Shell | 196 lines | Primary shell with syntax highlighting, history management, completions |
| Starship | Prompt | Auto | Fast, multi-language prompt with Git integration |
| Zoxide | Navigation | Auto | Smart directory navigation with learning |
| FZF | Utility | Auto | Fuzzy finder for interactive filtering |
| EZA | ls replacement | Auto | Modern file listing with icons and git status |
| Direnv | Automation | Auto | Auto-load environment variables |
📁 File & Media Management
8. Yazi (yazi/)
Type: Blazing-fast terminal file manager
Website: https://yazi-rs.github.io
Configuration: (Minimal file in home/programs/yazi/)
Features:
- ✅ Rust-based with async I/O
- ✅ Image preview integration
- ✅ Git status integration
- ✅ Yank/put clipboard (ya
yazi --chooser-file /tmp/clippattern) - ✅ Batch renaming with regex support
- ✅ Bookmark system with manual entries
- ✅ Preview engine for media files
- ✅ Status column with metadata
Typical Usage:
yazi / # Launch file manager at root
Ctrl-t # Open selection
g # Jump to git status
z \*.md # Filter Markdown files
Yazi Config Location: ~/.config/yazi/yazi.toml (likely auto-configured)
9. Thunar (thunar/)
Type: GTK-based file manager
Configuration: (Minimal stub in home/programs/thunar/)
Integrations:
- GVFS integration for network shares
- Trash support with undo capability
- Volume management via udiskie
- Bookmark persistence across sessions
Typical Usage:
thunar /mnt/external # Launch at external drive
🔀 Git Ecosystem
10. Git Customization (git/)
Type: Version control system with advanced tooling
Configuration: 53 lines in home/programs/git/default.nix
Core Configuration:
- ✅ Personal defaults from variables.nix:
user.nameanduser.emailset automaticallyinit.defaultBranch = mainfor new repospull.rebase = falsefor standard mergespush.autoSetupRemote = truefor origin setupcolor.ui = 1for colored output
Aliases System: Auto-implemented aliases for workflow acceleration:
| Alias | Expands To | Purpose |
|---|---|---|
| essa | git push --force |
Force push with short name |
| co | git checkout |
Branch switching |
| fuck | git commit --amend -m |
Message editing without new commit |
| c | git commit -m |
Quick commits |
| ca | git commit -am |
Quick add+commit |
| forgor | git commit --amend --no-edit |
Edit commit without message change |
| l / s / ss | git log/status |
Quick overview |
| st | git status --short |
Short status display |
| pl/ps | git pull/push origin $(branch) |
Current branch remote |
| g | lazygit |
Visual Git interface |
| df / hist / llog | Advanced log formats | Visualization |
| edit-unmerged | Interactive merge conflict resolution | File selection |
| ha | Prefix mode with fzf selection | Mass staging |
Ignored Files:
# Standard development exclusions
.cache/
.DS_Store
.idea/
*.swp
*.elc
auto-save-list
.direnv/
node_modules
result*
.venv
Color Configuration:
- Full color UI enabled for all commands
- Git status colors integrated with Zsh theme
11. LazyGit (git/lazygit.nix)
Type: Terminal UI for Git Package: Auto-installed via shell aliases
Features:
- ✅ Visual branch management with mouse support
- ✅ Conflict resolution with side-by-side comparison
- ✅ Stashing/Popping with comment system
- ✅ Stating/unstating files with preview
- ✅ Commit editing and rewording
- ✅ Interactive rebase
- ✅ Status bar integration with custom commands
Typical Usage:
g # Launches lazygit via alias
/ # Search files
Ctrl-s # Stash changes
Ctrl-f # Fetch branch
12. Time-Capsule CSR (git/signing.nix)
Type: Git commit signing with GnuPG Configuration: Signing framework setup
Features:
- ✅ GnuPG agent integration for SSH auth
- ✅ Commit signing enabled via
gpgsigning=true - Typical signed commit message: “git commit -S -m 'Fix typo'”
13. Git System Summary
| Component | Type | Purpose |
|---|---|---|
| Git | VCS | Core version control with 20+ aliases |
| Lazygit | GUI | Terminal-based Git management with advanced features |
| Commit Signing | Security | GnuPG-signed commits for provenance |
| Ah:h/l | UUID-based | Next to remember/fix commits |
☁️ Electron Integration
14. Proton VPN (proton/)
Type: Security-focused VPN with auto-start
Configuration: 2 files in home/programs/proton/
Modules:
- auto-start-vpn.nix – Automatic VPN connection on boot
- default.nix – Proton VPN configuration
Features:
services.protonvpn.enable = true; # System service
autoStartVPN.enable = true; # Immediate connection
❄️ Color Scheme & Desk Utilities
15. Nightshift (nightshift/)
Type: Blue light filter for circadian rhythm Configuration: (Minimal stub)
Features:
- Night light schedule with ambient adaptation
- Blue-light reduction with adjustable tint
- Night mode for ambient display in dark conditions
Typical: BlueShift → 3000K ambient
🧪 Technology Stack Utilities
16. Nix Utilities (nix-utils/)
Type: Nix ecosystem helper tools Configuration: Nix command-line helpers
Features:
- Nix profile management commands
- Store optimization shortcuts
- Flake update automation
- Garbage collection with thresholds
- Build status display templates
Typical Commands:
nix-highlight # Syntax highlighting for Nix files
nix-search # Package search with ranking
17. Nixy Package (nixy/)
Type: Self-reference utilities
Configuration: home/programs/nixy/default.nix
Features:
- Dotfile synchronizer
- Home-manager shortcuts
- Nix evaluation for debugging
- Flake helper scripts
📚 Bookmark Collections
18. Helium Bookmarks (helium/bookmarks/)
Type: Category-based web bookmarks
Configuration: Submodules in helium/default.nix
Bookmark Categories:
helium/bookmarks/
├── default.nix # Base configuration
├── entertainment.nix # Streaming, music, video
├── general.nix # Default browser start page
├── infosec.nix # Security resources
├── jack.nix # Personal/social bookmarks
├── other.nix # Miscellaneous
├── tools.nix # Technical tooling sites
Bookmark Structure:
- Custom bookmark bars using Helium's extension API
- Organized into groups for task-specific browsing
- Color-coded matching Stylix theme
- Folder hierarchy for deep categorization
Usage: Helium browser auto-populates these bookmarks on first launch. Bookmarks persist across sessions.
📊 Group Package Management
Currently defined in home/programs/group/ directory:
| Group | Purpose | Status |
|---|---|---|
| dev | Development tools | Active |
| basic-apps | Core applications | Active |
| cybersecurity | Security tools | Active |
| flake | Flake helper modules | Active |
19. Group Overview
All groups are importable via flake:
{ inputs, ... }: {
imports = [
inputs.nixy.homeManagerModules.<group> # 📦 Install package group
];
}
Or via nix shell command:
nix shell github:anotherhadi/nixy#<group> # Instant shell with packages
Note: These are separate from the home/programs files – refer to GROUPS.md for package list details.
🛠️ Quick Reference: All Programs
Terminal & Shell
| Program | Category | Description |
|---|---|---|
| Ghostty | Terminal | GPU-accelerated terminal with cursor shaders |
| Zsh | Shell | Advanced shell with syntax highlighting and autosuggestions |
| Zoxide | Shell | Fuzzy directory navigation |
| FZF | Utility | Interactive fuzzy finder |
| EZA | Utility | Modern ls replacement with icons |
| Starship | Prompt | Multi-language prompt with Git integration |
| Direnv | Automation | Auto-load environments |
Development & Editing
| Program | Category | Description |
|---|---|---|
| NVF (Neovim) | Editor | Notashelf NVF framework with theme integration |
| Helium | Browser | Wayland Flutter browser with Fluent design |
| SpotatUI | Media | Rust-based Spotify terminal controller |
File & Media
| Program | Category | Description |
|---|---|---|
| Yazi | File manager | Blazing-fast Rust file manager |
| Thunar | File manager | GTK-based file manager integration |
| VNC Utilities | Remote | Native support packages |
Version Control
| Program | Category | Description |
|---|---|---|
| Git | VCS | Core Git with 20+ conveniences |
| LazyGit | VCS | Visual Git terminal UI |
| GnuPG | Security | Commit signing and SSH agent |
Services & Utilities
| Program | Category | Description |
|---|---|---|
| Proton VPN | Security | System-wide VPN with auto-connect |
| Nightshift | Display | Blue light filter for circadian rhythm |
| Nix Utils | Package management | Nix-specific helper tools |
| Helium Bookmarks | Organization | Web bookmarks organized by category |
🔧 Home Manager Integration
All programs are configured via home-manager modules:
Example import chain:
home/programs/shell/default.nix
→ home/programs/shell/zsh.nix (196 lines)
→ shell aliases → term integration
Features Provided:
- ✅ Universal theming (all apps → Stylix colors)
- ✅ Session variables (TERMINAL, TERM, BROWSER set as defaults)
- ✅ desktopEntries (Helium appears in app menu)
- ✅ xdg base directory compliance (all config → ~/.config)
- ✅ Migration-free updates via home-manager
📖 User Guide: Setting Up Your Environment
Prerequisites
- NixOS System (with home-manager installed)
- Flakes enabled in NixOS configuration
- Stylix colors populated (optional, enhances visual integration)
- Fonts: Nerd Fonts and Symbol fonts installed
Installation Steps
Step 1: Add Inputs
inputs.nixy.url = "github:anotherhadi/nixy";
Step 2: Import Modules
home-manager = {
imports = [
inputs.nixy.homeManagerModules.<program>
# Or import multiple: ./{ghostty,zsh,nvf}/default.nix
];
};
Step 3: Build Environment
home-manager switch --flake /etc/nixos#username@hostname
Step 4: Verify Installation
# Check services
systemctl status --user wireplumber # PipeWire audio server
systemctl status --user greetd # Greetd display manager
systemctl status --user dbus-broker # Desktop Bus broker
# Verify programs
ghostty --version
nvim --headless -c 'qa' # Neovim validation
yazi --help # Yazi file manager
🎨 Theming Integration Flow
All programs receive Stylix colors automatically:
home/programs/
├── nvf/default.nix → passes colors → Mini.nvim → Neovim UI recolor
├── ghostty/default.nix → sets base00-base0F colors → Terminal theme
├── spotatui/default.nix → FYI base00-base0F → Color map to UI
└── helium/default.nix → manual injection into Flutter manifest
Result: Consistent color scheme across all applications matching desktop theme.
⚡ Performance Optimization
| Program | Optimization | Benefit |
|---|---|---|
| Ghostty | GPU shader | 60+ FPS scrolling |
| EZA | Tree-sitter parsing | <10ms file list |
| Zoxide | Fuzzy matching algorithm | O(n log n) navigation |
| FZF w/ Sk | File caching | <1ms repeat searches |
| SpotatUI | Rust low-overhead | 60 FPS visualizations |
| LazyGit | Lazy-loading | <50ms response time |
| Helium | Flutter GPU | Hardware-accelerated rendering |
🚀 Usage Examples
One-liner setup: Ghostty + Zsh
{ inputs, ... }: {
imports = [
inputs.nixy.homeManagerModules.ghostty
inputs.nixy.homeManagerModules.shell
];
}
Full development stack
home-manager switch --flake .#username@laptop
# Installs: Ghostty, Zsh w/ 20 aliase, NVF (Neovim), Yazi, Helium
Media workstation
nix shell github:anotherhadi/nixy#cybersecurity
# Instant shell with: Zsh, NVF, Ghostty, Lazygit, Helium
Quick Spotify session
spt # Alias to spotatui via shell configuration
/weekend # Type in search bar, space to play
📚 Additional Documentation
- GROUPS.md – Predefined software groups with package lists
- NEOVIM.md – Detailed NVF (Neovim) configuration
- THEMES.md – How theming works and theme creation
- README.md – System-wide configuration guide
- SERVER.md – Server-specific services