66 lines
2.0 KiB
Markdown
66 lines
2.0 KiB
Markdown
# 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
|