This repository hosts my personal development environment configuration for macOS. It is built around Zsh, Neovim, and Ghostty, using Zinit to manage plugins efficiently.
I use a variety of modern CLI tools and applications to enhance my workflow. You can find the full list of tools, descriptions, and examples in:
👉 Detailed Tooling & Stack Guide
Ensure you have Homebrew and git installed:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"The setup should be handle by the stow_script. Ensure that you backup your
configuration before.
# 1. Clone repository
git clone https://github.com/olefSch/dotfiles.git ~/dotfiles
# 2. go into it
cd ~/dotfilesThis repository includes a Brewfile that lists all my formulae, casks, and VS
Code extensions. To install everything at once, run:
# Install all dependencies from the Brewfile (sometimes multiple tries)
brew bundle installThe last step is to run the stow script to get the config synced via simlinks to all the config locations.
# run stow scirpt
chmod +x stow_script.sh
./stow_script.shThe stow script automatically downloads the Tmux Plugin Manager (TPM), but you need to manually tell it to fetch your plugins (like the Catppuccin theme) the first time you use it.
- Open a new terminal and start tmux by running
tmux. - Press your tmux prefix key (default is
Ctrl+b). - Press
I(capitali). - Wait a few seconds for the plugins to install, and your status bar will automatically update!
I use these aliases to map standard commands to their modern equivalents:
| Alias | Command | Description |
|---|---|---|
cat |
bat |
Syntax highlighted file reading |
df |
duf |
Visual disk usage |
man |
tldr |
Simplified man pages |
ls |
ls --color |
Colored directory listing |
update |
topgrade |
Updates system, brew, plugins, etc. |
v / vim |
nvim |
Opens Neovim |
cd |
z |
Smart directory jumping |
f |
fzf --preview... |
File fuzzy finder with preview |
| Key | Action |
|---|---|
Ctrl + f |
Accept Autosuggestion (Ghost text) |
Ctrl + k |
History Search Up |
Ctrl + j |
History Search Down |
The repository is organized into packages for GNU Stow:
~/dotfiles/
├── stow_script.sh # Stow automation script
├── zsh/ # Shell configuration
│ └── .zshrc
├── nvim/ # Neovim config (stowed to ~/.config/nvim)
├── starship/ # Prompt config (stowed to ~/.config/starship)
├── ghostty/ # Terminal config (stowed to ~/.config/ghostty)
├── tmux/ # Multiplexer config (stowed to ~/.config/tmux)
├── fastfetch/ # System info config (stowed to ~/.config/fastfetch)
└── ... # Other packages (atuin, television, etc.)
-
Environment Variables: I use a
.envfile in$HOMEfor sensitive tokens. The.zshrcautomatically loads this. -
Java:
JAVA_HOMEis set to OpenJDK 17 via Homebrew.
