Nix flake for portable CLI tools and dotfiles - fish, tmux, starship, and friends.
| config | ||
| .gitignore | ||
| .gitmodules | ||
| flake.lock | ||
| flake.nix | ||
| home.nix | ||
| README.md | ||
homeless
Nix flake for managing dotfiles and CLI tools.
Packages
| Package | Description |
|---|---|
lazygit |
Terminal UI for git |
fd |
Modern find replacement |
bat |
cat with syntax highlighting |
fzf |
Fuzzy finder |
atuin |
Shell history sync |
zoxide |
Smart cd command |
tmux |
Terminal multiplexer (with config) |
starship |
Cross-shell prompt (with config) |
fish |
Fish shell (with config, includes starship) |
Installation
Install all packages:
nix profile install .#all
Install individual packages:
nix profile install .#fish
nix profile install .#tmux
nix profile install .#lazygit
# etc.
Try without installing:
nix run .#fish
nix run .#lazygit
Development shell:
nix develop
Configuration
Configs live in config/:
config/
├── tmux.conf # tmux configuration
├── starship.toml # starship prompt
└── fish/
├── config.fish # fish shell config
└── functions/ # fish functions
Fish
Fish auto-initializes:
- Starship prompt
- Zoxide (
zcommand) - Atuin (shell history)
- Fzf key bindings
Aliases:
g→gitlg→lazygitcat→batll→ls -la
Functions:
mkcd <dir>- create and cd into directorygitignore <lang>- fetch gitignore templates
Tmux
Prefix is Ctrl-a.
| Key | Action |
|---|---|
prefix + | |
Split vertical |
prefix + - |
Split horizontal |
prefix + h/j/k/l |
Navigate panes |
prefix + H/J/K/L |
Resize panes |
prefix + r |
Reload config |
Updating
nix flake update
nix profile upgrade '.*'