11# dotfiles
22
3- Personal dotfiles for Linux (primarily Arch) and macOS.
3+ Personal dotfiles for Linux, mainly Arch, and macOS.
44
5- Includes configuration for Zsh, Git, tmux, kitty, KDE/GTK theming, OpenRGB, REAPER, and related tooling .
5+ Includes config for Zsh, Git, tmux, kitty, KDE/GTK theming, OpenRGB, REAPER, and related tools .
66
77Neovim configuration now lives in a separate repository: [ zkm/nvim-config] ( https://github.com/zkm/nvim-config ) .
88
@@ -16,11 +16,11 @@ cd ~/.dotfiles
1616./setup.sh
1717```
1818
19- ## ⚠️ Important Behavior
19+ ## ⚠️ Important behavior
2020
2121` setup.sh ` is intentionally destructive for managed dotfiles.
2222
23- Before creating fresh symlinks, it removes existing files/dirs such as:
23+ Before it creates fresh symlinks, it removes existing files and directories such as:
2424
2525- ` ~/.aliases `
2626- ` ~/.gitconfig `
@@ -34,41 +34,105 @@ Before creating fresh symlinks, it removes existing files/dirs such as:
3434
3535Back up anything important first.
3636
37- ## 🧩 What Setup Does
37+ ## 🧩 Setup
3838
39- ` setup.sh ` currently performs the following:
39+ ` setup.sh ` does the following:
4040
41- 1 . Ensures zsh is your shell ( if currently using bash) .
41+ 1 . Makes zsh your shell if you are currently using bash.
42422 . Installs core packages:
4343 - macOS: Homebrew + packages
4444 - Linux: ` pacman ` , ` dnf ` , ` apt ` , or ` yum `
4545 - Linux: attempts to install ` papirus-icon-theme ` (best effort; skipped if unavailable)
46- 3 . Creates directories used by aliases (` ~/Documents/work ` , ` ~/Developer ` , OpenRGB dirs).
46+ 3 . Creates directories used by shortcuts (` ~/Documents/work ` , ` ~/Developer ` , OpenRGB dirs).
47474 . Symlinks repo-managed dotfiles into ` $HOME ` .
4848 - Includes app config such as ` ~/.config/hypr ` and ` ~/.config/kitty ` when present in-repo.
4949 - Links KDE Plasma config files only when setup is run in a KDE session, or when overridden with ` INSTALL_KDE_CONFIG=1 ` .
50505 . Syncs custom desktop assets when present:
5151 - ` Icons/dark-side ` -> ` ~/.local/share/icons/dark-side `
5252 - ` Wallpapers ` -> ` ~/Pictures/Wallpapers `
53- 6 . Adds ` pyenv ` , ` rbenv ` , and ` nvm ` init lines to ` ~/.zshrc ` ( if missing) .
53+ 6 . Adds ` pyenv ` , ` rbenv ` , and ` nvm ` init lines to ` ~/.zshrc ` if they are missing.
54547 . Installs Powerlevel10k.
55558 . Installs fonts (MesloLGS Nerd Font + Fira Code Nerd Font, with local file fallback).
56- 9 . Applies Terminal.app default profile on macOS ( ` Pro ` ) .
57- 10 . Attempts browser install (Firefox + Chrome/Chromium).
58- 11 . Attempts Visual Studio Code install .
56+ 9 . Sets the default Terminal.app profile on macOS to ` Pro ` .
57+ 10 . Tries to install browsers (Firefox and Chrome/Chromium).
58+ 11 . Tries to install Visual Studio Code.
5959 - Arch Linux: bootstraps ` yay ` if needed and installs ` visual-studio-code-bin ` from AUR.
606012 . Installs Docker:
6161 - macOS: installs Docker Desktop (Homebrew cask)
6262 - Linux: installs Docker engine + compose plugin/package, enables the service, and adds your user to the ` docker ` group
63- 13 . Optionally installs OpenRGB/REAPER (opt-in flags).
64-
65- ## 🐳 Docker Install Notes
63+ 13 . Optionally installs OpenRGB and REAPER.
64+
65+ ## Useful shortcuts
66+
67+ The full shell catalog lives in ` aliases ` , but these are the shortcuts I use most.
68+
69+ ### Navigation and files
70+
71+ | Shortcut | What it does |
72+ | --- | --- |
73+ | ` work ` / ` dev ` | Go to common working directories |
74+ | ` j <name> ` | Jump to frequently used directories with zoxide |
75+ | ` l ` , ` ll ` , ` la ` , ` lt ` , ` tree ` | List files quickly with ` eza ` when available |
76+ | ` ff <pattern> ` | Find files with ` fd ` |
77+ | ` search <pattern> ` | Search recursively with ` rg ` |
78+ | ` fcd ` | Pick a directory with ` fzf ` and change into it |
79+ | ` fvim ` | Pick one or more files with ` fzf ` and open them in ` vim ` |
80+
81+ ### Editing and previewing
82+
83+ | Shortcut | What it does |
84+ | --- | --- |
85+ | ` v ` | Open ` nvim ` |
86+ | ` vim ` / ` vi ` | Open ` nvim ` or fall back to ` vim ` |
87+ | ` catp <file> ` | Show plain file output, using ` bat ` when installed |
88+ | ` preview <file> ` | Preview a file with line numbers and syntax highlighting when available |
89+ | ` json ` | Pretty-print JSON with ` jq ` |
90+
91+ ### Kitty helpers
92+
93+ | Shortcut | What it does |
94+ | --- | --- |
95+ | ` imgcat <file> ` | Display images directly in Kitty |
96+ | ` imgpick ` | Pick an image with ` fzf ` and preview it in Kitty |
97+ | ` img <file> ` | Run ` imgcat ` with a shorter command |
98+
99+ ### Git and tmux
100+
101+ | Shortcut | What it does |
102+ | --- | --- |
103+ | ` g ` , ` gst ` , ` gd ` , ` gl ` | Run common Git commands |
104+ | ` gco ` , ` gb ` , ` gc ` , ` gcm ` , ` gp ` , ` gps ` | Check out, branch, commit, pull, and push |
105+ | ` tl ` , ` ta ` , ` tn ` , ` tk ` | List, attach, create, and kill tmux sessions |
106+
107+ ### System and services
108+
109+ | Shortcut | What it does |
110+ | --- | --- |
111+ | ` reload ` | Restart the current shell |
112+ | ` bt ` | Launch ` btop ` |
113+ | ` neofetch ` | Run ` fastfetch ` when available, or fall back to ` neofetch ` |
114+ | ` docker-start ` , ` docker-stop ` , ` docker-restart ` , ` docker-status ` , ` docker-log ` | Manage the Docker daemon |
115+ | ` web-start ` , ` web-stop ` , ` web-restart ` , ` web-status ` | Manage nginx, php-fpm, and mariadb together |
116+ | ` plex-start ` , ` plex-stop ` , ` plex-status ` | Manage the Plex service |
117+
118+ ### OpenRGB, media, and AI
119+
120+ | Shortcut | What it does |
121+ | --- | --- |
122+ | ` rgb-blizzard ` , ` rgb-matrix ` , ` rgb-rainbow ` , ` rgb-off ` | Start or stop OpenRGB lighting effects |
123+ | ` rgb-stop ` | Stop running RGB scripts and turn the lights off |
124+ | ` sync-local-music ` , ` syncipod ` , ` dryrun-music ` , ` sync-music ` | Run music library sync workflows |
125+ | ` ai ` , ` chat ` , ` code-ai ` , ` fast-ai ` , ` chill-ai ` | Start common Ollama sessions |
126+ | ` llama3 ` , ` codellama ` , ` mistral ` , ` gemma ` | Launch specific Ollama models |
127+ | ` ollama-list ` , ` ollama-remove ` , ` ollama-clean ` , ` ollama-clean-safe ` | Manage Ollama models |
128+
129+ ## 🐳 Docker install notes
66130
67131- macOS: Docker Desktop is installed if missing. Launch Docker Desktop once after setup to initialize the daemon.
68- - Linux: setup attempts to enable/ start Docker via ` systemctl ` and adds your user to the ` docker ` group.
132+ - Linux: setup tries to enable and start Docker with ` systemctl ` , then adds your user to the ` docker ` group.
69133- Linux group changes usually require logging out and back in before running Docker without ` sudo ` .
70134
71- ## 🛠️ Docker Troubleshooting
135+ ## 🛠️ Docker troubleshooting
72136
73137Quick checks:
74138
@@ -97,16 +161,16 @@ sudo systemctl enable --now docker
97161sudo systemctl status docker
98162```
99163
100- ## 🎛️ Optional: OpenRGB + REAPER Install
164+ ## 🎛️ Optional: OpenRGB and REAPER install
101165
102- These are now opt-in per user/machine .
166+ These installs are optional .
103167
104- If you run ` ./setup.sh ` interactively (normal terminal) , setup will prompt:
168+ If you run ` ./setup.sh ` interactively, setup will prompt:
105169
106170- Install OpenRGB? [ y/N]
107171- Install REAPER? [ y/N]
108172
109- If you run setup non-interactively (automation/CI) , use env flags.
173+ If you run setup non-interactively, use environment flags.
110174
111175Install both:
112176
@@ -123,11 +187,11 @@ INSTALL_REAPER=1 ./setup.sh
123187
124188Notes:
125189
126- - macOS: tries Homebrew casks ( ` openrgb ` , ` reaper ` ) .
190+ - macOS: tries the Homebrew casks ` openrgb ` and ` reaper ` .
127191- Arch: installs ` openrgb ` via pacman; tries ` reaper ` via ` yay ` (AUR).
128- - apt/dnf/yum systems: attempts ` openrgb ` ; REAPER is usually manual .
192+ - apt/dnf/yum systems: attempt ` openrgb ` ; REAPER is usually installed manually .
129193
130- ## 🖥️ Platform Notes
194+ ## 🖥️ Platform notes
131195
132196### Linux
133197
@@ -136,7 +200,7 @@ Notes:
136200- Override detection with ` INSTALL_KDE_CONFIG=1 ./setup.sh ` or force-skip with ` INSTALL_KDE_CONFIG=0 ./setup.sh ` .
137201- Package install paths are tuned mostly for Arch first, with ` dnf ` /` apt ` /` yum ` fallbacks.
138202- On Debian Bookworm (including Raspberry Pi OS Bookworm), ` fastfetch ` may be unavailable in default APT repositories. Setup now treats it as optional and continues.
139- - Tested environments: Arch Linux + KDE Plasma, Fedora Linux Asahi Remix 43 (Workstation Edition, GNOME 49.5, Mutter/Wayland, aarch64).
203+ - Tested environments: Arch Linux + KDE Plasma; Fedora Linux Asahi Remix 43 (Workstation Edition, GNOME 49.5, Mutter/Wayland, aarch64); Gentoo + KDE Plasma; Ubuntu + GNOME; Linux Mint + Cinnamon; Debian + GNOME; Rocky Linux + GNOME; and CachyOS + GNOME 50 .
140204
141205### macOS
142206
@@ -145,19 +209,19 @@ Notes:
145209- Sets Apple Terminal default/startup profile to ` Pro ` .
146210- Linux desktop theming files are present in-repo but mostly not applied by macOS tooling.
147211
148- ## 🔁 Uninstall / Cleanup
212+ ## 🔁 Uninstall and cleanup
149213
150214Run:
151215
152216``` sh
153217./uninstall.sh
154218```
155219
156- This removes symlinks that point to this repo, cleans setup-added shell init lines, and removes optional components installed by setup ( Powerlevel10k clone, nvm directory, and installed font copies) .
220+ This removes symlinks that point to this repo, cleans up shell init lines added by setup , and removes optional components installed by setup, including the Powerlevel10k clone, the ` nvm ` directory, and installed font copies.
157221
158- ## 💾 Backup Current Files
222+ ## 💾 Backup current files
159223
160- Create a timestamped snapshot of all current files:
224+ Create a timestamped snapshot of your current files:
161225
162226``` sh
163227./local/bin/backup_current_files.sh [source_dir] [backup_dir]
@@ -179,15 +243,21 @@ Notes:
179243- Directory structure is preserved inside each snapshot.
180244- If the backup directory is inside the source directory, it is automatically excluded.
181245
182- ## 🧪 Tested On
246+ ## 🧪 Tested on
183247
184248- Arch Linux + KDE Plasma
185249- Fedora Linux Asahi Remix 43 (Workstation Edition, GNOME 49.5, Mutter/Wayland, aarch64)
250+ - Gentoo + KDE Plasma
251+ - Ubuntu + GNOME
252+ - Linux Mint + Cinnamon
253+ - Debian + GNOME
254+ - Rocky Linux + GNOME
255+ - CachyOS + GNOME 50
186256- macOS (Homebrew-based path)
187257
188- ## 🧹 Ignored Runtime Files
258+ ## 🧹 Ignored runtime files
189259
190- The repo ignores generated/ runtime artifacts, including:
260+ The repo ignores generated and runtime artifacts, including:
191261
192262- OpenRGB logs/cache/venv and backup JSON files
193263- REAPER license/registration artifacts
0 commit comments