Prometheus

Prometheus Dotfiles

Minimal, fast macOS setup — Tokyo Night themed from terminal to taskbar. One install script. Everything symlinked. Always in sync with git.

macOS Sequoia Tokyo Night MIT License Shell · Bash

Quick Install

Paste one command — no cloning, no setup. It handles Homebrew, packages, symlinks, and shell config.

After install, open a new terminal tab and log out / log back in so AeroSpace and SketchyBar launch at login.
One-liner — paste into Terminal
curl -fsSL https://dotfiles.rafay99.com/install.sh | bash
Manual install (git clone)
bash
# Clone
git clone https://github.com/rafay99-epic/dotfiles.git ~/dotfiles
cd ~/dotfiles

# Run installer
chmod +x install.sh
./install.sh
Preview changes (dry run)
./install.sh --dry-run
Help
./install.sh --help

Applications

Every tool used across the Zsh and Fish shell configs. All installable via Homebrew.

Install everything at once
brew install starship fastfetch bat eza fzf thefuck rbenv nvm fish lsd scrcpy openjdk@17
brew install --cask lm-studio windsurf flutter
# Claude Code (cc alias)
npm install -g @anthropic-ai/claude-code

CLI Tools

ToolPurposeInstall
starshipCross-shell prompt (Zsh and Fish)
fastfetchSystem info on every shell open
batSyntax-highlighted cat replacement
ezaModern ls with icons
lsdAlternative ls replacement (Fish aliases)
fzfFuzzy finder — Ctrl+R history, Ctrl+T files
thefuckCorrects previous mistyped command
scrcpyAndroid screen mirror / recording
fishFriendly interactive shell

Runtime Managers

ToolPurposeInstall
rbenvRuby version manager
nvmNode version manager (Zsh)
bunFast JavaScript runtime and package manager
openjdk@17Java 17 (required for Flutter / Android builds)
condaPython environment manager (Anaconda)

GUI Apps

AppPurposeInstall
flutterFlutter SDK — cross-platform mobile / desktop
lm-studioRun local LLMs — CLI via lms
windsurfAI-powered IDE by Codeium

Manually Installed

ToolHow to install
claude (cc)
nvm.fish
opencodeInstall from opencode.ai
kiroAI IDE — install from kiro.dev

SketchyBar

Floating, notch-aware menu bar replacement. Two frosted-glass pills sit on either side of the MacBook notch.

SPACES
AeroSpace workspaces
MEDIA
Now playing
SYSTEM
Battery · Volume · Wi-Fi
AI
Claude + Gemini usage
Setup
brew tap FelixKratz/formulae
brew install sketchybar
brew services start sketchybar

# App font (workspace icons)
curl -fsSL https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v2.0.28/sketchybar-app-font.ttf \
  -o ~/Library/Fonts/sketchybar-app-font.ttf

# Symlink + reload
ln -sf ~/dotfiles/sketchybar ~/.config/sketchybar
sketchybar --reload
Reload config
sketchybar --reload
Restart service
brew services restart sketchybar
Check status
brew services list | grep sketchybar

Color Scheme

VariableColorUse
BAR_COLOR#1a1b26Bar / pill background
ACCENT_COLOR#7aa2f7Active space · Wi-Fi
PURPLE#bb9af7Calendar icon
CYAN#7dcfffVolume icon
GREEN#9ece6aBattery full · AI low
YELLOW#e0af68Battery mid · AI mid
RED#f7768eBattery low · AI high

AeroSpace

i3-inspired tiling window manager for macOS. Vim-style keybindings, workspace-based layout. Supports dual-monitor profiles via aerospace-sync.

Setup
brew tap nikitabobko/tap
brew install --cask nikitabobko/tap/aerospace
mkdir -p ~/.config/aerospace
ln -sf ~/dotfiles/aerospace/aerospace.toml ~/.config/aerospace/aerospace.toml
KeyAction
Alt + H/J/K/LFocus window left / down / up / right
Alt + Shift + H/J/K/LMove window
Alt + THorizontal tiles (side-by-side)
Alt + FToggle floating / tiling
Alt + Shift + -Resize smart –50
Alt + Shift + =Resize smart +50
Ghostty tabs are OS-level windows. AeroSpace floats post-startup Ghostty windows automatically so new tabs don't break your layout. Use ⌘ D / ⌘ ⇧ D for splits inside a single tile.

