This repository hosts my personal development environment configuration for macOS. It is built around Zsh, Neovim, and Ghostty, using Zinit to manage plugins efficiently.
Here are the core tools and CLIs I use in my daily workflow:
-
OS: macOS
-
Terminal: Ghostty
-
Shell: Zsh (managed with Zinit)
-
Prompt: Starship
-
Multiplexer: Tmux
-
Font: Nerd Fonts (Required for icons)
I have replaced many standard Unix commands with modern Rust-based alternatives for better performance and visuals.
| Tool | Description | Replaced |
|---|---|---|
| bat | Syntax highlighted file reading | cat |
| duf | Disk Usage/Free Utility | df |
| tldr | Fast implementation of tldr | man |
| zoxide | Smarter cd command | cd |
| fzf | Command-line fuzzy finder | search |
| atuin | Magical shell history | history |
| topgrade | Upgrade everything | manual updates |
| neofetch | System information tool | |
| tmux | Multiplexer | zeoxide would be the new one, tmux is the old |
-
Java: OpenJDK 17
-
Node.js: Managed via nvm
-
Big Data: Apache Spark
-
Cloud/AI: Google Cloud SDK, LM Studio CLI
Ensure you have Homebrew and git installed:
/bin/bash -c "$(curl -fsSL [https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh](https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh))"This command installs all binary dependencies required by my .zshrc:
# Core Tools & CLI Enhancements
brew install \
stow \
neovim \
starship \
zoxide \
fzf \
bat \
duf \
tealdeer \
topgrade \
atuin \
neofetch \
openssl \
tmux
# Languages & Frameworks
brew install openjdk@17 uv
# Note: NVM and Zinit are handled automatically by the .zshrc script if missing.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 ~/dotfiles
# 3. Run the stow setup script
chmod +x stow_script.sh
./stow_script.shI 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)
└── ... # Other packages (atuin, neofetch, etc.)
-
Environment Variables: I use a
.envfile in$HOMEfor sensitive tokens. The.zshrcautomatically loads this. -
Java:
JAVA_HOMEis set to OpenJDK 17 via Homebrew.
