Cross-platform configuration files for macOS and Linux. Built around a consistent philosophy: vi-keybindings everywhere, tiling window management, and a terminal-first workflow.
| Tool | macOS | Linux | Docs |
|---|---|---|---|
| Neovim | config | config | docs/neovim.md |
| Tmux | config | config | docs/tmux.md |
| Zsh | config | config | docs/shell.md |
| Ghostty (primary) | config | - | docs/terminal.md |
| Kitty (alternative) | config | config | docs/terminal.md |
| AeroSpace (tiling WM) | config | - | docs/window-management.md |
| i3 (tiling WM) | - | config | docs/window-management.md |
| Rofi (launcher) | - | config | docs/window-management.md |
Full keybinding reference: docs/keymaps.md
- Vi-mode everywhere -- zsh, tmux, window managers, and Neovim all use h/j/k/l navigation
- Tiling window management -- i3 on Linux, AeroSpace on macOS, with matching keybindings
- Catppuccin Mocha in tmux, with a persistent theme picker in Neovim (13 colorschemes)
- Platform parity -- both setups share the same muscle memory despite different tools
git clone https://github.com/ekremarmagankarakas/dotfiles.git ~/dotfiles
cd ~/dotfiles
./scripts/setup-macos.shInstalls Homebrew, all packages from brew/Brewfile, fzf shell integration, Bun, sets Homebrew zsh as default, and symlinks all configs.
git clone https://github.com/ekremarmagankarakas/dotfiles.git ~/dotfiles
cd ~/dotfiles
./scripts/setup-ubuntu.shInstalls all packages from packages/apt and packages/snap, Node.js 22, Go, Docker, Linuxbrew, zsh plugins, and symlinks all configs.
# Preview what will be linked
./install.sh --dry-run
# Install (auto-detects platform)
./install.sh
# Or specify platform
./install.sh mac
./install.sh linuxCreates symlinks from ~/.config/ to this repo, backs up existing files (.backup.* suffix), and installs TPM for tmux plugins.
After installation, open tmux and press Ctrl-s + I to install tmux plugins.
If you fork this repo, update these machine-specific values:
- Replace
ekremarmagankarakaswith your own username throughout nvim/lua/plugins/telescope.lua: hardcoded directory paths — update to your ownaerospace/aerospace.toml: browser and file manager keybinds~/.p10k.zsh: generated byp10k configure, not tracked in this repo
A full IDE-like setup built on Lazy.nvim with LSP support for 10+ languages, DAP debugging, and a persistent theme picker that lets you switch between 13 colorschemes. See docs/neovim.md for the full breakdown.
Both platforms use tiling WMs with nearly identical keybindings. Alt+h/j/k/l to focus, Alt+Shift+h/j/k/l to move, Alt+1-9 for workspaces. See docs/window-management.md.
Zsh with Powerlevel10k, vi-mode with cursor shape changes, and a shared set of git/docker aliases across both platforms. See docs/shell.md.
MIT