Skip to content

Personal dotfiles managed with a bare Git repo. Includes zsh config, plugins (autosuggestions, syntax highlighting), and a bootstrap script for Debian-based systems.

License

Notifications You must be signed in to change notification settings

haydenk/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

License: Personal dotfiles — all rights reserved. Forking and reuse are not permitted. See LICENSE.

Personal dotfiles managed with a bare Git repository, based on the Atlassian method.

Branches

Each branch is maintained independently with its own complete set of dotfiles — they are not derived from one another.

Branch Purpose
master General-purpose — devcontainers, Codespaces, Debian/Ubuntu environments
macos macOS-specific configuration and tooling

What's included

  • zsh — Oh My Zsh with a curated plugin list, custom themes, and sane history options
  • zsh pluginszsh-autosuggestions, zsh-syntax-highlighting, custom umask plugin
  • zsh themesdevcontainer, codespace, and example themes under .config/zsh/themes/
  • fish — Shell config, aliases, prompt, and theme under .config/fish/
  • git — Rich git config with aliases, color, LFS, URL shorthands, and sane defaults
  • eza — Modern ls replacement with aliases (l, ll, la, tree)
  • mise — Runtime version manager activated in zsh
  • vim — Basic .vimrc
  • misc.dircolors, .colors, .gemrc, .my.cnf

Installation

The preferred installation method is the Atlassian bare Git repo method, documented in detail in INSTALL.md.

GitHub Devcontainers / Codespaces note: GitHub's dotfiles support does not invoke the Atlassian method directly — it looks for a runnable script (setup.sh, install.sh, etc.) and executes it. To bridge this, setup.sh exists solely as a GitHub-compatible entry point; it installs dependencies and then performs the Atlassian bare-clone method internally. If you are not using GitHub Devcontainers, follow the manual steps in INSTALL.md instead.

GitHub Devcontainers / Codespaces (automated)

Point GitHub to this repository in your dotfiles settings. GitHub will automatically run setup.sh when a new devcontainer or Codespace is created.

Bootstrap manually (Debian-based)

sh -c "$(curl -fsSL https://raw.githubusercontent.com/haydenk/dotfiles/master/setup.sh)"

The setup.sh script will:

  1. Add the eza apt repository and install eza, git-flow, pwgen, and vim
  2. Clone this repo as a bare Git repository into ~/.cfg (Atlassian method)
  3. Check out dotfiles into $HOME, backing up any conflicts to ~/.config-backup/
  4. Install zsh-autosuggestions and zsh-syntax-highlighting plugins

Manual install

# Clone as a bare repo — choose your branch
git clone --bare git@github.com:haydenk/dotfiles.git $HOME/.cfg

# Set up the config alias
alias config="/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME"

# Check out files for your environment (back up any conflicting files first)
# For devcontainers / Linux:
config checkout master
# For macOS:
# config checkout macos

# Hide untracked files
config config --local status.showUntrackedFiles no

If checkout fails due to existing files, back them up first:

mkdir -p ~/.config-backup
config checkout 2>&1 | grep -E "^\s+\." | awk '{print $1}' | xargs -I{} mv {} ~/.config-backup/{}
config checkout master

Day-to-day usage

Use config in place of git to manage dotfiles:

config status
config add ~/.zshrc
config commit -m "Update zshrc"
config push

See also

About

Personal dotfiles managed with a bare Git repo. Includes zsh config, plugins (autosuggestions, syntax highlighting), and a bootstrap script for Debian-based systems.

Topics

Resources

License

Stars

Watchers

Forks

Contributors