Multi-Config Profiles

AeroSpace has no per-monitor gap support, so two separate config files handle the different setups. The aerospace-sync script auto-detects your monitor count and applies the right profile.

In System Settings → Displays, drag the menu bar to your preferred external monitor so it is always main when docked. This is required for workspace-to-monitor assignments to be consistent.
Laptop Profile
aerospace/laptop.toml
outer.top8
workspace assignmentnone
monitors1 (built-in)

macOS manages the notch offset automatically. Minimal top gap keeps content flush to the bar.

Docked Profile
aerospace/docked.toml
outer.top35
workspaces 1–5main monitor
workspaces 6–9secondary monitor

Top gap of 35px clears SketchyBar (height 36 + margin 10, bottom at y=46) on external monitors.

Three Ways to Switch

Terminal

Run either alias from Zsh or Fish. Both call the same script.

dock    # or undock
Keybinding

Works from anywhere — no terminal needed. Bound directly in AeroSpace.

Alt + D
Auto-detect

The script counts connected monitors and picks the right profile every time.

aerospace-sync

How aerospace-sync Works

bin/aerospace-sync
# Counts monitors via aerospace list-monitors
# 1 monitor  →  copies laptop.toml  →  outer.top = 8
# 2+ monitors →  copies docked.toml →  outer.top = 35, workspace assignments

ln -sf ~/dotfiles/bin/aerospace-sync ~/.local/bin/aerospace-sync
chmod +x ~/.local/bin/aerospace-sync
Zsh aliases (~/.zshrc)
alias dock='aerospace-sync'
alias undock='aerospace-sync'
Fish aliases (config.fish)
alias dock='aerospace-sync'
alias undock='aerospace-sync'

Ghostty

GPU-accelerated terminal. Tokyo Night theme, JetBrains Mono Nerd Font, tabs, splits, clipboard.

