2.0 KiB
2.0 KiB
CLI FEATURES (home-manager)
Shell and terminal tooling with Fish + Nushell dual configuration
OVERVIEW
8 CLI modules with integrated tooling across Fish and Nushell shells.
STRUCTURE
cli/
├── default.nix # Imports + shared tools (bat, eza, direnv)
├── fish.nix # Fish shell + aliases
├── fzf.nix # Fuzzy finder
├── nitch.nix # System info tool
├── nushell.nix # Nushell + aliases
├── secrets.nix # Password-store integration
├── starship.nix # Shell prompt
└── zellij.nix # Terminal multiplexer
WHERE TO LOOK
| Task | Location | Notes |
|---|---|---|
| Add CLI tool | default.nix home.packages | Check if shell integration needed |
| Shell aliases | fish.nix or nushell.nix | Kept in sync between shells |
| Prompt config | starship.nix | Uses nerd-fonts symbols |
| Secret access | secrets.nix | Agenix integration |
CONVENTIONS
Shell Integration Pattern
Tools with shell hooks enabled in both Fish and Nushell:
- carapace: Completions
- zoxide: Smart cd
- eza: ls replacement
- direnv: Directory environments
- fzf: Fuzzy finding
NixOS Rebuild Aliases (both shells)
nr/nrs - nixos-rebuild [switch]
snr/snrs - sudo nixos-rebuild [switch]
hms - home-manager switch
Bat Theme
Custom universal theme generated from nix-colors palette in default.nix (lines 34-157).
Secrets Integration
Fish/Nushell source $HOME/.secrets if secrets.enable = true (CLI secrets feature).
ANTI-PATTERNS
- DON'T add aliases to only one shell - keep Fish/Nushell in sync
- DON'T use
programs.bash- Nushell is default shell - DON'T bypass carapace for completions - integrated by default
NOTES
- zellij-ps custom package for project session management
- Default shell set to Nushell in hosts/common/default.nix
- Bat theme dynamically generated (no external theme files)
- lf file manager uses bat for previews
- Agenix CLI (agenix-cli) included for secret management