Files
nixy/docs/Programs.md
T
admin 7ea20554a6 Add configuration for Librewolf and Zen browser with privacy-focused policies
- 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`.
2026-06-22 23:11:52 +02:00

908 lines
28 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
<leader>ffFind files
<leader>fgLive grep
<leader>feDocument symbols
<leader>bbBuffer 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](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.<group> # 📦 Install package group
];
}
```
Or via **nix shell command**:
```bash
nix shell github:anotherhadi/nixy#<group> # 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.<program>
# 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
---