Setup
brew install --cask ghostty
mkdir -p ~/.config/ghostty
ln -sf ~/dotfiles/ghostty/config ~/.config/ghostty/config
FeatureValue
ThemeTokyo Night (built-in)
FontJetBrains Mono Nerd Font · 13pt
Background95% opacity + blur radius 20
Working dir~ on every new tab/window
Scrollback10 MB
Copy on selectEnabled
KeyAction
⌘ TNew tab
⌘ WClose tab / split
⌘ ] / ⌘ [Next / previous tab
⌘ 1–8Jump to tab
Ctrl + TabNext tab

Shell Tools

lsd · Starship prompt · Fastfetch · CodexBar AI tracker

lsdModern ls replacement
brew install lsd
alias ls='lsd'
alias ll='lsd -la'
alias lt='lsd --tree'
starshipCross-shell prompt
brew install starship
eval "$(starship init zsh)"
fastfetchSystem info on open
brew install fastfetch
fastfetch # add to .zshrc
codexbarAI token usage tracker

Install from github.com/steipete/CodexBar, then log in to Claude and Gemini via the menu bar app.

codexbar usage --provider claude --format json

Zsh

Default shell on macOS. Starship prompt, fzf fuzzy finder, lsd/eza aliases, git shortcuts, and fastfetch on open.

Setup
ln -sf ~/dotfiles/zsh/.zshrc ~/.zshrc

What's included

FeatureDetails
PromptStarship — cross-shell, fast, Tokyo Night compatible
Fuzzy finderfzf with custom Tokyo Night colour scheme
ls replacementeza with icons — ls alias
cat replacementbat — syntax-highlighted output
System infofastfetch runs on every new shell open
Runtime managersnvm · conda · rbenv · bun
Pluginzsh-autosuggestions

Aliases

AliasCommand
lseza --icons=always
catbat
ccclaude (Claude Code)
dock / undockaerospace-sync (profile switch)
gsgit status
ggit
gcgit clone
gagit commit -a
Install dependencies
brew install fzf eza bat starship fastfetch zsh-autosuggestions

Fish

Friendly interactive shell. Starship prompt, lsd for ls, git aliases, conda, and fastfetch — same workflow as Zsh but with fish's autocompletion out of the box.

Setup
brew install fish
mkdir -p ~/.config/fish
ln -sf ~/dotfiles/fish/config.fish ~/.config/fish/config.fish

# Set as default shell (optional)
echo $(which fish) | sudo tee -a /etc/shells
chsh -s $(which fish)

What's included

FeatureDetails
PromptStarship — starship init fish | source
System infofastfetch on every shell open
ls replacementlsd -al — ls alias
cat replacementbat — cat alias
Runtime managersconda · bun · LM Studio

Aliases

AliasCommand
lslsd -al
catbat
dock / undockaerospace-sync
gsgit status
ggit
gcgit clone
gagit commit -a

Useful Commands

SketchyBar

Reload
sketchybar --reload
Restart
brew services restart sketchybar
Stop
brew services stop sketchybar

AeroSpace

Reload config
aerospace reload-config
Sync profile
dock # or undock
List windows
aerospace list-windows --all

macOS Tweaks

The install script can apply system preferences via defaults write so you don't have to click through System Settings. These are split into required (always applied) and optional (prompted individually).

Required (always applied)

TweakWhat it doesWhy
Auto-hide menu bar Hides the native macOS menu bar so it only appears on hover SketchyBar replaces it — having both visible wastes screen space
AeroSpace at login Adds AeroSpace.app to your login items so it launches at boot Tiling WM needs to be running for keybindings and workspace management

Optional (prompted individually)

TweakWhat it doesCommand
Dock: no auto-hide delay Removes the default delay when showing/hiding the Dock — it appears and disappears instantly defaults write com.apple.dock autohide-delay -float 0
Finder: path bar Shows the full directory path at the bottom of every Finder window defaults write com.apple.finder ShowPathbar -bool true
Finder: status bar Shows item count and available disk space at the bottom of Finder defaults write com.apple.finder ShowStatusBar -bool true
Finder: show hidden files Makes dotfiles and hidden folders (like .config) visible in Finder defaults write com.apple.finder AppleShowAllFiles -bool true
Finder: full POSIX path Shows the absolute path (e.g. /Users/you/dotfiles) in the Finder title bar defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
Finder: list view Sets the default Finder view to list layout instead of icons — easier to scan file details defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv"
Finder: open to home New Finder windows open to your home folder (~) instead of Recents defaults write com.apple.finder NewWindowTarget -string "PfHm"
Trackpad: tap to click Registers a light tap on the trackpad as a click — no need to press down defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
Screenshots: PNG format Saves screenshots as lossless PNG instead of the default (which may vary by macOS version) defaults write com.apple.screencapture type -string png
Screenshots: no shadow Removes the drop shadow from window screenshots — cleaner for docs and sharing defaults write com.apple.screencapture disable-shadow -bool true
Screenshots: save location Saves all screenshots to ~/Pictures/Screenshots instead of cluttering the Desktop defaults write com.apple.screencapture location -string "$HOME/Pictures/Screenshots"
Mission Control: fixed Spaces Prevents macOS from automatically reordering your Spaces based on recent use — keeps workspace order stable for AeroSpace defaults write com.apple.dock mru-spaces -bool false
Clock: show seconds Displays seconds in the menu bar clock (useful for timing and debugging) defaults write com.apple.menuextra.clock ShowSeconds -bool true
Battery: show percentage Shows the exact battery percentage next to the battery icon in the menu bar defaults write com.apple.controlcenter BatteryShowPercentage -bool true
After applying tweaks, the install script automatically restarts only the affected processes (Dock, Finder, SystemUIServer) — no reboot needed. To revert any tweak, run the same command with the opposite value (e.g. -bool false or defaults delete) and restart the process.

Manual (GUI only — not scriptable)

These settings have no defaults write or pmset equivalent — Apple only exposes them through System Settings. The install script prints a reminder after the automated tweaks finish.

TweakWhat it doesWhere to find it
Disable True Tone Stops the display from shifting colour temperature based on ambient light — keeps colours consistent for design and development work System Settings → Displays → uncheck True Tone
Keyboard backlight: auto brightness Lets macOS automatically adjust the keyboard backlight based on ambient light — brighter in the dark, off in daylight System Settings → Keyboard → toggle Adjust keyboard brightness in low light
Keyboard backlight: off after 15s Turns off the keyboard backlight after 15 seconds of inactivity — saves battery without disabling the backlight entirely System Settings → Keyboard → Turn keyboard backlight off after inactivity → 15 seconds
Optimize video streaming on battery Plays HDR video as SDR while on battery power — reduces GPU workload and extends battery life during streaming System Settings → Battery → toggle Optimize video streaming while on battery