Cross-platform dotfiles for a vim-centric, tiling WM, terminal-first workflow.
- One task = one workspace — ez-workspaces spins up a tmux session + git worktree per feature
- Browser + terminal per workspace — each workspace holds a browser and a terminal attached to its tmux session
- Statusbar = full visibility — agents-status shows every session's name and state (active, idle, waiting) at a glance
| Window Manager | Terminal | Status Bar | Key Remapper | |
|---|---|---|---|---|
| macOS | AeroSpace | Ghostty | SketchyBar | Karabiner-Elements |
| Linux | Hyprland | Ghostty | Waybar | — |
| Windows | Komorebi | Ghostty / WezTerm | Yasb | Kanata |
Several tools from the KoalaVim org are used across platforms:
- KoalaVim — Neovim distribution
- kv — KoalaVim CLI launcher
- zsh-conf — Zsh configuration framework
- agents-status — AI agent session status, notifications, and statusbar integration
- ez-workspaces — Session + worktree manager per task/feature
All keybindings are Linux/Hyprland-native — macOS achieves parity via a Karabiner translation layer. See KEYBINDINGS.md for the full binding reference.
dotfiles/ Config files (tmux, zsh, ghostty, mac/, windows/, ...)
install_scripts/ Platform install scripts (common/, mac/, windows/)
editors/ Editor configs (KoalaConfig for Neovim)
agents-status/ AI agent status tool (submodule)
scripts/ Utility scripts (symlinked to ~/dotfiles_scripts)
openspec/ Specs and change tracking
macREADME/ macOS-specific docs and post-install manual steps
winREADME/ Windows-specific docs and post-install manual steps
hypr-dots/ Hyprland config (submodule)
git clone --recurse-submodules git@github.com:ofirgall/dotfiles.git
cd dotfiles && make init && ./install-macosSee macREADME/MANUAL.md for post-install manual steps (permissions, one-time setup).
git clone --recurse-submodules git@github.com:ofirgall/dotfiles.git
cd dotfiles && make init && ./installOptional flags before running install:
touch ~/.remote_indicator— skip local (Linux-specific) config, run common onlytouch ~/.no_sudo_indicator— skip commands requiring sudo
git clone --recurse-submodules git@github.com:ofirgall/dotfiles.git
cd dotfiles && make init && ./install-windowsSee winREADME/MANUAL.md for post-install manual steps.
Create ~/.git_user with your identity:
[user]
name = "Your Name"
email = "you@example.com"For work repos, create ~/.git_work:
[user]
name = "Your Name"
email = "you@work.com"
[core]
sshCommand = ssh -i ~/.ssh/<work ssh key>Submodules are managed via the Makefile:
make init # Initialize submodules + configure git hooks
make update # Pull all submodules to latest (aborts if any is dirty)
make status # Show submodule states
make add REPO=<url> # Add a new submodule
make remove NAME=<path> # Remove a submodule
make foreach CMD='<cmd>' # Run a command in each submoduleOrchestrated by Dotbot — install configs are layered via YAML files (common.conf.yaml, macos.conf.yaml, windows.conf.yaml, install.conf.yaml).