Skip to content

Latest commit

 

History

199 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

Cross-platform configuration files for macOS and Linux. Built around a consistent philosophy: vi-keybindings everywhere, tiling window management, and a terminal-first workflow.

What's Included

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

Design Principles

  • 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

Setup

macOS

git clone https://github.com/ekremarmagankarakas/dotfiles.git ~/dotfiles
cd ~/dotfiles
./scripts/setup-macos.sh

Installs Homebrew, all packages from brew/Brewfile, fzf shell integration, Bun, sets Homebrew zsh as default, and symlinks all configs.

Linux (Ubuntu/Debian)

git clone https://github.com/ekremarmagankarakas/dotfiles.git ~/dotfiles
cd ~/dotfiles
./scripts/setup-ubuntu.sh

Installs all packages from packages/apt and packages/snap, Node.js 22, Go, Docker, Linuxbrew, zsh plugins, and symlinks all configs.

Symlinks only

# Preview what will be linked
./install.sh --dry-run

# Install (auto-detects platform)
./install.sh

# Or specify platform
./install.sh mac
./install.sh linux

Creates 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.

Customization

If you fork this repo, update these machine-specific values:

  • Replace ekremarmagankarakas with your own username throughout
  • nvim/lua/plugins/telescope.lua: hardcoded directory paths — update to your own
  • aerospace/aerospace.toml: browser and file manager keybinds
  • ~/.p10k.zsh: generated by p10k configure, not tracked in this repo

Highlights

Neovim

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.

Window Management

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.

Shell

Zsh with Powerlevel10k, vi-mode with cursor shape changes, and a shared set of git/docker aliases across both platforms. See docs/shell.md.

License

MIT

About

My dotfiles (supports linux and mac)

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages