Skip to content

hendrikmi/dotfiles

Repository files navigation

Dotfiles

My config files for maintaining a consistent dev environment across machines.

screenshot

Essential Tools

  • Editor: NeoVim, with a lightweight Vim fallback config (no dependencies) for maximum portability.
  • Multiplexer: Tmux
  • Main Terminal: Ghostty (Previously: WezTerm)
  • Shell Prompt: Starship
  • Color Theme: Nord across all tools, switchable via environment variables in .zshenv.
  • Window Management: Rectangle + Karabiner-Elements for keyboard-driven window resizing and app switching.
  • File Manager: Yazi (Previously: Ranger)

Note

This repo also includes configs for tools I no longer actively use (WezTerm, kitty, iTerm, VSCode, Ranger). I keep them around as reference and for easy reactivation — their symlinks and Brewfile entries are simply commented out.

Custom Window Management

I find macOS window management extremely frustrating: Repeatedly pressing Cmd+Tab to switch apps or having to reach for the mouse to click and drag. It's painfully slow and breaks my flow. To streamline my workflow, I built a custom setup using Karabiner-Elements and Rectangle. Together, they let me manage windows and switch apps with minimal mental overhead, at maxium speed, entirely from the keyboard. Here's how it works:

The Tab key acts as a regular Tab when tapped, but when held it becomes a modifier (hyperkey) that unlocks two layers:

  • Window layer (Tab + W + ...): Resize and position windows via Rectangle. E.g. Tab + W + H for left half, Tab + W + L for right half.
  • Expose layer (Tab + E + ...): Jump directly to a specific app. E.g. Tab + E + J for browser, Tab + E + K for terminal.

Setup

To set up these dotfiles on your system, run:

./install.sh

Then follow the on-screen prompts.

Uninstalling

To remove all symlinks created by the installation script:

./scripts/symlinks.sh --delete

This only removes the symlinks, not the actual config files, so you can easily revert if needed.

Adding New Dotfiles and Software

Dotfiles

  1. Place the config file in the appropriate directory within this repo.
  2. Add a symlink entry in symlinks.conf.
  3. If needed, update install.sh to handle any additional setup.

Software Installation

Software is managed via Homebrew. To add a formula or cask, update homebrew/Brewfile and run ./scripts/brew_install_custom.sh. For pinning a specific version, find its Ruby script in the commit history of the official Homebrew GitHub repo and place it in homebrew/custom-casks/ or homebrew/custom-formulae/.

About

My dotfiles and configs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors