v5-redux: Clean dotfiles rewrite — zsh, git, tmux, ghostty, install.sh#2
Open
davidstosik wants to merge 5 commits intov4from
Open
v5-redux: Clean dotfiles rewrite — zsh, git, tmux, ghostty, install.sh#2davidstosik wants to merge 5 commits intov4from
davidstosik wants to merge 5 commits intov4from
Conversation
Reorganized zsh configuration from single flat file into: - zsh/zshrc — main config (history, prompt, completions, tool integrations) - zsh/aliases.zsh — consolidated aliases from v1-v4 (git, navigation, safety, ruby) - zsh/functions.zsh — shell functions (mkcd from v3, vpn-fix from v4) New in this version: - fzf integration (was in v3 but missing from v4) - Case-insensitive completion - Support for ~/.zshrc.local overrides - Better organized tool integrations (mise, fzf, op, gt) Preserved from v4: - Git-aware prompt with staged/unstaged indicators - Auto-attach to tmux session - EDITOR=nvim, emacs keybindings in shell - Shared history between panes Restored from older branches: - mkcd function (v3) - ls color aliases for macOS + Linux (v1) - Safety aliases: rm -i, cp -i, mv -i (v1) - Ruby/Rails aliases: be, r, rb (wip-20241205) - Navigation aliases: .., ..., .... (new) - Git shortcut aliases: gs, gd, gdc, gl, etc. (new)
Moved git configuration to git/ directory: - git/gitconfig — comprehensive config merging best of v1-v4 - git/gitignore — global gitignore with .claude, tags Preserved from v4 (modern git best practices): - histogram diff algorithm - zdiff3 merge conflict style - autoSquash, autoStash, updateRefs for rebase - fsmonitor + untrackedCache for performance - push.autoSetupRemote, fetch.prune - rerere enabled - Detailed color configuration for status and diff - column.ui = auto, help.autocorrect = prompt Restored from older branches: - lola alias (lol --all --graph) from v1-v3 - lolg alias (lol --graph) from wip-20241205 - addu alias (add -u) from v1-v3 - cp (cherry-pick), br (branch), up (pull) shortcuts from v1-v3 - copr alias for checking out PRs by number from v2-v3 - find-merge alias from v4 Consolidated aliases (kept best version of each): - pushf uses --force-with-lease (v4, safer than v-wip's --force) - lol uses --date=auto:human (v4, better than v1's --date=local) - recent for listing branches by recent commit Added: - Support for ~/.gitconfig.local (machine-specific overrides) - /tags in gitignore (from v3)
Moved tmux config to tmux/ directory: - tmux/tmux.conf — main config - tmux/tmux.mac.conf — macOS-specific (pbcopy integration) Preserved from v4: - Tokyo Night theme with datetime and battery plugins - vim-style pane navigation (hjkl) - Intuitive split bindings (\ and -) - tmux-resurrect for session persistence - tmux-sessionx for session switching (C-o) - Mouse support - Inactive pane dimming (Tokyo Night colors) - VI copy mode, emacs command prompt Cherry-picked from older branches: - renumber-windows (v1) — auto-renumber when closing windows - synchronize-panes toggle: prefix+y (v3) — useful for multi-server work Removed (intentionally): - tmux-sensible (v1-v3) — ported needed settings directly - tmux-pain-control (v1-v3) — replaced by explicit bindings - tmux-continuum (v1) — resurrect alone is sufficient
Moved Ghostty config from flat file to config/ghostty/config. Install.sh links to the correct platform-specific location: - macOS: ~/Library/Application Support/com.mitchellh.ghostty/config - Linux: ~/.config/ghostty/config No changes to the config itself — preserves v4 settings: - Tokyo Night theme (light/dark auto-switching) - Monaspace Argon font with all ligature features - 90% background opacity - Shift+Enter for newline
install.sh: - Idempotent symlink installer (safe to re-run) - Backs up existing files before overwriting - Auto-installs TPM (tmux plugin manager) if missing - Handles Ghostty config path differences (macOS vs Linux) - Clear post-install instructions - Colored output for readability README.md: - What's included (tools and their config locations) - Prerequisites - Install instructions - Post-install steps - Local override files explanation - Full directory structure - Neovim plugin list - Design decisions and rationale
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What is this?
A complete rewrite of the dotfiles, continuing v4's philosophy of radical simplification while bringing back the best from older branches (v1-v3, wip-20241205).
Structure
What was brought back from older branches
From v1-v3:
lola(log all),lolg(log graph),addu,br,cp,up,copr(checkout PR)lswith colors (macOS/Linux), safety aliases (rm -i,cp -i,mv -i), navigation (..,...)mkcd(mkdir + cd, from v3)renumber-windows(v1),synchronize-panestoggle (v3)From wip-20241205:
be,r,rb)cob,cim,cia,ciam,recent)From v4 (all preserved):
vpn-fixfunctionWhat was intentionally left out
Install
Then:
source ~/.zshrc)C-a Ito install pluginsCommits
Each commit is atomic and self-contained:
feat: zsh — structured config with aliases and functionsfeat: git — consolidate config from all branchesfeat: tmux — reorganize and cherry-pick improvementsfeat: ghostty — move to XDG-standard config locationfeat: add install.sh and README