Personal dotfiles for macOS/Linux. Managed with GNU Stow into $HOME
via .stowrc
(most configs live under ~/.config
).
git clone https://github.com/thomascit/dotfiles.git ~/dotfiles
cd ~/dotfiles
# Minimal setup (shell + editor + multiplexer)
stow -v -R zsh starship tmux vim aliases exports
cp .zshrc "$HOME/"
# Or full setup
stow -v -R aerospace alacritty aliases bash bat eza exports fish fzf ghostty i3 kitty lazygit polybar starship tmux vim vimium yazi zsh
cp .bashrc .zshrc .vimrc "$HOME/"
- Git and GNU Stow
Category | Tools |
---|---|
Shell & Prompt | Bash, Zsh, Fish, Starship, Zoxide |
File Management | Eza, Bat, FZF, Yazi |
Development | Vim, Tmux, Lazygit |
Terminals | Alacritty, Ghostty, Kitty |
- macOS: Aerospace (tiling window manager)
- Linux: i3 (window manager), Polybar (status bar)
- Figlet, Lolcat, Fastfetch
# Core tools
brew install git stow starship zoxide eza bat fzf lazygit tmux vim yazi
# Terminal emulators
brew install --cask alacritty ghostty kitty
# Optional tools
brew install figlet lolcat fastfetch
# Ubuntu/Debian example - adjust package names for your distro
sudo apt install git stow zsh fish tmux vim
# Tools that may require external repos or manual installation
# starship: https://starship.rs/guide/#🚀-installation
# zoxide: https://github.com/ajeetdsouza/zoxide#installation
# eza: https://github.com/eza-community/eza#installation
# lazygit: https://github.com/jesseduffield/lazygit#installation
# yazi: https://github.com/sxyazi/yazi#installation
git clone https://github.com/thomascit/dotfiles.git ~/dotfiles
cd ~/dotfiles
# Stow packages into $HOME (symlinks land under ~/.config/*)
stow -v -R aerospace alacritty aliases bash bat eza exports fish fzf ghostty i3 kitty lazygit polybar starship tmux vim vimium yazi zsh
# Copy wrapper files that source configs from ~/.config
cp .bashrc .zshrc .vimrc "$HOME/"
Selective install example:
# Only Zsh + Vim + Tmux
stow -v -R zsh vim tmux
Update configs after making changes:
# Re-stow to refresh symlinks
stow -v -R <package>
# Unstow to remove a package
stow -D <package>
On some distributions (e.g., Debian/Ubuntu), the bat
executable is installed as batcat
. You can symlink it to bat
:
mkdir -p ~/.local/bin
ln -s /usr/bin/batcat ~/.local/bin/bat
Make sure ~/.local/bin
is on your PATH
.
Dracula is the preferred theme across these dotfiles. Many configs default to a Dracula theme or variant (e.g., Vim colorscheme, Fish theme, tmux theme, terminal themes). For more details, themes, and supported apps, see https://draculatheme.com.
Includes JetBrainsMono Nerd Font at fonts/
. Install it so terminals and prompts render glyphs:
- macOS: open the
.ttf
file to install. - Linux: copy to
~/.local/share/fonts
then runfc-cache -f -v
.
If TPM is not installed:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Then inside tmux:
- Press
<prefix> + I
(usuallyCtrl+Space
thenI
) to install/update plugins. - Press
<prefix> + r
(usuallyCtrl+Space
thenr
) to reload the config.
- Vim: uses
vim-plug
. Thevim/.config/vim/vimrc
auto-installs vim-plug and triggersPlugInstall
on first run. - Zsh: uses
zinit
(zdharma-continuum) for plugins.zsh/.config/zsh/zshrc
bootstraps zinit if missing.
Package | Description |
---|---|
aerospace |
Tiling window manager for macOS |
aliases |
Shared shell aliases for common commands |
alacritty |
Terminal emulator with Dracula theme |
bash /zsh /fish |
Shells with VI mode, Starship prompt, Zoxide |
bat |
Cat replacement with syntax highlighting |
exports |
Environment variables (XDG paths, etc.) |
eza |
Modern ls replacement with icons and Git status |
fzf |
Fuzzy finder for files and history |
ghostty |
Fast GPU-accelerated terminal |
i3 |
Tiling window manager (Linux) |
kitty |
GPU-based terminal emulator |
lazygit |
Terminal UI for Git |
polybar |
Status bar for i3 (Linux) |
starship |
Fast, customizable shell prompt |
tmux |
Terminal multiplexer with TPM plugins |
vim |
Editor with vim-plug and Dracula theme |
vimium |
Browser extension for Vim keybindings |
yazi |
Terminal file manager |
Stow conflicts? Use stow -D <package>
to unstow first, then re-stow with stow -R <package>
.
Fonts not working? Ensure JetBrainsMono Nerd Font is installed and your terminal is configured to use it.
TPM plugins not loading? In tmux, press Ctrl+Space
then I
to install plugins.
.stowrc
targets$HOME
and ignoresfonts
. Run stow from the repo root.- Wrapper dotfiles (
.bashrc
,.zshrc
,.vimrc
) live in the repo root and simply source configs from~/.config/*
. - macOS Homebrew: shell configs detect
/opt/homebrew
(Apple Silicon) or/usr/local
(Intel) and initialize whichever exists.