Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My dotfiles

Customization

This repo uses placeholder values for personal info (name, email, SSH hosts, etc.). See CUSTOMIZE.md for a full list of placeholders to replace.

Personal dotfiles managed with GNU Stow and automated with mise.

Quick Start (New Machine)

  1. Install mise:

    curl https://mise.run | sh
  2. Clone this repo (use HTTPS on a new machine — SSH isn't configured yet):

    git clone --recursive https://github.com/your-username/.dotfiles.git ~/.dotfiles
    cd ~/.dotfiles && mise trust
    cd ~/.dotfiles/tmux/.tmux && git checkout master && cd ~/.dotfiles
    git config submodule.recurse true
  3. Bootstrap everything:

    cd ~/.dotfiles && mise run init
  4. After SSH keys are set up, switch the remote to SSH:

    git -C ~/.dotfiles remote set-url origin git@github.com:your-username/.dotfiles.git

The setup:dotfiles task can also clone the repo for you if ~/.dotfiles doesn't exist yet. It will prompt you to set up SSH auth for GitHub first.

What Bootstrap Does

  1. Installs nala, stow, and runtimes (Rust, Go, Node) in parallel
  2. Sets up zsh + oh-my-zsh + powerlevel10k + plugins
  3. Installs all mise-managed tools
  4. Deploys dotfiles via stow (auto-detects laptop/desktop)
  5. Configures shell integrations (fzf, zoxide, bat, etc.)
  6. Post-setup: corepack, VeraCrypt

Manual Stow Usage

Deploy all dotfiles

mise run setup:dotfiles

Deploy individual packages

cd ~/.dotfiles
# Each package uses tag-default/ (or tag-<variant>/) subdirectories
stow -d bash -t ~ tag-default
stow -d git -t ~ tag-default
# ... etc. for each package

Device-specific configs (ssh)

stow -d ssh -t ~ tag-laptop    # or tag-desktop

Dry-run / Unstow

stow -nv -d bash -t ~ tag-default   # dry-run
stow -D -d zsh -t ~ tag-default     # unstow

Stow Packages

Package Contents
bash .bashrc, .bash_logout, .profile
mise .config/mise/ (config, conf.d, tasks)
bat .config/bat/themes/ (tokyonight)
fzf .fzf.bash, .fzf.zsh
git .gitconfig, .git-completion.bash, .git-prompt.sh, .git-template/
gnome_themes .themes/ (ChromeOS-dark, WhiteSur-dark)
gpg .gnupg/gpg-agent.conf
p10k .p10k.zsh (laptop/desktop variants)
ssh .ssh/config (laptop/desktop variants)
tmux .config/tmux/ (oh-my-tmux submodule)
yazi .config/yazi/ (config, keymap, plugins, theme)
zsh .zshrc, .zshenv
nvim .config/nvim/ (Neovim config — git submodule)
gh .config/gh/config.yml (GitHub CLI config)
gh-dash .config/gh-dash/config.yml (GitHub dashboard TUI)
claude .claude/ (Claude Code settings, keybindings, plugins, commands, agents, skills)

Mise Tasks

Task Description
init Entry point: install stow, deploy mise config, optionally run bootstrap
bootstrap Full machine setup
install:stow Install GNU Stow (apt/nala or from source if no sudo)
install:nala Install nala apt frontend
install:runtimes Install Rust, Go, Node via mise
install:veracrypt Install latest VeraCrypt
setup:zsh Full zsh environment setup
setup:custom-dotfiles Manage custom config packages (add/remove your own configs)
setup:dotfiles Deploy dotfiles via stow (resolves device tag)
setup:shell-tools Configure shell integrations
setup:p10k-configure Run p10k configuration wizard
setup:zsh-config Configure .zshrc with mise integration, plugins, and theme (run after setup:dotfiles)
setup:completions Set up shell completions directory
setup:nodes-tools Enable corepack
update:oh-my-tmux Update oh-my-tmux submodule to latest master

tmux

Based on oh-my-tmux (git submodule). Plugins are configured in tmux.conf.local but the plugins directory is not tracked. After cloning or pulling new plugin configs, install them inside a tmux session with <prefix> I.

To update the submodule to the latest upstream:

mise run update:oh-my-tmux

Custom Packages

You can extend this repo with your own config packages (e.g., alacritty, wezterm, hyprland) in a separate directory (~/.dotfiles-custom/). See CUSTOM-PACKAGES.md for full details.

mise run setup:custom-dotfiles   # Interactive add/remove
mise run setup:dotfiles           # Deploy everything

References

About

Personal dotfiles (GNU Stow + Mise)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages