██████╗ ██████╗ ████████╗███████╗██╗██╗ ███████╗███████╗ ██╔══██╗██╔═══██╗╚══██╔══╝██╔════╝██║██║ ██╔════╝██╔════╝ ██║ ██║██║ ██║ ██║ █████╗ ██║██║ █████╗ ███████╗ ██║ ██║██║ ██║ ██║ ██╔══╝ ██║██║ ██╔══╝ ╚════██║ ██████╔╝╚██████╔╝ ██║ ██║ ██║███████╗███████╗███████║ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
Meticulously crafted dotfiles for macOS & Linux developers who appreciate clean configs, powerful tools, and the Dracula aesthetic.
Managed with GNU Stow • XDG Base Directory Compliant • Modular & Portable
git clone https://github.com/thomascit/dotfiles.git ~/dotfiles
cd ~/dotfiles
# Minimal setup (shell + editor + multiplexer)
stow -v -R zsh starship tmux vim
cp .zshrc "$HOME/"
# Or full setup
stow -v -R aerospace alacritty bash bat btop eza fish ghostty hypr i3 kitty lazygit nvim polybar starship tmux vim vimium waybar 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
Option 1: Using Brewfile (Recommended)
# Stow the Brewfile first
cd ~/dotfiles
stow -v -R homebrew
# Install all packages
brew bundle --file ~/BrewfileOption 2: Manual Installation
# 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#installationgit clone https://github.com/thomascit/dotfiles.git ~/dotfiles
cd ~/dotfiles
# Stow packages into $HOME (symlinks land under ~/.config/*)
stow -v -R aerospace alacritty bash bat btop eza fish ghostty homebrew hypr i3 kitty lazygit nvim polybar starship tmux vim vimium waybar 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 tmuxUpdate 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/batMake 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
.ttffile to install. - Linux: copy to
~/.local/share/fontsthen runfc-cache -f -v.
TPM (Tmux Plugin Manager) must be installed manually:
git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpmThen start tmux and install plugins:
- Launch tmux:
tmux - Press
<prefix> + I(default:Ctrl+SpacethenI) to install plugins - Press
<prefix> + r(default:Ctrl+Spacethenr) to reload config
Note: Plugins are managed by TPM and are not tracked in this repository.
- Vim: uses
vim-plug. Thevim/.config/vim/vimrcauto-installs vim-plug and triggersPlugInstallon first run. - Zsh: uses
zinit(zdharma-continuum) for plugins.zsh/.config/zsh/zshrcbootstraps zinit if missing.
| Package | Description |
|---|---|
aerospace |
Tiling window manager for macOS |
alacritty |
Terminal emulator with Dracula theme |
bash/zsh/fish |
Shells with VI mode, Starship prompt, Zoxide, shared aliases |
bat |
Cat replacement with syntax highlighting |
btop |
Resource monitor with customizable interface |
eza |
Modern ls replacement with icons and Git status |
ghostty |
Fast GPU-accelerated terminal |
homebrew |
Brewfile for automated package installation (macOS) |
hypr |
Hyprland compositor configuration (Linux) |
i3 |
Tiling window manager (Linux) |
kitty |
GPU-based terminal emulator |
lazygit |
Terminal UI for Git |
nvim |
Neovim with LazyVim configuration |
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 |
waybar |
Wayland status bar (Linux) |
yazi |
Terminal file manager with plugins |
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.
.stowrctargets$HOMEand 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.