Configuration for Fish, Starship, TMUX, Neovim and development tools.
Works on macOS (Homebrew) and Fedora/Bluefin (DNF).
git clone https://github.com/USERNAME/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.shThe script installs just if missing and runs the full installation.
just install-fish # Fish shell
just install-starship # Prompt
just install-tmux # Terminal multiplexer
just install-nvim # Neovim (symlink)
just install-gitconfig # Git with delta
just install-lazygit # Lazygitjust install-claude # Claude Code
just install-codex # Codex CLI
just install-aichat # AIChat
just install-coding-agents # Alljust check-changes # Preview changes without applying
DRY_RUN=1 just install-fish # Dry-run a component
just diff-config tmux # Diff specific config
just list-backups # List backups
just restore-backup fish <ts> # Restore backupBackups are created automatically in ~/.config-backups/.
fish/
config.fish # Main config
conf.d/ # Auto-loaded
aliases.fish
abbreviations.fish
integrations.fish # fzf, zoxide, starship
tmux.fish
workspaces.fish
functions/ # Custom functions
nvim/ # LazyVim config (symlink to ~/.config/nvim)
tmux.conf # TMUX config
starship.toml # Prompt config
git/config # Git config with delta
lazygit/ # Lazygit config
aichat/ # AIChat config
claude/ # Claude Code settings
codex/ # Codex CLI config
code/ # VSCode settings
zed/ # Zed editor settings
cli.Brewfile # Homebrew packages
Set as default shell:
echo $(which fish) | sudo tee -a /etc/shells
chsh -s $(which fish)Zed remote terminals can start the platform login shell before applying the
configured fish shell. These dotfiles set terminal.env.ZED_WANTS_FISH=1 in Zed
and install a shared hook for zsh and bash:
- macOS/zsh:
.zshenvsources~/.config/shell/zed-fish-shell-hook.sh. - Linux/bash:
.bashrcand.bash_profilesource the same hook, and Zed setsBASH_ENV=${HOME}/.config/shell/zed-fish-shell-hook.shfor non-interactive bash launches.
The hook uses ZED_FISH_LAUNCHED to avoid loops and falls back to common fish
paths on macOS and Linux when fish is not already on PATH.
Useful abbreviations (expand with space):
g->gitga->git addgc->git commitgp->git push
Prefix: Ctrl-a
Main shortcuts:
Ctrl-a |vertical splitCtrl-a -horizontal splitCtrl-a zzoom pane- Click to switch panes
Fish functions:
ta <session>attachts <name>new sessiontllist sessions
See cli.Brewfile for full list. Install with:
just install-brew-essential-cli-packagesMain tools: bat, eza, fd, ripgrep, fzf, zoxide, lazygit, gh, btop.
just check # Check dependencies and configs
just check-deps # Dependencies onlyjust update # Everything
just update-nvim # Neovim plugins only