Cross-platform configuration files for zsh, vim, tmux, and various editors.
macOS:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Zeko369/configs/master/bootstrap.sh)"Arch / CachyOS:
sudo pacman -S --noconfirm git && git clone https://github.com/Zeko369/configs.git ~/repos/configs && ~/repos/configs/install-arch.sh && ~/repos/configs/install.shDebian / Ubuntu:
sudo apt update && sudo apt install -y git curl && git clone https://github.com/Zeko369/configs.git ~/repos/configs && ~/repos/configs/install-debian.sh && ~/repos/configs/install.shconfigs/
├── zshrc # Base zsh config (cross-platform)
├── tmux.conf # Tmux config
├── ghostty_config # Ghostty terminal
├── Brewfile # macOS packages
├── valkey/
│ └── overrides.conf # Repo-wide Valkey overrides (macOS)
│
├── vim/
│ ├── vimrc # Modern vim config (no plugins needed)
│ ├── ideavimrc # JetBrains IDE vim bindings
│ └── legacy-vimrc # Old plugin-heavy config (reference)
│
├── vscode/ # Cursor/VSCode settings
│ ├── settings.json
│ └── keybindings.json
│
├── zed/ # Zed editor settings
│ ├── settings.json
│ └── keymap.json
│
├── shell/ # Extra shell utilities
│ ├── aliases # Additional aliases
│ ├── functions.sh # Package.json helpers
│ └── ls.sh # Smart ls fallback
│
├── local/ # GITIGNORED - machine-specific
│ ├── .zshrc # → ~/.zshrc
│ ├── .vimrc # → ~/.vimrc
│ ├── .tmux.conf # → ~/.tmux.conf
│ ├── ghostty.local # Loaded by ghostty_config
│ └── valkey.conf # Machine-specific Valkey overrides
│
└── local.example/ # Templates for local/
| Binding | Action |
|---|---|
jk |
Escape to normal mode |
B / E |
Start / End of line |
Cmd+T |
File finder |
Cmd+P |
Symbol search |
Space |
Leader key |
Edit files in local/ for machine-specific settings:
# local/.zshrc
source "$CONFIGS_DIR/zshrc"
export SOME_API_KEY="xxx"" local/.vimrc
source $HOME/repos/configs/vim/vimrc
colorscheme retroboxThere are two stages:
- A platform-specific package installer (
Brewfileon macOS,install-debian.shon Debian/Ubuntu,install-arch.shon Arch/CachyOS). ./install.shto wire up symlinks. This is cross-platform and idempotent.
./bootstrap.sh # Xcode CLT + Homebrew
brew bundle install --file=~/repos/configs/Brewfile
./install.sh
./macos-defaults.sh # dock/trackpad/keyboard + postgres bootstrapBoth Linux installers expose the same flags:
| Flag | What you get |
|---|---|
--cli-bare |
Server-grade shell only — zsh + prompt + history + tmux + nav, git basics |
--cli-dev |
Bare + language runtimes, cloud CLIs, media tools, Git extras |
--gui (default) |
Bare + dev + desktop apps |
./install-arch.sh # full install
./install-arch.sh --cli-bare # for SSH'd servers
./install-debian.sh # full install
./install-debian.sh --cli-dev # dev box, no desktop apps
./install.sh # symlinks (always run after the package step)Arch uses pacman + paru (auto-bootstrapped if missing, skipped entirely on --cli-bare). AUR package names are best-effort; comment out anything that fails and report.
Debian GUI coverage is intentionally minimal — most casks need vendor PPAs / .debs. On --cli-bare, atuin/starship/lazygit are not installed (they only arrive via the mise gap-filler in the dev tier), so bare Debian is a degraded shell experience compared to bare Arch.
After brew bundle (or the Linux equivalent) installs gh:
gh auth login # pick SSH — generates an Ed25519 key and uploads it for you
git -C ~/repos/configs remote set-url origin git@github.com:Zeko369/configs.git./install.sh generates Homebrew's etc/valkey.conf as a wrapper that includes:
- Homebrew's stock Valkey config
- Repo-wide overrides from
valkey/overrides.conf - Machine-specific overrides from
local/valkey.conf
If Valkey is already running, reload it after config changes:
brew services restart valkeyFor Cursor/VSCode, manually copy:
cp vscode/*.json ~/Library/Application\ Support/Cursor/User/