This repository contains my dotfiles, which are the config files and scripts I use to customize my development environment. These files help me maintain a consistent setup across different machines and save time when setting up new environments.
- Editor: NeoVim. As a fallback, I have a basic standard Vim config that provides 80% of the functionality of my NeoVim setup without any dependencies for maximum portability and stability.
- Multiplexer: Tmux
- Main Terminal: WezTerm
- Shell Prompt: Starship
- Color Theme: All themes are based on the Nord color palette. Themes can be easily switched via environment variables set in
.zshenv
. - Window Management: Rectangle for resizing windows, paired with Karabiner-Elements for switching between applications.
- File Manager: Ranger
I'm not a fan of the default window management solutions that macOS provides, like repeatedly pressing Cmd+Tab to switch apps or using the mouse to click and drag. To streamline my workflow, I created a custom window management solution using Karabiner-Elements and Rectangle. By using these tools together, I can efficiently manage my windows and switch apps with minimal mental overhead and maximum speed, using only my keyboard. Here's how it works:
The Tab
key acts as a regular Tab
when tapped, but when held, it provides additional functionalities.
Holding Tab + W
enables a window management layer, where other keys become shortcuts to resize the current window using Rectangle.
Examples:
Tab + W + H
: Resize window to the left halfTab + W + L
: Resize window to the right half
Holding Tab + E
enables an exposé layer, where other keys become shortcuts to open specific apps.
Examples:
Tab + E + J
: Open browserTab + E + K
: Open terminal
To set up these dotfiles on your system, run:
./install.sh
Then follow the on-screen prompts.
If you ever want to remove the symlinks created by the installation script, you can use the provided symlinks removal script:
To delete all symlinks created by the installation script, run:
./scripts/symlinks.sh --delete
This will remove the symlinks but will not delete the actual configuration files, allowing you to easily revert to your previous configuration if needed.
When adding new dotfiles to this repository, follow these steps:
- Place your dotfile in the appropriate location within the repository.
- Update the
symlinks_config.conf
file to include the symlink creation for your new dotfile. - If necessary, update the
install.sh
script to set up the software.
Software is installed using Homebrew. To add a formula or cask, update the homebrew/Brewfile
and run ./scripts/brew_install_custom.sh
. If you need to install a specific version of a package, find its Ruby script in the commit history of an official Homebrew GitHub repository and place it in the homebrew/custom-casks/
or homebrew/custom-formulae/
directory, depending on whether it's a cask or formula.