Skip to content

lleger/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

This repo is the current baseline for my local shell and terminal environment. It is intentionally small and centered around an XDG-style Zsh layout, Neovim, Zellij, Atuin, and zsh-patina.

Layout

Home-directory shims:

  • ~/.gitconfig
  • ~/.gitignore
  • ~/.hushlogin
  • ~/.psqlrc
  • ~/.zshenv

XDG-managed config:

  • ~/.config/atuin/config.toml
  • ~/.config/nvim
  • ~/.config/psql/psqlrc
  • ~/.config/zellij/config.kdl
  • ~/.config/zsh/.zshenv
  • ~/.config/zsh/.zshrc
  • ~/.config/zsh/*.zsh
  • ~/.config/zsh-patina/config.toml

Brew Bundle

The Brewfile contains the core CLI tools this setup expects:

  • atuin
  • bat
  • eza
  • fzf
  • gh
  • git
  • jq
  • mise
  • neovim
  • nushell
  • ripgrep
  • trash
  • zellij
  • zsh-patina

Install them with:

brew bundle

Validation

Run the repo checks with:

mise run check

Run just the wt tests with:

mise run test

This validates:

  • install.sh
  • bin/wt
  • the managed zsh files
  • the managed Zellij config and layouts

Install

Apply the managed files with:

./install.sh

Then restart the shell:

exec zsh

On a fresh machine, open Neovim once after install so LazyVim can install the managed plugins:

nvim

Git

The managed Git config includes a few workflow aliases:

  • git st
  • git up
  • git sw
  • git main
  • git lg
  • git last
  • git undo

git sw uses fzf to switch local branches sorted by recent activity, with a preview of recent commits.

Worktrees

wt is a small local Git worktree helper installed to ~/.local/bin/wt.

Current commands:

  • wt list
  • wt cd <name>
  • wt new <name>
  • wt pick
  • wt main
  • wt rm <name>
  • wt rm --path <path>

Interactive zsh wrappers:

  • w picks a worktree and cds into it
  • wn <name> creates a worktree and cds into it
  • wm jumps back to the main checkout

In interactive zsh, wt cd <name> jumps to an existing worktree, wt new <name> drops you into the new worktree, and wt rm <name> hops back to the main checkout first if you remove the worktree you are currently inside.

Managed worktrees are created relative to the current repo's parent directory:

  • ~/code/cli -> ~/code/wt/cli/<branch>
  • ~/hiive/server -> ~/hiive/wt/server/<branch>

Existing worktrees created by other tools still show up in wt list and wt pick.

Completion menus for wt cd, wt path, and wt rm also include the latest commit context for each branch.

Neovim

The managed Neovim config is the official LazyVim starter layout under ~/.config/nvim.

This means:

  • LazyVim provides the core editing experience and plugin defaults
  • lazy.nvim is still the underlying plugin manager
  • the repo keeps a committed lazy-lock.json for plugin version stability

This first pass is intentionally close to the starter:

  • no custom plugin overrides yet
  • no extra language packs yet
  • no local tweaks beyond the starter structure

After the first install, a useful sanity check is:

:LazyHealth

Source:

Zellij

The default Zellij config includes:

  • default_shell "/bin/zsh"
  • the built-in tokyo-night theme
  • session serialization
  • Neovim as the scrollback editor

The managed layout ai.kdl gives you one large main pane plus a right-side lazygit pane.

Useful shell aliases:

  • zj attaches or creates a Zellij session
  • za launches Zellij with the ai layout

Notes

  • ~/.zshenv sets ZDOTDIR=$XDG_CONFIG_HOME/zsh, so the real interactive shell config lives under ~/.config/zsh.
  • PSQLRC is set to ~/.config/psql/psqlrc, while ~/.psqlrc remains as a compatibility shim.
  • The shell config assumes some optional tools may be absent and guards those integrations accordingly.
  • Some machine-specific integrations are intentionally not managed here.
  • Review dotfiles/gitconfig before applying it on a different machine or account, because it includes signing and credential configuration.

About

Dotfiles, configuration, and documentation on setting up my primary dev machine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors