{"id":21321694,"url":"https://github.com/zeizel/dotfiles","last_synced_at":"2026-04-17T15:02:39.315Z","repository":{"id":257862081,"uuid":"866141432","full_name":"ZeiZel/dotfiles","owner":"ZeiZel","description":"Linux dotfiles and configs based on homebrew","archived":false,"fork":false,"pushed_at":"2025-01-26T08:09:34.000Z","size":3885,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-15T22:44:07.403Z","etag":null,"topics":["alacritty","git","homebrew","kitty","lazygit","neovim","omzsh","yazi"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZeiZel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-01T18:05:06.000Z","updated_at":"2025-01-26T08:09:38.000Z","dependencies_parsed_at":"2024-12-15T19:23:57.282Z","dependency_job_id":"cb36e9c2-7cd4-4c25-b90f-a30a901195e9","html_url":"https://github.com/ZeiZel/dotfiles","commit_stats":null,"previous_names":["zeizel/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeiZel%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeiZel%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeiZel%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZeiZel%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZeiZel","download_url":"https://codeload.github.com/ZeiZel/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243801611,"owners_count":20350106,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alacritty","git","homebrew","kitty","lazygit","neovim","omzsh","yazi"],"created_at":"2024-11-21T20:08:37.859Z","updated_at":"2026-04-17T15:02:39.304Z","avatar_url":"https://github.com/ZeiZel.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotfiles\n\nPersonal dotfiles for macOS/Linux with Zsh, Tmux, Neovim, and modern CLI tools. Fully automated setup via Ansible.\n\n## Quick Install\n\n```bash\nsh -c \"$(curl -fsSL https://github.com/ZeiZel/dotfiles/raw/master/install.sh)\"\n```\n\n### AI-only install\n\nTo install only the AI tooling (Qdrant, MCP servers, Claude Code config) without the full dotfiles setup:\n\n```bash\nsh -c \"$(curl -fsSL https://github.com/ZeiZel/dotfiles/raw/master/setup-ai.sh)\"\n```\n\nRequires Ansible and Docker to be installed first (run `install.sh` if not).\n\n### Post-install\n\n```bash\n# Neovim: install plugins\nnvim  # Run :Lazy install and :MasonInstall\n\n# Tmux: install plugins (inside tmux)\n# Press: Ctrl+A then I\n\n# Broot: initialize\nbroot --install\n```\n\n---\n\n## Stack\n\n| Category        | Tool                                                      |\n| --------------- | --------------------------------------------------------- |\n| Terminal        | [Ghostty](https://ghostty.org/)                           |\n| Shell           | Zsh + [Zinit](https://github.com/zdharma-continuum/zinit) |\n| Prompt          | [Starship](https://starship.rs/)                          |\n| Multiplexer     | [Tmux](https://github.com/tmux/tmux) + TPM                |\n| Editor          | [Neovim](https://neovim.io/)                              |\n| File Manager    | [Yazi](https://yazi-rs.github.io/)                        |\n| History         | [Atuin](https://atuin.sh/)                                |\n| Tiling (macOS)  | [Aerospace](https://github.com/nikitabobko/AeroSpace)     |\n| Package Manager | [Homebrew](https://brew.sh/)                              |\n| Theme           | Catppuccin Mocha                                          |\n\n---\n\n## Directory Structure\n\n```\ndotfiles/\n├── zsh/                  # Zsh configuration\n│   ├── .zshrc           # Entry point\n│   ├── aliases.zsh      # 370+ aliases\n│   ├── functions.zsh    # Helper functions\n│   ├── plugins.zsh      # Zinit plugin config\n│   ├── env.zsh          # Environment variables\n│   ├── fzf.zsh          # FZF configuration\n│   ├── init.zsh         # Tool initialization\n│   ├── kbd.zsh          # Key bindings\n│   ├── options.zsh      # Shell options\n│   ├── theme.zsh        # Catppuccin colors\n│   └── tmux-auto.zsh    # Auto-start tmux\n├── tmux/                 # Tmux configuration\n│   ├── tmux.conf        # Main config\n│   ├── tmux.binds.conf  # Key bindings\n│   ├── tmux.options.conf\n│   ├── tmux.plugins.conf\n│   └── tmux.theme.conf  # Catppuccin theme\n├── nvim/                 # Neovim configuration\n├── starship/             # Starship prompt\n├── yazi/                 # Yazi file manager\n├── lazygit/              # Lazygit config\n├── ghostty/              # Ghostty terminal\n├── git/                  # Git configuration\n├── Brewfile              # Homebrew packages\n├── all.yml               # Ansible playbook\n└── tasks/                # Ansible tasks\n```\n\n---\n\n## Modern CLI Replacements\n\nThese modern tools replace classic Unix utilities with better UX:\n\n| Classic | Modern    | Description                                        |\n| ------- | --------- | -------------------------------------------------- |\n| `ls`    | `eza`     | File listing with icons, git status, tree view     |\n| `cat`   | `bat`     | Syntax highlighting, line numbers, git integration |\n| `find`  | `fd`      | Faster, respects .gitignore, simpler syntax        |\n| `grep`  | `ripgrep` | Ultra-fast search, respects .gitignore             |\n| `cd`    | `zoxide`  | Smart cd that learns your habits (`z project`)     |\n| `diff`  | `delta`   | Beautiful diffs with syntax highlighting           |\n| `du`    | `dust`    | Intuitive disk usage analyzer                      |\n| `df`    | `duf`     | Better disk free output                            |\n| `ps`    | `procs`   | Modern process viewer                              |\n| `top`   | `btop`    | Beautiful resource monitor                         |\n| `dig`   | `doggo`   | Modern DNS client                                  |\n| `watch` | `viddy`   | Modern watch with diff highlighting                |\n| `sed`   | `sd`      | Simpler, faster sed alternative                    |\n| `cut`   | `choose`  | Easier column selection                            |\n\n### New Tools\n\n| Tool         | Alias           | Description                    |\n| ------------ | --------------- | ------------------------------ |\n| `xh`         | `xget`, `xpost` | Fast HTTPie alternative (Rust) |\n| `jless`      | `jl`            | Interactive JSON viewer        |\n| `difftastic` | `dft`           | Structural diff (AST-aware)    |\n| `broot`      | `br`            | Interactive tree navigator     |\n| `navi`       | `nv`, `Ctrl+G`  | Interactive cheatsheets        |\n| `bandwhich`  | `bw`            | Network bandwidth monitor      |\n| `lnav`       | `logs`          | Log file navigator             |\n| `hyperfine`  | `bench`         | CLI benchmarking               |\n| `tokei`      | `loc`           | Code statistics                |\n| `glow`       | `mdp`           | Markdown preview               |\n| `gping`      | `ping`          | Ping with graph                |\n\n---\n\n## TUI Applications\n\n| App                                                       | Alias      | Description           |\n| --------------------------------------------------------- | ---------- | --------------------- |\n| [lazygit](https://github.com/jesseduffield/lazygit)       | `lg`       | Git TUI               |\n| [lazydocker](https://github.com/jesseduffield/lazydocker) | `ld`       | Docker TUI            |\n| [btop](https://github.com/aristocratos/btop)              | `bt`       | Resource monitor      |\n| [k9s](https://k9scli.io/)                                 | `k9`       | Kubernetes TUI        |\n| [yazi](https://yazi-rs.github.io/)                        | `ya`, `yy` | File manager          |\n| [dive](https://github.com/wagoodman/dive)                 | `div`      | Docker image analyzer |\n| [posting](https://github.com/darrenburns/posting)         | `post`     | HTTP client TUI       |\n| [harlequin](https://harlequin.sh/)                        | `hq`       | SQL TUI               |\n| [trippy](https://github.com/fujiapple852/trippy)          | `tr`       | Network diagnostic    |\n\n---\n\n## Aliases Reference\n\n### File Navigation (Eza)\n\n| Alias | Command                          |\n| ----- | -------------------------------- |\n| `l`   | Detailed list with icons and git |\n| `ls`  | Tree level 1 with icons          |\n| `ll`  | Long list all files              |\n| `la`  | All files                        |\n| `lt`  | Tree level 2                     |\n| `lta` | Tree level 3 with all files      |\n\n### Git\n\n| Alias   | Command                | Description             |\n| ------- | ---------------------- | ----------------------- |\n| `gst`   | `git status`           | Status                  |\n| `gc`    | `git commit -m`        | Commit with message     |\n| `gca`   | `git commit -a -m`     | Commit all with message |\n| `gp`    | `git push origin HEAD` | Push current branch     |\n| `gpu`   | `git pull origin`      | Pull from origin        |\n| `gco`   | `git checkout`         | Checkout                |\n| `gb`    | `git branch`           | List branches           |\n| `gba`   | `git branch -a`        | All branches            |\n| `gadd`  | `git add`              | Stage files             |\n| `ga`    | `git add -p`           | Interactive staging     |\n| `gdiff` | `git diff`             | Show diff               |\n| `glog`  | Pretty log graph       | Visual commit history   |\n| `grb`   | `git rebase`           | Rebase                  |\n| `grbi`  | `git rebase -i`        | Interactive rebase      |\n| `gsh`   | `git stash`            | Stash changes           |\n| `gshp`  | `git stash pop`        | Pop stash               |\n| `gshl`  | `git stash list`       | List stashes            |\n| `grs`   | `git restore --staged` | Unstage files           |\n| `gcp`   | `git cherry-pick`      | Cherry-pick             |\n\n### Forgit (Interactive Git with FZF)\n\n| Alias    | Description                 |\n| -------- | --------------------------- |\n| `ga`     | Interactive `git add`       |\n| `glo`    | Interactive `git log`       |\n| `gd`     | Interactive `git diff`      |\n| `gcb`    | Interactive checkout branch |\n| `gbd`    | Interactive delete branch   |\n| `gss`    | Interactive stash show      |\n| `gsp`    | Interactive stash push      |\n| `grb`    | Interactive rebase          |\n| `gbl`    | Interactive blame           |\n| `gclean` | Interactive clean           |\n| `gfu`    | Interactive fixup           |\n\n### Docker\n\n| Alias     | Command                   |\n| --------- | ------------------------- |\n| `dco`     | `docker compose`          |\n| `dcup`    | `docker compose up -d`    |\n| `dcdown`  | `docker compose down`     |\n| `dclogs`  | `docker compose logs -f`  |\n| `dps`     | `docker ps`               |\n| `dpa`     | `docker ps -a`            |\n| `dx`      | `docker exec -it`         |\n| `di`      | `docker images`           |\n| `drm`     | `docker rm`               |\n| `drmi`    | `docker rmi`              |\n| `dprune`  | `docker system prune -af` |\n| `dvprune` | `docker volume prune -f`  |\n| `dka`     | Kill all containers       |\n\n### Kubernetes\n\n| Alias      | Command                      |\n| ---------- | ---------------------------- |\n| `k`        | `kubectl`                    |\n| `ka`       | `kubectl apply -f`           |\n| `kg`       | `kubectl get`                |\n| `kga`      | `kubectl get all`            |\n| `kgp`      | `kubectl get pods`           |\n| `kgpw`     | `kubectl get pods -w`        |\n| `kgs`      | `kubectl get svc`            |\n| `kgd`      | `kubectl get deployments`    |\n| `kgn`      | `kubectl get nodes`          |\n| `kd`       | `kubectl describe`           |\n| `kdp`      | `kubectl describe pod`       |\n| `kl`       | `kubectl logs -f`            |\n| `klp`      | `kubectl logs -f --previous` |\n| `ke`       | `kubectl exec -it`           |\n| `kpf`      | `kubectl port-forward`       |\n| `kc`       | `kubectx`                    |\n| `kns`      | `kubens`                     |\n| `kwatch`   | Watch pods                   |\n| `krestart` | `kubectl rollout restart`    |\n| `ktop`     | `kubectl top pods`           |\n| `ktopn`    | `kubectl top nodes`          |\n\n### Helm\n\n| Alias | Command                  |\n| ----- | ------------------------ |\n| `h`   | `helm`                   |\n| `hl`  | `helm list`              |\n| `hla` | `helm list -A`           |\n| `hi`  | `helm install`           |\n| `hu`  | `helm upgrade`           |\n| `hui` | `helm upgrade --install` |\n| `hd`  | `helm delete`            |\n| `hs`  | `helm search repo`       |\n| `hru` | `helm repo update`       |\n\n### Terraform\n\n| Alias  | Command                         |\n| ------ | ------------------------------- |\n| `tf`   | `terraform`                     |\n| `tfi`  | `terraform init`                |\n| `tfp`  | `terraform plan`                |\n| `tfa`  | `terraform apply`               |\n| `tfaa` | `terraform apply -auto-approve` |\n| `tfd`  | `terraform destroy`             |\n| `tfs`  | `terraform state`               |\n| `tfsl` | `terraform state list`          |\n| `tfo`  | `terraform output`              |\n| `tfv`  | `terraform validate`            |\n| `tff`  | `terraform fmt -recursive`      |\n| `tfw`  | `terraform workspace`           |\n\n### Ansible\n\n| Alias | Command            |\n| ----- | ------------------ |\n| `ap`  | `ansible-playbook` |\n| `ag`  | `ansible-galaxy`   |\n| `av`  | `ansible-vault`    |\n| `al`  | `ansible-lint`     |\n\n### Node.js / npm / pnpm\n\n| Alias | Command          |\n| ----- | ---------------- |\n| `ni`  | `npm install`    |\n| `nid` | `npm install -D` |\n| `nig` | `npm install -g` |\n| `nr`  | `npm run`        |\n| `nrs` | `npm run start`  |\n| `nrb` | `npm run build`  |\n| `nrt` | `npm run test`   |\n| `nrd` | `npm run dev`    |\n| `pi`  | `pnpm install`   |\n| `pa`  | `pnpm add`       |\n| `pad` | `pnpm add -D`    |\n| `pr`  | `pnpm run`       |\n| `prd` | `pnpm run dev`   |\n| `px`  | `pnpm dlx`       |\n\n### Nx / Angular\n\n| Alias | Command       |\n| ----- | ------------- |\n| `nxg` | `nx generate` |\n| `nxb` | `nx build`    |\n| `nxs` | `nx serve`    |\n| `nxt` | `nx test`     |\n| `nxl` | `nx lint`     |\n| `nxa` | `nx affected` |\n| `ngg` | `ng generate` |\n| `ngb` | `ng build`    |\n| `ngs` | `ng serve`    |\n\n### Tmux\n\n| Alias  | Command                |\n| ------ | ---------------------- |\n| `ta`   | `tmux attach -t`       |\n| `ts`   | `tmux new-session -s`  |\n| `tl`   | `tmux list-sessions`   |\n| `tks`  | `tmux kill-session`    |\n| `tkss` | `tmux kill-session -t` |\n| `tksv` | `tmux kill-server`     |\n\n### System Utilities\n\n| Alias     | Command             | Description              |\n| --------- | ------------------- | ------------------------ |\n| `cat`     | `bat`               | With syntax highlighting |\n| `df`      | `duf`               | Disk free                |\n| `du`      | `dust`              | Disk usage               |\n| `duh`     | `dust -d 1`         | Current dir usage        |\n| `ps`      | `procs`             | Process list             |\n| `pst`     | `procs --tree`      | Process tree             |\n| `psa`     | `procs --sortd cpu` | Sort by CPU              |\n| `ping`    | `gping`             | With graph               |\n| `diff`    | `delta`             | Better diff              |\n| `ports`   | -                   | Show listening ports     |\n| `myip`    | -                   | External IP              |\n| `localip` | -                   | Local IP                 |\n| `path`    | -                   | Show PATH entries        |\n| `now`     | -                   | Current datetime         |\n| `weather` | -                   | Quick weather            |\n| `wttr`    | -                   | Full weather             |\n\n### HTTP / API\n\n| Alias   | Command           |\n| ------- | ----------------- |\n| `xget`  | `xh GET`          |\n| `xpost` | `xh POST`         |\n| `xput`  | `xh PUT`          |\n| `xdel`  | `xh DELETE`       |\n| `http`  | HTTPie with style |\n| `https` | HTTPie HTTPS      |\n\n### DNS (doggo)\n\n| Alias     | Query Type  |\n| --------- | ----------- |\n| `dns`     | Default     |\n| `dnsa`    | A record    |\n| `dnsaaaa` | AAAA record |\n| `dnsmx`   | MX record   |\n| `dnstxt`  | TXT record  |\n| `dnsns`   | NS record   |\n\n### Directory Navigation\n\n| Alias   | Action             |\n| ------- | ------------------ |\n| `..`    | Up 1 level         |\n| `...`   | Up 2 levels        |\n| `....`  | Up 3 levels        |\n| `.....` | Up 4 levels        |\n| `~`     | Go home            |\n| `-`     | Previous directory |\n\n### Quick Edits\n\n| Alias      | Opens              |\n| ---------- | ------------------ |\n| `zshrc`    | ~/.zshrc           |\n| `nvimrc`   | Neovim config      |\n| `tmuxrc`   | Tmux config        |\n| `dotfiles` | Dotfiles directory |\n\n### Claude Code\n\n| Alias | Command             |\n| ----- | ------------------- |\n| `cc`  | `claude`            |\n| `ccc` | `claude --continue` |\n| `ccr` | `claude --resume`   |\n\n### Safety\n\n| Alias   | Effect                   |\n| ------- | ------------------------ |\n| `rm`    | Prompts before delete    |\n| `cp`    | Prompts before overwrite |\n| `mv`    | Prompts before overwrite |\n| `mkdir` | Creates parents, verbose |\n\n---\n\n## Functions\n\n| Function  | Description                 | Usage                              |\n| --------- | --------------------------- | ---------------------------------- |\n| `yy`      | Yazi with cd integration    | `yy` (exit yazi into selected dir) |\n| `fcd`     | FZF directory navigator     | `fcd`                              |\n| `fv`      | FZF file opener (nvim)      | `fv`                               |\n| `tm`      | FZF tmux session launcher   | `tm` or `tm session-name`          |\n| `mkcd`    | Create and enter directory  | `mkcd new-project`                 |\n| `extract` | Universal archive extractor | `extract file.tar.gz`              |\n| `nvims`   | Neovim config switcher      | `nvims`                            |\n| `htt`     | HTTPyac with pretty output  | `htt request.http`                 |\n\n---\n\n## Tmux Configuration\n\n### Prefix: `Ctrl+A`\n\n### Session Management\n\n| Key | Action                         |\n| --- | ------------------------------ |\n| `s` | Choose session (tree view)     |\n| `C` | New session                    |\n| `X` | Kill session (with confirm)    |\n| `o` | SessionX (FZF session manager) |\n\n### Pane Management\n\n| Key            | Action                             |\n| -------------- | ---------------------------------- |\n| `\\|` or `\\`    | Split horizontal                   |\n| `-` or `_`     | Split vertical                     |\n| `h/j/k/l`      | Navigate panes (vim-style)         |\n| `H/J/K/L`      | Resize panes (5 units)             |\n| `Alt+h/j/k/l`  | Resize panes (1 unit)              |\n| `m` or `z`     | Zoom pane                          |\n| `Ctrl+h/j/k/l` | Navigate (with vim-tmux-navigator) |\n\n### Window Management\n\n| Key      | Action            |\n| -------- | ----------------- |\n| `c`      | New window        |\n| `Ctrl+H` | Previous window   |\n| `Ctrl+L` | Next window       |\n| `Tab`    | Last window       |\n| `\u003c`      | Swap window left  |\n| `\u003e`      | Swap window right |\n| `0-9`    | Select window     |\n\n### Popup Windows\n\n| Key | Opens              |\n| --- | ------------------ |\n| `g` | Lazygit            |\n| `b` | Btop               |\n| `y` | Yazi               |\n| `f` | FZF file finder    |\n| `n` | Notes (~/notes.md) |\n\n### Plugins\n\n| Key | Plugin                         |\n| --- | ------------------------------ |\n| `F` | tmux-fzf                       |\n| `T` | tmux-thumbs (copy hints)       |\n| `u` | tmux-fzf-url (open URLs)       |\n| `e` | Extrakto (search pane content) |\n\n### Copy Mode (vi-style)\n\n| Key      | Action              |\n| -------- | ------------------- |\n| `Enter`  | Enter copy mode     |\n| `v`      | Begin selection     |\n| `Ctrl+v` | Rectangle selection |\n| `y`      | Copy and exit       |\n| `Escape` | Cancel              |\n\n### Layouts\n\n| Key     | Layout                      |\n| ------- | --------------------------- |\n| `Alt+1` | Main horizontal             |\n| `Alt+2` | Main vertical               |\n| `Alt+3` | Tiled                       |\n| `Alt+4` | Even horizontal             |\n| `Alt+5` | Even vertical               |\n| `D`     | Dev layout (70/30 split)    |\n| `I`     | IDE layout (main + 2 right) |\n\n### Other\n\n| Key      | Action                   |\n| -------- | ------------------------ |\n| `r`      | Reload config            |\n| `S`      | Sync panes (type in all) |\n| `Ctrl+K` | Clear screen + history   |\n| `t`      | Toggle status bar        |\n| `I`      | Install plugins (TPM)    |\n| `U`      | Update plugins (TPM)     |\n\n### Session Persistence\n\nSessions are automatically saved every 5 minutes and restored on tmux start.\n\n- Manual save: `prefix + Ctrl+s`\n- Manual restore: `prefix + Ctrl+r`\n\n---\n\n## Zsh Plugins\n\nManaged by [Zinit](https://github.com/zdharma-continuum/zinit) with turbo mode (async loading):\n\n| Plugin                                                                                    | Description                |\n| ----------------------------------------------------------------------------------------- | -------------------------- |\n| [fast-syntax-highlighting](https://github.com/zdharma-continuum/fast-syntax-highlighting) | Syntax highlighting        |\n| [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions)                   | History-based suggestions  |\n| [zsh-completions](https://github.com/zsh-users/zsh-completions)                           | Additional completions     |\n| [fzf-tab](https://github.com/Aloxaf/fzf-tab)                                              | FZF-powered tab completion |\n| [zsh-autopair](https://github.com/hlissner/zsh-autopair)                                  | Auto-pair brackets         |\n| [zsh-sudo](https://github.com/hcgraf/zsh-sudo)                                            | Double-ESC for sudo        |\n| [zsh-you-should-use](https://github.com/MichaelAquilina/zsh-you-should-use)               | Alias reminders            |\n| [forgit](https://github.com/wfxr/forgit)                                                  | FZF + Git integration      |\n| [zsh-history-substring-search](https://github.com/zsh-users/zsh-history-substring-search) | History search             |\n\n### OMZ Snippets\n\n- git, extract, colored-man-pages, safe-paste\n- docker, docker-compose, kubectl, terraform\n\n---\n\n## Key Bindings (Zsh)\n\n| Key               | Action                     |\n| ----------------- | -------------------------- |\n| `jj`              | Exit insert mode (vi-mode) |\n| `Ctrl+R`          | History search (Atuin)     |\n| `Ctrl+G`          | Navi cheatsheets           |\n| `Ctrl+T`          | FZF file search            |\n| `Alt+C`           | FZF cd                     |\n| `Ctrl+A`          | Beginning of line          |\n| `Ctrl+E`          | End of line                |\n| `Ctrl+K`          | Kill to end of line        |\n| `Ctrl+U`          | Kill whole line            |\n| `Ctrl+W`          | Kill word backward         |\n| `Ctrl+Left/Right` | Word navigation            |\n\n---\n\n## Features\n\n### Auto-start Tmux\n\nTerminal automatically attaches to existing tmux session or creates new one.\n\n**Disable temporarily:**\n\n```bash\nDISABLE_TMUX_AUTOSTART=1 zsh\n```\n\n**Disable permanently** (add to `~/.zshrc.local`):\n\n```bash\nexport DISABLE_TMUX_AUTOSTART=1\n```\n\nSkips auto-start for:\n\n- SSH sessions\n- VSCode integrated terminal\n- JetBrains IDEs\n- Non-interactive shells\n\n### Smart Directory Navigation\n\n- `z \u003cpartial-path\u003e` - Jump to frequently used directories (zoxide)\n- `fcd` - Interactive directory search with FZF\n- `br` - Broot tree navigator\n\n### History\n\n- 100,000 entries\n- Shared across sessions\n- Deduplicated\n- Atuin for enhanced search (`Ctrl+R`)\n\n### Lazy Loading\n\nNVM and completions are lazy-loaded for fast shell startup (~100ms).\n\n---\n\n## Installed Packages\n\nSee [Brewfile](./Brewfile) for full list. Categories:\n\n- **Core**: bat, eza, fd, fzf, ripgrep, zoxide, tmux, neovim\n- **Modern CLI**: dust, duf, procs, bottom, delta, xh, jless, broot, navi\n- **DevOps**: kubectl, helm, k9s, terraform, ansible, docker\n- **Git**: lazygit, gh, glab, delta\n- **Languages**: go, python, node (via nvm)\n- **Network**: trippy, mtr, nmap, doggo, bandwhich\n\n---\n\n## Customization\n\n### Local overrides\n\nCreate `~/.zshrc.local` for machine-specific settings:\n\n```bash\n# Example ~/.zshrc.local\nexport GITHUB_TOKEN=\"...\"\nexport DISABLE_TMUX_AUTOSTART=1\nalias myalias='...'\n```\n\n### Theme\n\nUses **Catppuccin Mocha** everywhere:\n\n- Zsh syntax highlighting\n- FZF\n- Tmux\n- Bat\n- Delta\n- Lazygit\n\n---\n\n## Troubleshooting\n\n### Tmux plugins not working\n\n```bash\n# Inside tmux, press:\n# Ctrl+A then I (capital i)\n\n# Or manually:\n~/.config/tmux/plugins/tpm/bin/install_plugins\n```\n\n### Slow shell startup\n\nCheck startup time:\n\n```bash\ntime zsh -i -c exit\n```\n\nShould be under 200ms. If slow, check:\n\n- NVM auto-loading (should be lazy)\n- Broken completions\n\n### Zinit not loading\n\n```bash\nrm -rf ~/.local/share/zinit\nexec zsh\n```\n\n---\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeizel%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeizel%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeizel%2Fdotfiles/lists"}