Skip to content
 
 

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Dotfiles

Automated setup script for a Fish development environment following XDG Base Directory convention. All configs live under ~/.config/.

Features

  • Fish Shell — Modern, user-friendly shell with excellent auto-completion
  • Fisher — Fish plugin manager
  • Starship Prompt — Fast, customizable cross-shell prompt
  • Git — User settings, LFS, commit template, aliases (sync, graph)
  • fnm — Fast Node Manager
  • uv — Python package manager
  • Go — Go programming language (latest tarball)
  • opencode — AI coding assistant (with Context7 MCP)
  • bat — Syntax-highlighting cat replacement
  • eza — Modern ls replacement with icons and git integration
  • Vim (optional) — Optimized settings with habamax colorscheme
  • Tmux (optional) — Terminal multiplexer with TPM and solarized theme
  • fcitx5 (optional) — Input method (Boshiamy, Mozc, shortcuts)
  • btop (optional) — System monitor preferences

Installation

git clone https://github.com/wade00754/dotfiles.git
cd dotfiles
./setup.sh

For non-interactive mode (installs all optional tools):

./setup.sh -y

Required Tools

These are always installed without prompting:

Tool Description
Fish Shell
Fisher Fish plugin manager
Starship Prompt
Git Version control
fnm Node version manager
uv Python package manager
Go Programming language
opencode AI coding assistant
bat Syntax-highlighting cat
eza Modern ls replacement

Optional Tools

After installing the required tools, you will be prompted to select optional tools:

# Tool Description
1 Vim Text editor
2 Tmux Terminal multiplexer (with TPM)
3 fcitx5 Input method framework
4 btop System monitor

Enter numbers separated by commas (e.g., 1,2) or all to install everything.

Configuration Files

All configs are stored under .config/ and deployed to ~/.config/:

Repo Path Deployed To Notes
.config/fish/config.fish ~/.config/fish/config.fish Fish shell settings (starship, abbr, bat/eza)
.config/fish/fish_plugins ~/.config/fish/fish_plugins Fisher plugin list
.config/fish/conf.d/fnm.fish ~/.config/fish/conf.d/fnm.fish fnm PATH and env
.config/fish/conf.d/uv.env.fish ~/.config/fish/conf.d/uv.env.fish uv PATH and env
.config/fish/conf.d/go.fish ~/.config/fish/conf.d/go.fish Go PATH
.config/fish/conf.d/opencode.fish ~/.config/fish/conf.d/opencode.fish opencode PATH
.config/git/config ~/.config/git/config Git settings & aliases
.config/git/commit-template ~/.config/git/commit-template Conventional commit template
.config/opencode/opencode.json ~/.config/opencode/opencode.json opencode settings (API key prompted during setup)
.config/starship.toml ~/.config/starship.toml Starship prompt
.config/vim/vimrc ~/.config/vim/vimrc Vim 9.1+ XDG native (optional)
.config/tmux/tmux.conf ~/.config/tmux/tmux.conf tmux 3.1+ XDG native (optional)
.config/fcitx5/ ~/.config/fcitx5/ Input method config, profile, confs (optional)
.config/btop/btop.conf ~/.config/btop/btop.conf System monitor (optional)

Existing XDG config directories are automatically backed up to ~/.config-backup-<timestamp>/<subdir>/ before being overwritten, so you can restore previous settings if needed.

Legacy dotfiles (~/.gitconfig, ~/.vimrc, ~/.tmux.conf) are also automatically backed up with a .bak suffix if found, since they override the XDG paths.

Fish Abbreviations

The following abbreviations are set up in config.fish:

Abbreviation Expands to Description
cat batcat / bat Syntax-highlighting cat (auto-detects binary name)
ls eza --icons Colorful file listing with icons
ll eza -l --icons --git Long listing with git info
la eza -a --icons --git Show all files with git info
lla eza -la --icons --git Long listing of all files with git info
lt eza --tree --icons Tree view with icons

Git Aliases

Alias Command Description
git sync !git fetch -p origin main:main && git rebase main Sync with origin/main
git graph !git log --graph --oneline --decorate --all Visual branch history

Supported Operating Systems

  • Ubuntu / Debian / Pop!_OS
  • Fedora
  • CentOS / RHEL
  • Arch / Manjaro
  • Alpine Linux
  • macOS

About

Automated setup script for a fish development environment

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages