Skip to content

HHousen/dotfiles

Repository files navigation

HHousen's dotfiles

HHousen's configuration files managed by chezmoi. Uses Zsh, Antidote for plugin management, powerlevel10k as the theme, Oh My Tmux for custom tmux configuration, Atuin for terminal history, mise for runtime and CLI tool management, and some tools from modern-unix.

Installation/Setup

Optionally, before following the installation steps below, create the file ~/.config/chezmoi/chezmoi.toml with any local template data you want to override:

[data]
    atuin_sync_address="https://api.atuin.sh"
    manage_firefox_user_chrome=true
    git_email="hayden@haydenhousen.com"
    git_name="Hayden Housen"

This file defines variables to be used by chezmoi's templates.

Explanation of the options:

  • atuin_sync_address: URL of your Atuin sync server. Defaults to https://api.atuin.sh.
  • manage_firefox_user_chrome: Set to true to symlink dot_firefoxUserChrome.css into ~/.mozilla/firefox/<profile>/chrome/userChrome.css (where <profile> is automatically determined and is probably your default firefox profile). This is carried out by the run_once_after_firefox_user_chrome.sh.tmpl script. Defaults to false. The options in dot_firefoxUserChrome.css hide the horizontal tabs and are intended to be used with the Tree Style Tab firefox extension.
  • git_email and git_name: Global git user email and name set in ~/.gitconfig. If omitted, chezmoi leaves the [user] section out of ~/.gitconfig.

One Command

Run sh -c "$(curl -fsLS git.io/chezmoi)" -- init --apply HHousen to get everything downloaded and installed or follow the individual steps below.

Individual Steps

  1. Install chezmoi by following chezmoi's install guide. You can learn more about chezmoi by reading their quick start guide or how-to guide.

  2. Initialize chezmoi using this repository: chezmoi init https://github.com/HHousen/dotfiles.git.

  3. Preview changes that chezmoi would make to your $HOME: chezmoi diff.

  4. Apply the changes: chezmoi apply. This will automatically install Antidote and packages required for certain plugins using the run_once_install-packages.sh.tmpl script. Upon the first launch, Antidote will initialize the plugins listed in dot_zsh_plugins.txt, which is applied to ~/.zsh_plugins.txt.

  5. Launch zsh: zsh.

Fonts

The font I use is the Meslo Nerd Font patched for Powerlevel10k.

Included tools

Notable behavior

  • Atuin manages command history, so zsh history persistence is disabled.
  • mise is activated in zsh and manages Node.js, Python, Claude Code, and Codex via dot_config/mise/config.toml.
  • Zsh plugins are specified in dot_zsh_plugins.txt, which chezmoi manages as ~/.zsh_plugins.txt.

Agent configs

Claude and Codex configs are split between work and personal homes:

  • ~/.claude-work and ~/.claude-personal
  • ~/.codex-work and ~/.codex-personal

The personal Claude settings file is managed as a chezmoi symlink to the work settings file.

Workflow

  1. Run chezmoi add <file> to add files to the chezmoi repo.
  2. Edit files in ~/.local/share/chezmoi or wherever the chezmoi repo is (chezmoi cd to find out).
  3. Git commit (and eventually push) the changes.
  4. Run chezmoi diff to preview the changes that will be made to your $HOME.
  5. Run chezmoi apply to apply the changes to your $HOME.

About

HHousen's dotfiles: Zsh, Chezmoi, Antigen, Oh My Zsh, Powerlevel10k, Oh My Tmux, GEF, and the ultimate vimrc

Topics

Resources

Stars

24 stars

Watchers

1 watching

Forks

Contributors