Skip to content

klucar/dotfiles

Repository files navigation

dotfiles

My dotfiles, managed with GNU Stow.

Quick Start

# Clone the repo (--recurse-submodules pulls in kitty-themes)
git clone --recurse-submodules https://github.com/klucar/dotfiles.git ~/dotfiles
cd ~/dotfiles

# Install system packages (Linux apt or macOS Homebrew)
./bootstrap.sh

# Symlink dotfiles into ~
./install.sh

What's Included

Package Files Description
bash .bashrc, .bash_profile, .bash_aliases, .bash_logout, .inputrc Shell config with cross-platform support
vim .vimrc Vim config with sane defaults
tmux .tmux.conf Tmux with C-a prefix, vim keys, mouse support
git .gitconfig, .gitignore_global Git config with aliases
starship .config/starship.toml Starship cross-shell prompt
kitty .config/kitty/kitty.conf, theme.conf, kitty-themes/ (submodule) Kitty terminal config; themes from dexpota/kitty-themes — swap by repointing theme.conf
gh .config/gh/config.yml GitHub CLI config. hosts.yml (OAuth tokens) is gitignored and stays local.

How It Works

Each top-level directory is a stow "package" that mirrors your home directory structure. Running stow bash from the dotfiles directory creates symlinks:

~/dotfiles/bash/.bashrc  -->  ~/.bashrc
~/dotfiles/vim/.vimrc    -->  ~/.vimrc

Managing

# Install all packages
./install.sh

# Remove all symlinks
./uninstall.sh

# Stow a single package
cd ~/dotfiles && stow bash

# Unstow a single package
cd ~/dotfiles && stow -D bash

Local Overrides

Machine-specific config goes in ~/.bashrc.local (sourced at the end of .bashrc). This file is not tracked by git.

Bootstrap Packages

bootstrap.sh installs these tools via apt (Linux) or Homebrew (macOS):

git, vim, tmux, curl, wget, htop, tree, jq, stow, unzip, zip, make, ripgrep, fzf, bat, uv, ruff, silversearcher-ag, build-essential, openssh, bash-completion, and more.

About

My dotfiles

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors