# 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](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_warp` for visual feedback - Shader animation: Always on for smooth cursor experience - Visual theme automatically syncs with Stylix color palette **Shell Integration:** ```bash # 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:** ```bash # 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: - `G` becomes `| grep` - `L` becomes `| less` - `V` becomes `| nvim` - `JQ` becomes `| jq` - `NE` becomes `2>/dev/null` - **Directory hashing** (dl=~/Downloads, ni=~/.config/nixos, de=~/dev, cy=~/Cyber) - **Bash compatibility mode** (`bindkey -e` for readline bindings) **Session Management:** - Automatically exports Go binary path for all shells - **GNOME Keyring** integration via `SSH_AUTH_SOCK` configuration **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:** ```bash # 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:** ```bash 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:** ```bash # 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:** ```bash 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 - βœ… **`.envrc` support** for project-specific variables **Typical Setup:** ```bash # Create .envrc file in project: echo -e '. .envrc\nlayout python3' > .envrc direnv allow ``` --- #### 2.7. Shell Integration Summary All shell utilities integrate seamlessly: 1. **Zsh** β†’ **Starship prompt** β†’ **Custom aliases** 2. **Zoxide** β†’ Smart navigation β†’ **FZF** for selection 3. **EZA** β†’ File listings with icons β†’ **Direnv** auto-setup 4. **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:** ```vim ff β†’ Find files fg β†’ Live grep fe β†’ Document symbols bb β†’ Buffer list ++ β†’ 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](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:** ```bash --ozone-platform=wayland ``` **Graphics Acceleration:** ```bash --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:** 1. `helium` – Regular browsing window 2. `helium-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](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:** ```yaml 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](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/clip` pattern) - βœ… **Batch renaming** with regex support - βœ… **Bookmark system** with manual entries - βœ… **Preview engine** for media files - βœ… **Status column** with metadata **Typical Usage:** ```bash 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:** ```bash 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.name` and `user.email` set automatically - `init.defaultBranch = main` for new repos - `pull.rebase = false` for standard merges - `push.autoSetupRemote = true` for origin setup - `color.ui = 1` for 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:** ```gitignore # 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:** ```bash 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:** 1. **auto-start-vpn.nix** – Automatic VPN connection on boot 2. **default.nix** – Proton VPN configuration **Features:** ```nix 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:** ```bash 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**: ```nix { inputs, ... }: { imports = [ inputs.nixy.homeManagerModules. # πŸ“¦ Install package group ]; } ``` Or via **nix shell command**: ```bash nix shell github:anotherhadi/nixy# # Instant shell with packages ``` Note: These are **separate from the home/programs** files – refer to **[GROUPS.md](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 1. **NixOS System** (with home-manager installed) 2. **Flakes enabled** in NixOS configuration 3. **Stylix colors** populated (optional, enhances visual integration) 4. **Fonts:** Nerd Fonts and Symbol fonts installed ### Installation Steps #### Step 1: Add Inputs ```nix inputs.nixy.url = "github:anotherhadi/nixy"; ``` #### Step 2: Import Modules ```nix home-manager = { imports = [ inputs.nixy.homeManagerModules. # Or import multiple: ./{ghostty,zsh,nvf}/default.nix ]; }; ``` #### Step 3: Build Environment ```bash home-manager switch --flake /etc/nixos#username@hostname ``` #### Step 4: Verify Installation ```bash # 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 ```nix { inputs, ... }: { imports = [ inputs.nixy.homeManagerModules.ghostty inputs.nixy.homeManagerModules.shell ]; } ``` ### Full development stack ```bash home-manager switch --flake .#username@laptop # Installs: Ghostty, Zsh w/ 20 aliase, NVF (Neovim), Yazi, Helium ``` ### Media workstation ```bash nix shell github:anotherhadi/nixy#cybersecurity # Instant shell with: Zsh, NVF, Ghostty, Lazygit, Helium ``` ### Quick Spotify session ```bash spt # Alias to spotatui via shell configuration /weekend # Type in search bar, space to play ``` --- ## πŸ“š Additional Documentation - **[GROUPS.md](GROUPS.md)** – Predefined software groups with package lists - **[NEOVIM.md](docs/NEOVIM.md)** – Detailed NVF (Neovim) configuration - **[THEMES.md](docs/THEMES.md)** – How theming works and theme creation - **[README.md](docs/README.md)** – System-wide configuration guide - **[SERVER.md](docs/SERVER.md)** – Server-specific services ---