@fredlackey/devutils 0.0.17 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/README.md +32 -150
  2. package/package.json +5 -82
  3. package/bin/dev.js +0 -16
  4. package/files/README.md +0 -0
  5. package/files/claude/.claude/commands/setup-context.md +0 -3
  6. package/files/monorepos/_archive/README.md +0 -36
  7. package/files/monorepos/_legacy/README.md +0 -36
  8. package/files/monorepos/ai-docs/README.md +0 -33
  9. package/files/monorepos/apps/README.md +0 -24
  10. package/files/monorepos/docs/README.md +0 -40
  11. package/files/monorepos/packages/README.md +0 -25
  12. package/files/monorepos/research/README.md +0 -29
  13. package/files/monorepos/scripts/README.md +0 -24
  14. package/src/cli.js +0 -72
  15. package/src/commands/README.md +0 -41
  16. package/src/commands/configure.js +0 -199
  17. package/src/commands/identity.js +0 -1630
  18. package/src/commands/ignore.js +0 -247
  19. package/src/commands/install.js +0 -526
  20. package/src/commands/setup.js +0 -246
  21. package/src/commands/status.js +0 -223
  22. package/src/commands/update.js +0 -142
  23. package/src/commands/version.js +0 -100
  24. package/src/completion.js +0 -284
  25. package/src/constants.js +0 -45
  26. package/src/ignore/claude-code.txt +0 -10
  27. package/src/ignore/docker.txt +0 -18
  28. package/src/ignore/linux.txt +0 -23
  29. package/src/ignore/macos.txt +0 -36
  30. package/src/ignore/node.txt +0 -55
  31. package/src/ignore/terraform.txt +0 -37
  32. package/src/ignore/vscode.txt +0 -18
  33. package/src/ignore/windows.txt +0 -35
  34. package/src/index.js +0 -0
  35. package/src/installs/README.md +0 -399
  36. package/src/installs/adobe-creative-cloud.js +0 -546
  37. package/src/installs/adobe-creative-cloud.md +0 -605
  38. package/src/installs/appcleaner.js +0 -321
  39. package/src/installs/appcleaner.md +0 -699
  40. package/src/installs/apt-transport-https.js +0 -390
  41. package/src/installs/apt-transport-https.md +0 -678
  42. package/src/installs/atomicparsley.js +0 -642
  43. package/src/installs/atomicparsley.md +0 -795
  44. package/src/installs/aws-cli.js +0 -797
  45. package/src/installs/aws-cli.md +0 -727
  46. package/src/installs/balena-etcher.js +0 -710
  47. package/src/installs/balena-etcher.md +0 -761
  48. package/src/installs/bambu-studio.js +0 -1143
  49. package/src/installs/bambu-studio.md +0 -780
  50. package/src/installs/bash-completion.js +0 -575
  51. package/src/installs/bash-completion.md +0 -833
  52. package/src/installs/bash.js +0 -417
  53. package/src/installs/bash.md +0 -993
  54. package/src/installs/beyond-compare.js +0 -603
  55. package/src/installs/beyond-compare.md +0 -813
  56. package/src/installs/brave-browser.js +0 -968
  57. package/src/installs/brave-browser.md +0 -650
  58. package/src/installs/build-essential.js +0 -529
  59. package/src/installs/build-essential.md +0 -977
  60. package/src/installs/ca-certificates.js +0 -618
  61. package/src/installs/ca-certificates.md +0 -937
  62. package/src/installs/caffeine.js +0 -508
  63. package/src/installs/caffeine.md +0 -839
  64. package/src/installs/camtasia.js +0 -596
  65. package/src/installs/camtasia.md +0 -762
  66. package/src/installs/chatgpt.js +0 -476
  67. package/src/installs/chatgpt.md +0 -814
  68. package/src/installs/chocolatey.js +0 -456
  69. package/src/installs/chocolatey.md +0 -661
  70. package/src/installs/chrome-canary.js +0 -419
  71. package/src/installs/chrome-canary.md +0 -641
  72. package/src/installs/chromium.js +0 -667
  73. package/src/installs/chromium.md +0 -838
  74. package/src/installs/claude-code.js +0 -576
  75. package/src/installs/claude-code.md +0 -1173
  76. package/src/installs/cloudflare-warp.js +0 -900
  77. package/src/installs/cloudflare-warp.md +0 -1047
  78. package/src/installs/comet-browser.js +0 -588
  79. package/src/installs/comet-browser.md +0 -731
  80. package/src/installs/curl.js +0 -379
  81. package/src/installs/curl.md +0 -714
  82. package/src/installs/cursor.js +0 -579
  83. package/src/installs/cursor.md +0 -970
  84. package/src/installs/dbeaver.js +0 -924
  85. package/src/installs/dbeaver.md +0 -939
  86. package/src/installs/dbschema.js +0 -692
  87. package/src/installs/dbschema.md +0 -925
  88. package/src/installs/dependencies.md +0 -453
  89. package/src/installs/development-tools.js +0 -600
  90. package/src/installs/development-tools.md +0 -977
  91. package/src/installs/docker.js +0 -1029
  92. package/src/installs/docker.md +0 -1109
  93. package/src/installs/drawio.js +0 -1019
  94. package/src/installs/drawio.md +0 -795
  95. package/src/installs/elmedia-player.js +0 -347
  96. package/src/installs/elmedia-player.md +0 -556
  97. package/src/installs/ffmpeg.js +0 -889
  98. package/src/installs/ffmpeg.md +0 -852
  99. package/src/installs/file.js +0 -464
  100. package/src/installs/file.md +0 -987
  101. package/src/installs/gemini-cli.js +0 -811
  102. package/src/installs/gemini-cli.md +0 -1153
  103. package/src/installs/git.js +0 -400
  104. package/src/installs/git.md +0 -907
  105. package/src/installs/gitego.js +0 -949
  106. package/src/installs/gitego.md +0 -1172
  107. package/src/installs/go.js +0 -931
  108. package/src/installs/go.md +0 -958
  109. package/src/installs/google-antigravity.js +0 -913
  110. package/src/installs/google-antigravity.md +0 -1075
  111. package/src/installs/google-chrome.js +0 -833
  112. package/src/installs/google-chrome.md +0 -862
  113. package/src/installs/gpg.js +0 -480
  114. package/src/installs/gpg.md +0 -1056
  115. package/src/installs/homebrew.js +0 -1033
  116. package/src/installs/homebrew.md +0 -988
  117. package/src/installs/imageoptim.js +0 -968
  118. package/src/installs/imageoptim.md +0 -1119
  119. package/src/installs/installers.json +0 -4032
  120. package/src/installs/installers.json.tmp +0 -3953
  121. package/src/installs/jq.js +0 -400
  122. package/src/installs/jq.md +0 -809
  123. package/src/installs/keyboard-maestro.js +0 -719
  124. package/src/installs/keyboard-maestro.md +0 -825
  125. package/src/installs/kiro.js +0 -864
  126. package/src/installs/kiro.md +0 -1015
  127. package/src/installs/latex.js +0 -789
  128. package/src/installs/latex.md +0 -1095
  129. package/src/installs/lftp.js +0 -356
  130. package/src/installs/lftp.md +0 -907
  131. package/src/installs/lsb-release.js +0 -346
  132. package/src/installs/lsb-release.md +0 -814
  133. package/src/installs/messenger.js +0 -847
  134. package/src/installs/messenger.md +0 -900
  135. package/src/installs/microsoft-office.js +0 -568
  136. package/src/installs/microsoft-office.md +0 -760
  137. package/src/installs/microsoft-teams.js +0 -801
  138. package/src/installs/microsoft-teams.md +0 -886
  139. package/src/installs/moom.js +0 -326
  140. package/src/installs/moom.md +0 -570
  141. package/src/installs/node.js +0 -904
  142. package/src/installs/node.md +0 -1153
  143. package/src/installs/nordpass.js +0 -716
  144. package/src/installs/nordpass.md +0 -921
  145. package/src/installs/nordvpn.js +0 -892
  146. package/src/installs/nordvpn.md +0 -1052
  147. package/src/installs/nvm.js +0 -995
  148. package/src/installs/nvm.md +0 -1057
  149. package/src/installs/ohmyzsh.js +0 -529
  150. package/src/installs/ohmyzsh.md +0 -1094
  151. package/src/installs/openssh.js +0 -804
  152. package/src/installs/openssh.md +0 -1056
  153. package/src/installs/pandoc.js +0 -662
  154. package/src/installs/pandoc.md +0 -1036
  155. package/src/installs/parallels-desktop.js +0 -431
  156. package/src/installs/parallels-desktop.md +0 -446
  157. package/src/installs/pinentry.js +0 -510
  158. package/src/installs/pinentry.md +0 -1142
  159. package/src/installs/pngyu.js +0 -869
  160. package/src/installs/pngyu.md +0 -896
  161. package/src/installs/postman.js +0 -799
  162. package/src/installs/postman.md +0 -940
  163. package/src/installs/procps.js +0 -425
  164. package/src/installs/procps.md +0 -851
  165. package/src/installs/safari-tech-preview.js +0 -374
  166. package/src/installs/safari-tech-preview.md +0 -533
  167. package/src/installs/sfnt2woff.js +0 -658
  168. package/src/installs/sfnt2woff.md +0 -795
  169. package/src/installs/shellcheck.js +0 -481
  170. package/src/installs/shellcheck.md +0 -1005
  171. package/src/installs/slack.js +0 -741
  172. package/src/installs/slack.md +0 -865
  173. package/src/installs/snagit.js +0 -585
  174. package/src/installs/snagit.md +0 -844
  175. package/src/installs/software-properties-common.js +0 -372
  176. package/src/installs/software-properties-common.md +0 -805
  177. package/src/installs/spotify.js +0 -877
  178. package/src/installs/spotify.md +0 -901
  179. package/src/installs/studio-3t.js +0 -823
  180. package/src/installs/studio-3t.md +0 -918
  181. package/src/installs/sublime-text.js +0 -804
  182. package/src/installs/sublime-text.md +0 -914
  183. package/src/installs/superwhisper.js +0 -706
  184. package/src/installs/superwhisper.md +0 -630
  185. package/src/installs/tailscale.js +0 -745
  186. package/src/installs/tailscale.md +0 -1100
  187. package/src/installs/tar.js +0 -389
  188. package/src/installs/tar.md +0 -946
  189. package/src/installs/termius.js +0 -798
  190. package/src/installs/termius.md +0 -844
  191. package/src/installs/terraform.js +0 -779
  192. package/src/installs/terraform.md +0 -899
  193. package/src/installs/tfenv.js +0 -778
  194. package/src/installs/tfenv.md +0 -1091
  195. package/src/installs/tidal.js +0 -771
  196. package/src/installs/tidal.md +0 -864
  197. package/src/installs/tmux.js +0 -346
  198. package/src/installs/tmux.md +0 -1030
  199. package/src/installs/tree.js +0 -411
  200. package/src/installs/tree.md +0 -833
  201. package/src/installs/unzip.js +0 -460
  202. package/src/installs/unzip.md +0 -879
  203. package/src/installs/vim.js +0 -421
  204. package/src/installs/vim.md +0 -1040
  205. package/src/installs/vlc.js +0 -821
  206. package/src/installs/vlc.md +0 -927
  207. package/src/installs/vscode.js +0 -843
  208. package/src/installs/vscode.md +0 -1002
  209. package/src/installs/wget.js +0 -420
  210. package/src/installs/wget.md +0 -791
  211. package/src/installs/whatsapp.js +0 -729
  212. package/src/installs/whatsapp.md +0 -854
  213. package/src/installs/winpty.js +0 -352
  214. package/src/installs/winpty.md +0 -620
  215. package/src/installs/woff2.js +0 -553
  216. package/src/installs/woff2.md +0 -977
  217. package/src/installs/wsl.js +0 -572
  218. package/src/installs/wsl.md +0 -699
  219. package/src/installs/xcode-clt.js +0 -520
  220. package/src/installs/xcode-clt.md +0 -351
  221. package/src/installs/xcode.js +0 -560
  222. package/src/installs/xcode.md +0 -573
  223. package/src/installs/yarn.js +0 -824
  224. package/src/installs/yarn.md +0 -1074
  225. package/src/installs/yq.js +0 -654
  226. package/src/installs/yq.md +0 -944
  227. package/src/installs/yt-dlp.js +0 -701
  228. package/src/installs/yt-dlp.md +0 -946
  229. package/src/installs/yum-utils.js +0 -297
  230. package/src/installs/yum-utils.md +0 -648
  231. package/src/installs/zoom.js +0 -759
  232. package/src/installs/zoom.md +0 -884
  233. package/src/installs/zsh.js +0 -455
  234. package/src/installs/zsh.md +0 -1008
  235. package/src/scripts/README.md +0 -617
  236. package/src/scripts/STATUS.md +0 -208
  237. package/src/scripts/afk.js +0 -411
  238. package/src/scripts/backup-all.js +0 -746
  239. package/src/scripts/backup-source.js +0 -727
  240. package/src/scripts/brewd.js +0 -389
  241. package/src/scripts/brewi.js +0 -520
  242. package/src/scripts/brewr.js +0 -527
  243. package/src/scripts/brews.js +0 -477
  244. package/src/scripts/brewu.js +0 -504
  245. package/src/scripts/c.js +0 -201
  246. package/src/scripts/ccurl.js +0 -341
  247. package/src/scripts/certbot-crontab-init.js +0 -504
  248. package/src/scripts/certbot-init.js +0 -657
  249. package/src/scripts/ch.js +0 -355
  250. package/src/scripts/claude-danger.js +0 -268
  251. package/src/scripts/clean-dev.js +0 -435
  252. package/src/scripts/clear-dns-cache.js +0 -541
  253. package/src/scripts/clone.js +0 -435
  254. package/src/scripts/code-all.js +0 -437
  255. package/src/scripts/count-files.js +0 -211
  256. package/src/scripts/count-folders.js +0 -211
  257. package/src/scripts/count.js +0 -264
  258. package/src/scripts/d.js +0 -219
  259. package/src/scripts/datauri.js +0 -389
  260. package/src/scripts/delete-files.js +0 -380
  261. package/src/scripts/docker-clean.js +0 -426
  262. package/src/scripts/dp.js +0 -442
  263. package/src/scripts/e.js +0 -390
  264. package/src/scripts/empty-trash.js +0 -513
  265. package/src/scripts/evm.js +0 -444
  266. package/src/scripts/fetch-github-repos.js +0 -456
  267. package/src/scripts/get-channel.js +0 -345
  268. package/src/scripts/get-course.js +0 -399
  269. package/src/scripts/get-dependencies.js +0 -306
  270. package/src/scripts/get-folder.js +0 -799
  271. package/src/scripts/get-tunes.js +0 -426
  272. package/src/scripts/get-video.js +0 -367
  273. package/src/scripts/git-backup.js +0 -577
  274. package/src/scripts/git-clone.js +0 -493
  275. package/src/scripts/git-pup.js +0 -319
  276. package/src/scripts/git-push.js +0 -396
  277. package/src/scripts/h.js +0 -622
  278. package/src/scripts/hide-desktop-icons.js +0 -499
  279. package/src/scripts/hide-hidden-files.js +0 -538
  280. package/src/scripts/install-dependencies-from.js +0 -456
  281. package/src/scripts/ips.js +0 -663
  282. package/src/scripts/iso.js +0 -370
  283. package/src/scripts/killni.js +0 -577
  284. package/src/scripts/ll.js +0 -467
  285. package/src/scripts/local-ip.js +0 -325
  286. package/src/scripts/m.js +0 -524
  287. package/src/scripts/map.js +0 -309
  288. package/src/scripts/mkd.js +0 -351
  289. package/src/scripts/ncu-update-all.js +0 -457
  290. package/src/scripts/nginx-init.js +0 -718
  291. package/src/scripts/npmi.js +0 -382
  292. package/src/scripts/o.js +0 -511
  293. package/src/scripts/org-by-date.js +0 -338
  294. package/src/scripts/p.js +0 -224
  295. package/src/scripts/packages.js +0 -330
  296. package/src/scripts/path.js +0 -225
  297. package/src/scripts/ports.js +0 -597
  298. package/src/scripts/q.js +0 -305
  299. package/src/scripts/refresh-files.js +0 -394
  300. package/src/scripts/remove-smaller-files.js +0 -516
  301. package/src/scripts/rename-files-with-date.js +0 -533
  302. package/src/scripts/resize-image.js +0 -539
  303. package/src/scripts/rm-safe.js +0 -669
  304. package/src/scripts/s.js +0 -540
  305. package/src/scripts/set-git-public.js +0 -365
  306. package/src/scripts/show-desktop-icons.js +0 -475
  307. package/src/scripts/show-hidden-files.js +0 -472
  308. package/src/scripts/tpa.js +0 -280
  309. package/src/scripts/tpo.js +0 -280
  310. package/src/scripts/u.js +0 -505
  311. package/src/scripts/vpush.js +0 -437
  312. package/src/scripts/y.js +0 -283
  313. package/src/utils/README.md +0 -95
  314. package/src/utils/common/apps.js +0 -143
  315. package/src/utils/common/display.js +0 -157
  316. package/src/utils/common/network.js +0 -185
  317. package/src/utils/common/os.js +0 -294
  318. package/src/utils/common/package-manager.js +0 -301
  319. package/src/utils/common/privileges.js +0 -138
  320. package/src/utils/common/shell.js +0 -216
  321. package/src/utils/macos/apps.js +0 -228
  322. package/src/utils/macos/brew.js +0 -315
  323. package/src/utils/ubuntu/apt.js +0 -307
  324. package/src/utils/ubuntu/desktop.js +0 -292
  325. package/src/utils/ubuntu/snap.js +0 -344
  326. package/src/utils/ubuntu/systemd.js +0 -286
  327. package/src/utils/windows/choco.js +0 -465
  328. package/src/utils/windows/env.js +0 -246
  329. package/src/utils/windows/registry.js +0 -269
  330. package/src/utils/windows/shell.js +0 -240
  331. package/src/utils/windows/winget.js +0 -489
@@ -1,1094 +0,0 @@
1
- # Installing Oh My Zsh
2
-
3
- ## Overview
4
-
5
- Oh My Zsh is an open-source, community-driven framework for managing your Zsh configuration. It comes bundled with thousands of helpful functions, plugins, themes, and features that make working in the terminal more efficient and enjoyable. With over 2,400 contributors and 300+ plugins, Oh My Zsh has become the most popular Zsh configuration framework.
6
-
7
- Oh My Zsh provides:
8
-
9
- - **300+ plugins** for common tools (git, docker, npm, kubectl, aws, and many more)
10
- - **140+ themes** for customizing your terminal prompt appearance
11
- - **Auto-update mechanism** to keep your installation current
12
- - **Plugin management** for easy addition and removal of functionality
13
- - **Aliases and functions** for common commands and workflows
14
-
15
- This guide documents Oh My Zsh installation procedures for all platforms supported by DevUtils CLI. Because Oh My Zsh is a Zsh configuration framework, Zsh must be installed as a prerequisite on all platforms.
16
-
17
- ## Dependencies
18
-
19
- ### macOS (Homebrew)
20
- - **Required:**
21
- - `zsh` - Pre-installed on macOS 10.15 (Catalina) and later as the default shell. For older macOS versions, install via `brew install --quiet zsh`
22
- - `curl` - Pre-installed on macOS. For the latest version, install via `brew install --quiet curl` or run `dev install curl`
23
- - `git` - Pre-installed via Xcode Command Line Tools or install via `brew install --quiet git` or run `dev install git`
24
- - **Optional:** None
25
- - **Auto-installed:**
26
- - Oh My Zsh plugins directory structure
27
- - Default `.zshrc` configuration file (backs up existing `.zshrc` to `.zshrc.pre-oh-my-zsh`)
28
-
29
- ### Ubuntu/Debian (APT)
30
- - **Required:**
31
- - `zsh` - Install via `sudo DEBIAN_FRONTEND=noninteractive apt-get install -y zsh`
32
- - `curl` - Install via `sudo DEBIAN_FRONTEND=noninteractive apt-get install -y curl` or run `dev install curl`
33
- - `git` - Install via `sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git` or run `dev install git`
34
- - **Optional:** None
35
- - **Auto-installed:**
36
- - Oh My Zsh plugins directory structure
37
- - Default `.zshrc` configuration file
38
-
39
- ### Raspberry Pi OS (APT)
40
- - **Required:**
41
- - `zsh` - Install via `sudo DEBIAN_FRONTEND=noninteractive apt-get install -y zsh`
42
- - `curl` - Install via `sudo DEBIAN_FRONTEND=noninteractive apt-get install -y curl` or run `dev install curl`
43
- - `git` - Install via `sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git` or run `dev install git`
44
- - **Optional:** None
45
- - **Auto-installed:**
46
- - Oh My Zsh plugins directory structure
47
- - Default `.zshrc` configuration file
48
-
49
- ### Amazon Linux/RHEL/Fedora (DNF/YUM)
50
- - **Required:**
51
- - `zsh` - Install via `sudo dnf install -y zsh` (AL2023/RHEL 8+/Fedora) or `sudo yum install -y zsh` (AL2/RHEL 7)
52
- - `curl` - Install via `sudo dnf install -y curl` or `sudo yum install -y curl` or run `dev install curl`
53
- - `git` - Install via `sudo dnf install -y git` or `sudo yum install -y git` or run `dev install git`
54
- - **Optional:** None
55
- - **Auto-installed:**
56
- - Oh My Zsh plugins directory structure
57
- - Default `.zshrc` configuration file
58
-
59
- ### WSL (Ubuntu)
60
- - **Required:**
61
- - `zsh` - Install via `sudo DEBIAN_FRONTEND=noninteractive apt-get install -y zsh`
62
- - `curl` - Install via `sudo DEBIAN_FRONTEND=noninteractive apt-get install -y curl` or run `dev install curl`
63
- - `git` - Install via `sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git` or run `dev install git`
64
- - **Optional:** None
65
- - **Auto-installed:**
66
- - Oh My Zsh plugins directory structure
67
- - Default `.zshrc` configuration file
68
-
69
- **Note**: Oh My Zsh is not supported on native Windows (PowerShell, Command Prompt) or Git Bash environments. For Windows users, install Oh My Zsh within WSL (Windows Subsystem for Linux) instead.
70
-
71
- ## Prerequisites
72
-
73
- Before installing Oh My Zsh on any platform, ensure:
74
-
75
- 1. **Internet connectivity** - Required to download Oh My Zsh from GitHub
76
- 2. **Terminal access** - Command line interface to run installation commands
77
- 3. **sudo privileges** - Required for installing Zsh if not already present (Linux platforms)
78
- 4. **Zsh shell** - Must be installed before Oh My Zsh (installation steps provided below)
79
- 5. **curl or wget** - Required for downloading the installation script
80
- 6. **git** - Required for cloning the Oh My Zsh repository
81
-
82
- **Important**: The Oh My Zsh installer will:
83
- - Back up your existing `~/.zshrc` to `~/.zshrc.pre-oh-my-zsh`
84
- - Create a new `~/.zshrc` with Oh My Zsh configuration
85
- - Clone the Oh My Zsh repository to `~/.oh-my-zsh`
86
-
87
- ## Platform-Specific Installation
88
-
89
- ### macOS (Homebrew)
90
-
91
- #### Prerequisites
92
-
93
- - macOS 10.15 (Catalina) or later (macOS 14 Sonoma or later recommended)
94
- - Homebrew package manager installed
95
- - Terminal access via Terminal.app or iTerm2
96
-
97
- macOS 10.15 (Catalina) and later include Zsh as the default shell. You can verify this by running `echo $SHELL`. If it shows `/bin/zsh`, Zsh is already your default shell.
98
-
99
- If Homebrew is not installed, install it first:
100
-
101
- ```bash
102
- /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
103
- ```
104
-
105
- #### Installation Steps
106
-
107
- **Step 1: Verify Zsh is installed and set as default shell**
108
-
109
- ```bash
110
- zsh --version
111
- ```
112
-
113
- Expected output (version numbers may vary):
114
-
115
- ```
116
- zsh 5.9 (x86_64-apple-darwin23.0)
117
- ```
118
-
119
- If Zsh is not installed (older macOS versions), install it:
120
-
121
- ```bash
122
- brew install --quiet zsh
123
- ```
124
-
125
- **Step 2: Ensure curl and git are available**
126
-
127
- These are typically pre-installed on macOS. Verify:
128
-
129
- ```bash
130
- curl --version && git --version
131
- ```
132
-
133
- If either is missing, install via Homebrew:
134
-
135
- ```bash
136
- brew install --quiet curl git
137
- ```
138
-
139
- **Step 3: Install Oh My Zsh non-interactively**
140
-
141
- Run the following command for a fully unattended installation:
142
-
143
- ```bash
144
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
145
- ```
146
-
147
- The `--unattended` flag:
148
- - Prevents the installer from changing your default shell automatically
149
- - Does not launch Zsh after installation
150
- - Enables fully non-interactive execution suitable for scripts and automation
151
-
152
- **Step 4: Set Zsh as your default shell (if not already)**
153
-
154
- Check your current default shell:
155
-
156
- ```bash
157
- echo $SHELL
158
- ```
159
-
160
- If it does not show `/bin/zsh`, set Zsh as your default:
161
-
162
- ```bash
163
- sudo chsh -s /bin/zsh $(whoami)
164
- ```
165
-
166
- **Step 5: Apply the configuration**
167
-
168
- Start a new Zsh session or source the configuration:
169
-
170
- ```bash
171
- source ~/.zshrc
172
- ```
173
-
174
- #### Verification
175
-
176
- Confirm Oh My Zsh is installed correctly:
177
-
178
- ```bash
179
- ls ~/.oh-my-zsh
180
- ```
181
-
182
- Expected output should show directories including `plugins`, `themes`, `lib`, `templates`, and others.
183
-
184
- Verify the Oh My Zsh configuration is loaded:
185
-
186
- ```bash
187
- echo $ZSH
188
- ```
189
-
190
- Expected output:
191
-
192
- ```
193
- /Users/<your-username>/.oh-my-zsh
194
- ```
195
-
196
- Check that plugins and themes are available:
197
-
198
- ```bash
199
- ls ~/.oh-my-zsh/plugins | head -10
200
- ```
201
-
202
- This should list plugin directories like `git`, `docker`, `npm`, etc.
203
-
204
- #### Troubleshooting
205
-
206
- **Problem**: `zsh: command not found: omz` after installation
207
-
208
- **Solution**: Oh My Zsh does not provide an `omz` command by default in older versions. Source your configuration:
209
-
210
- ```bash
211
- source ~/.zshrc
212
- ```
213
-
214
- **Problem**: Existing `.zshrc` customizations are lost
215
-
216
- **Solution**: Oh My Zsh backs up your original configuration. Restore customizations from the backup:
217
-
218
- ```bash
219
- cat ~/.zshrc.pre-oh-my-zsh
220
- ```
221
-
222
- Copy any custom settings from the backup into your new `~/.zshrc` file.
223
-
224
- **Problem**: Oh My Zsh installation fails with "git clone failed"
225
-
226
- **Solution**: Ensure git is installed and you have internet connectivity:
227
-
228
- ```bash
229
- brew install --quiet git
230
- ping -c 3 github.com
231
- ```
232
-
233
- **Problem**: Themes or prompts do not display correctly (missing symbols)
234
-
235
- **Solution**: Install a Nerd Font or Powerline-compatible font. Many Oh My Zsh themes require special font glyphs. Install a compatible font:
236
-
237
- ```bash
238
- brew tap homebrew/cask-fonts
239
- brew install --cask font-meslo-lg-nerd-font
240
- ```
241
-
242
- Then configure your terminal to use the installed font.
243
-
244
- ---
245
-
246
- ### Ubuntu/Debian (APT)
247
-
248
- #### Prerequisites
249
-
250
- - Ubuntu 20.04 LTS or later, or Debian 11 (Bullseye) or later
251
- - sudo privileges
252
- - Internet connectivity
253
-
254
- Ubuntu and Debian use Bash as the default shell. You must install Zsh before installing Oh My Zsh.
255
-
256
- #### Installation Steps
257
-
258
- **Step 1: Update package lists and install Zsh**
259
-
260
- ```bash
261
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
262
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y zsh
263
- ```
264
-
265
- Verify Zsh installation:
266
-
267
- ```bash
268
- zsh --version
269
- ```
270
-
271
- Expected output (version numbers may vary):
272
-
273
- ```
274
- zsh 5.9 (x86_64-ubuntu-linux-gnu)
275
- ```
276
-
277
- **Step 2: Install curl and git**
278
-
279
- ```bash
280
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y curl git
281
- ```
282
-
283
- **Step 3: Install Oh My Zsh non-interactively**
284
-
285
- ```bash
286
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
287
- ```
288
-
289
- **Step 4: Set Zsh as your default shell**
290
-
291
- ```bash
292
- sudo chsh -s $(which zsh) $(whoami)
293
- ```
294
-
295
- **Step 5: Start a new Zsh session**
296
-
297
- Log out and log back in, or start a new terminal session. Alternatively, start Zsh manually:
298
-
299
- ```bash
300
- zsh
301
- ```
302
-
303
- Then source the configuration:
304
-
305
- ```bash
306
- source ~/.zshrc
307
- ```
308
-
309
- #### Verification
310
-
311
- Confirm Oh My Zsh is installed:
312
-
313
- ```bash
314
- ls ~/.oh-my-zsh
315
- ```
316
-
317
- Expected output should show directories including `plugins`, `themes`, `lib`, `templates`.
318
-
319
- Verify the ZSH variable is set:
320
-
321
- ```bash
322
- echo $ZSH
323
- ```
324
-
325
- Expected output:
326
-
327
- ```
328
- /home/<your-username>/.oh-my-zsh
329
- ```
330
-
331
- Verify Zsh is your default shell:
332
-
333
- ```bash
334
- echo $SHELL
335
- ```
336
-
337
- Expected output:
338
-
339
- ```
340
- /usr/bin/zsh
341
- ```
342
-
343
- #### Troubleshooting
344
-
345
- **Problem**: `chsh: PAM: Authentication failure`
346
-
347
- **Solution**: The `chsh` command requires your password. For automated scripts, you can modify `/etc/passwd` directly with sudo:
348
-
349
- ```bash
350
- sudo sed -i "s|$(whoami):/bin/bash|$(whoami):$(which zsh)|" /etc/passwd
351
- ```
352
-
353
- **Problem**: Oh My Zsh is not loaded in new sessions
354
-
355
- **Solution**: Ensure Zsh is your default shell and `.zshrc` exists:
356
-
357
- ```bash
358
- cat ~/.zshrc | head -5
359
- ```
360
-
361
- The file should contain `export ZSH="$HOME/.oh-my-zsh"` near the top.
362
-
363
- **Problem**: `E: Unable to locate package zsh`
364
-
365
- **Solution**: Update your package lists:
366
-
367
- ```bash
368
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
369
- ```
370
-
371
- **Problem**: Slow shell startup after installing Oh My Zsh
372
-
373
- **Solution**: Disable plugins you do not use. Edit `~/.zshrc` and reduce the plugins list:
374
-
375
- ```bash
376
- # In ~/.zshrc, change:
377
- plugins=(git)
378
- # Instead of:
379
- plugins=(git docker npm node kubectl aws gcloud ...)
380
- ```
381
-
382
- ---
383
-
384
- ### Raspberry Pi OS (APT)
385
-
386
- #### Prerequisites
387
-
388
- - Raspberry Pi OS (Bookworm, Bullseye, or Buster) - 32-bit or 64-bit
389
- - Raspberry Pi 2 or later (Raspberry Pi 3B+ or later recommended)
390
- - sudo privileges
391
- - Internet connectivity
392
-
393
- Raspberry Pi OS is based on Debian, so the installation follows the same APT-based process.
394
-
395
- #### Installation Steps
396
-
397
- **Step 1: Verify your architecture**
398
-
399
- ```bash
400
- uname -m
401
- ```
402
-
403
- - `aarch64` = 64-bit ARM (Raspberry Pi 3/4/5 with 64-bit OS)
404
- - `armv7l` = 32-bit ARM (Raspberry Pi 2/3/4 with 32-bit OS)
405
- - `armv6l` = 32-bit ARM (Raspberry Pi Zero/1)
406
-
407
- All architectures are supported for Oh My Zsh.
408
-
409
- **Step 2: Update package lists and install Zsh**
410
-
411
- ```bash
412
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
413
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y zsh
414
- ```
415
-
416
- Verify Zsh installation:
417
-
418
- ```bash
419
- zsh --version
420
- ```
421
-
422
- **Step 3: Install curl and git**
423
-
424
- ```bash
425
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y curl git
426
- ```
427
-
428
- **Step 4: Install Oh My Zsh non-interactively**
429
-
430
- ```bash
431
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
432
- ```
433
-
434
- **Step 5: Set Zsh as your default shell**
435
-
436
- ```bash
437
- sudo chsh -s $(which zsh) $(whoami)
438
- ```
439
-
440
- **Step 6: Apply the configuration**
441
-
442
- Log out and log back in, or start Zsh manually:
443
-
444
- ```bash
445
- zsh
446
- source ~/.zshrc
447
- ```
448
-
449
- #### Verification
450
-
451
- Confirm Oh My Zsh is installed:
452
-
453
- ```bash
454
- ls ~/.oh-my-zsh
455
- ```
456
-
457
- Verify the ZSH variable is set:
458
-
459
- ```bash
460
- echo $ZSH
461
- ```
462
-
463
- Expected output:
464
-
465
- ```
466
- /home/pi/.oh-my-zsh
467
- ```
468
-
469
- (Replace `pi` with your username if different.)
470
-
471
- #### Troubleshooting
472
-
473
- **Problem**: Installation is very slow
474
-
475
- **Solution**: Raspberry Pi SD cards can be slow. Use a high-quality SD card (Class 10 or A1/A2 rated) or boot from USB/SSD for better performance.
476
-
477
- **Problem**: Oh My Zsh themes cause slow prompt rendering
478
-
479
- **Solution**: Some complex themes (like Powerlevel10k) can be slow on older Raspberry Pi models. Use a simpler theme:
480
-
481
- ```bash
482
- # Edit ~/.zshrc and change ZSH_THEME
483
- ZSH_THEME="robbyrussell"
484
- ```
485
-
486
- **Problem**: Fonts do not display correctly over SSH
487
-
488
- **Solution**: Terminal fonts are rendered by your local machine, not the Raspberry Pi. Install a Nerd Font on your local machine and configure your SSH client to use it.
489
-
490
- **Problem**: `git clone` fails during installation
491
-
492
- **Solution**: Check your internet connection. If using WiFi, consider using Ethernet for more stable connectivity:
493
-
494
- ```bash
495
- ping -c 3 github.com
496
- ```
497
-
498
- ---
499
-
500
- ### Amazon Linux/RHEL/Fedora (DNF/YUM)
501
-
502
- #### Prerequisites
503
-
504
- - Amazon Linux 2023 (AL2023), Amazon Linux 2 (AL2), RHEL 8+, or Fedora 38+
505
- - sudo privileges
506
- - Internet connectivity
507
-
508
- Amazon Linux 2023 and RHEL 8+ use DNF. Amazon Linux 2 and RHEL 7 use YUM.
509
-
510
- **Important**: Amazon Linux 2 reaches end of support on June 30, 2026. Consider migrating to Amazon Linux 2023.
511
-
512
- #### Installation Steps
513
-
514
- **Step 1: Install Zsh**
515
-
516
- For Amazon Linux 2023 / RHEL 8+ / Fedora:
517
-
518
- ```bash
519
- sudo dnf install -y zsh
520
- ```
521
-
522
- For Amazon Linux 2 / RHEL 7:
523
-
524
- ```bash
525
- sudo yum install -y zsh
526
- ```
527
-
528
- Verify Zsh installation:
529
-
530
- ```bash
531
- zsh --version
532
- ```
533
-
534
- Expected output (version numbers may vary):
535
-
536
- ```
537
- zsh 5.9 (x86_64-redhat-linux-gnu)
538
- ```
539
-
540
- **Step 2: Install curl and git**
541
-
542
- For DNF-based systems:
543
-
544
- ```bash
545
- sudo dnf install -y curl git
546
- ```
547
-
548
- For YUM-based systems:
549
-
550
- ```bash
551
- sudo yum install -y curl git
552
- ```
553
-
554
- **Step 3: Install Oh My Zsh non-interactively**
555
-
556
- ```bash
557
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
558
- ```
559
-
560
- **Step 4: Set Zsh as your default shell**
561
-
562
- For Fedora (recent versions use `lchsh`):
563
-
564
- ```bash
565
- sudo lchsh $(whoami)
566
- ```
567
-
568
- When prompted, enter `/usr/bin/zsh`.
569
-
570
- For Amazon Linux / RHEL:
571
-
572
- ```bash
573
- sudo chsh -s $(which zsh) $(whoami)
574
- ```
575
-
576
- **Step 5: Apply the configuration**
577
-
578
- Log out and log back in, or start Zsh manually:
579
-
580
- ```bash
581
- zsh
582
- source ~/.zshrc
583
- ```
584
-
585
- #### Verification
586
-
587
- Confirm Oh My Zsh is installed:
588
-
589
- ```bash
590
- ls ~/.oh-my-zsh
591
- ```
592
-
593
- Verify the ZSH variable is set:
594
-
595
- ```bash
596
- echo $ZSH
597
- ```
598
-
599
- Expected output:
600
-
601
- ```
602
- /home/ec2-user/.oh-my-zsh
603
- ```
604
-
605
- (Username varies: `ec2-user` on EC2, `fedora` on Fedora Cloud, or your custom username.)
606
-
607
- Verify Zsh is your default shell:
608
-
609
- ```bash
610
- echo $SHELL
611
- ```
612
-
613
- Expected output:
614
-
615
- ```
616
- /usr/bin/zsh
617
- ```
618
-
619
- #### Troubleshooting
620
-
621
- **Problem**: `lchsh: command not found` on older Fedora
622
-
623
- **Solution**: Use `chsh` instead:
624
-
625
- ```bash
626
- sudo chsh -s $(which zsh) $(whoami)
627
- ```
628
-
629
- **Problem**: `chsh` requires password in automation scripts
630
-
631
- **Solution**: Modify `/etc/passwd` directly:
632
-
633
- ```bash
634
- sudo sed -i "s|$(whoami):/bin/bash|$(whoami):$(which zsh)|" /etc/passwd
635
- ```
636
-
637
- **Problem**: `No match for argument: zsh` on Amazon Linux 2
638
-
639
- **Solution**: Update the yum cache:
640
-
641
- ```bash
642
- sudo yum makecache
643
- sudo yum install -y zsh
644
- ```
645
-
646
- **Problem**: Oh My Zsh not loaded in new SSH sessions on EC2
647
-
648
- **Solution**: Ensure `.bashrc` or `.bash_profile` is not overriding the shell. Verify your default shell:
649
-
650
- ```bash
651
- grep $(whoami) /etc/passwd
652
- ```
653
-
654
- The last field should be `/usr/bin/zsh` or `/bin/zsh`.
655
-
656
- ---
657
-
658
- ### WSL (Ubuntu)
659
-
660
- #### Prerequisites
661
-
662
- - Windows 10 version 2004 or higher, or Windows 11
663
- - WSL 2 enabled with Ubuntu distribution installed
664
- - sudo privileges within WSL
665
-
666
- WSL runs a full Linux environment. The installation follows the Ubuntu/Debian process.
667
-
668
- #### Installation Steps
669
-
670
- **Step 1: Update package lists and install Zsh**
671
-
672
- Open your WSL Ubuntu terminal and run:
673
-
674
- ```bash
675
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
676
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y zsh
677
- ```
678
-
679
- Verify Zsh installation:
680
-
681
- ```bash
682
- zsh --version
683
- ```
684
-
685
- **Step 2: Install curl and git**
686
-
687
- ```bash
688
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y curl git
689
- ```
690
-
691
- **Step 3: Install Oh My Zsh non-interactively**
692
-
693
- ```bash
694
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
695
- ```
696
-
697
- **Step 4: Set Zsh as your default shell**
698
-
699
- ```bash
700
- sudo chsh -s $(which zsh) $(whoami)
701
- ```
702
-
703
- **Step 5: Configure Windows Terminal (optional but recommended)**
704
-
705
- To have WSL launch Zsh by default in Windows Terminal, you can add this to the end of your `~/.bashrc`:
706
-
707
- ```bash
708
- # Auto-launch Zsh in WSL
709
- if [ -t 1 ] && [ -x /usr/bin/zsh ]; then
710
- exec /usr/bin/zsh
711
- fi
712
- ```
713
-
714
- Alternatively, close and reopen WSL. The new default shell should be Zsh.
715
-
716
- **Step 6: Apply the configuration**
717
-
718
- ```bash
719
- zsh
720
- source ~/.zshrc
721
- ```
722
-
723
- #### Verification
724
-
725
- Confirm Oh My Zsh is installed:
726
-
727
- ```bash
728
- ls ~/.oh-my-zsh
729
- ```
730
-
731
- Verify the ZSH variable is set:
732
-
733
- ```bash
734
- echo $ZSH
735
- ```
736
-
737
- Expected output:
738
-
739
- ```
740
- /home/<your-wsl-username>/.oh-my-zsh
741
- ```
742
-
743
- Verify Zsh is running:
744
-
745
- ```bash
746
- echo $0
747
- ```
748
-
749
- Expected output:
750
-
751
- ```
752
- zsh
753
- ```
754
-
755
- #### Troubleshooting
756
-
757
- **Problem**: `chsh` does not work in WSL
758
-
759
- **Solution**: WSL may not respect `chsh` changes. Add the auto-launch snippet to `~/.bashrc`:
760
-
761
- ```bash
762
- cat >> ~/.bashrc << 'EOF'
763
-
764
- # Auto-launch Zsh in WSL
765
- if [ -t 1 ] && [ -x /usr/bin/zsh ]; then
766
- exec /usr/bin/zsh
767
- fi
768
- EOF
769
- ```
770
-
771
- **Problem**: Windows Terminal still shows Bash prompt
772
-
773
- **Solution**: Close all WSL terminals and restart WSL:
774
-
775
- ```powershell
776
- # In Windows PowerShell
777
- wsl --shutdown
778
- wsl
779
- ```
780
-
781
- **Problem**: Oh My Zsh themes display incorrectly in Windows Terminal
782
-
783
- **Solution**: Install a Nerd Font on Windows and configure Windows Terminal to use it:
784
-
785
- 1. Download a Nerd Font from https://www.nerdfonts.com/font-downloads (MesloLGS NF recommended)
786
- 2. Install the font on Windows by double-clicking the .ttf file
787
- 3. Open Windows Terminal settings (Ctrl+,)
788
- 4. Select your Ubuntu profile
789
- 5. Under "Appearance", set "Font face" to your installed Nerd Font
790
-
791
- **Problem**: Slow startup in WSL
792
-
793
- **Solution**: Windows Defender scanning can slow WSL. Add exclusions for WSL directories:
794
-
795
- ```powershell
796
- # Run in Windows PowerShell as Administrator
797
- Add-MpPreference -ExclusionPath "\\wsl$\Ubuntu"
798
- Add-MpPreference -ExclusionPath "$env:LOCALAPPDATA\Packages\*Ubuntu*"
799
- ```
800
-
801
- ---
802
-
803
- ### Git Bash (Not Supported)
804
-
805
- #### Platform Status
806
-
807
- Oh My Zsh is **not supported** on Git Bash (Windows).
808
-
809
- Oh My Zsh is a framework specifically designed for the Zsh shell, which is not available on native Windows environments. Git Bash uses a MinGW-based Bash shell and does not support Zsh.
810
-
811
- #### Recommended Alternatives
812
-
813
- **Option 1: Use WSL (Windows Subsystem for Linux)**
814
-
815
- WSL provides a full Linux environment where you can install and use Oh My Zsh. See the WSL installation section above.
816
-
817
- To install WSL from an Administrator PowerShell:
818
-
819
- ```powershell
820
- wsl --install
821
- ```
822
-
823
- After installation and reboot, follow the WSL (Ubuntu) installation steps.
824
-
825
- **Option 2: Use Oh My Bash**
826
-
827
- If you prefer to stay in Git Bash, consider [Oh My Bash](https://github.com/ohmybash/oh-my-bash), which provides similar functionality for Bash:
828
-
829
- ```bash
830
- bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"
831
- ```
832
-
833
- **Option 3: Use PowerShell with Oh My Posh**
834
-
835
- For a modern Windows shell experience, consider [Oh My Posh](https://ohmyposh.dev/) with PowerShell:
836
-
837
- ```powershell
838
- winget install --id JanDeDobbeleer.OhMyPosh --silent --accept-package-agreements --accept-source-agreements
839
- ```
840
-
841
- ---
842
-
843
- ## Post-Installation Configuration
844
-
845
- After installing Oh My Zsh on any platform, consider these common configurations.
846
-
847
- ### Changing the Theme
848
-
849
- Oh My Zsh includes 140+ themes. View available themes:
850
-
851
- ```bash
852
- ls ~/.oh-my-zsh/themes
853
- ```
854
-
855
- Change your theme by editing `~/.zshrc`:
856
-
857
- ```bash
858
- # Edit ~/.zshrc and change ZSH_THEME
859
- ZSH_THEME="agnoster"
860
- ```
861
-
862
- Popular themes include:
863
- - `robbyrussell` (default) - Simple and clean
864
- - `agnoster` - Informative with git status (requires Powerline font)
865
- - `avit` - Minimal two-line prompt
866
- - `bira` - Colorful with user/host info
867
-
868
- Apply the change:
869
-
870
- ```bash
871
- source ~/.zshrc
872
- ```
873
-
874
- ### Enabling Plugins
875
-
876
- Oh My Zsh includes 300+ plugins. View available plugins:
877
-
878
- ```bash
879
- ls ~/.oh-my-zsh/plugins
880
- ```
881
-
882
- Enable plugins by editing the `plugins` line in `~/.zshrc`:
883
-
884
- ```bash
885
- plugins=(git docker npm node kubectl aws)
886
- ```
887
-
888
- Commonly used plugins:
889
- - `git` - Git aliases and functions (enabled by default)
890
- - `docker` - Docker command completion
891
- - `npm` / `yarn` - Node.js package manager completions
892
- - `kubectl` - Kubernetes command completion
893
- - `aws` - AWS CLI completions
894
- - `z` - Directory jumping based on frecency
895
- - `history` - History search shortcuts
896
-
897
- Apply the change:
898
-
899
- ```bash
900
- source ~/.zshrc
901
- ```
902
-
903
- ### Installing Custom Plugins
904
-
905
- Install third-party plugins to the custom plugins directory:
906
-
907
- **zsh-autosuggestions** (suggests commands as you type):
908
-
909
- ```bash
910
- git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
911
- ```
912
-
913
- **zsh-syntax-highlighting** (highlights valid commands in green):
914
-
915
- ```bash
916
- git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
917
- ```
918
-
919
- Then add them to your plugins list in `~/.zshrc`:
920
-
921
- ```bash
922
- plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
923
- ```
924
-
925
- ### Updating Oh My Zsh
926
-
927
- Oh My Zsh can update itself. Run:
928
-
929
- ```bash
930
- omz update
931
- ```
932
-
933
- Or for unattended updates, call the upgrade script directly:
934
-
935
- ```bash
936
- $ZSH/tools/upgrade.sh
937
- ```
938
-
939
- To enable automatic updates, ensure this line is in your `~/.zshrc`:
940
-
941
- ```bash
942
- zstyle ':omz:update' mode auto
943
- ```
944
-
945
- ### Uninstalling Oh My Zsh
946
-
947
- To completely remove Oh My Zsh:
948
-
949
- ```bash
950
- uninstall_oh_my_zsh
951
- ```
952
-
953
- This will:
954
- - Remove the `~/.oh-my-zsh` directory
955
- - Restore your original `~/.zshrc` from the backup
956
-
957
- ---
958
-
959
- ## Common Issues
960
-
961
- ### Issue: "zsh: command not found" for Various Commands
962
-
963
- **Symptoms**: Commands that work in Bash do not work in Zsh.
964
-
965
- **Solution**: Your PATH may not be configured correctly. Ensure your PATH includes standard directories:
966
-
967
- ```bash
968
- export PATH="$HOME/bin:/usr/local/bin:$PATH"
969
- ```
970
-
971
- Add this line to the top of your `~/.zshrc` if missing.
972
-
973
- ### Issue: "compinit: insecure directories" Warning
974
-
975
- **Symptoms**: Warning message about insecure directories on shell startup.
976
-
977
- **Solution**: Fix directory permissions:
978
-
979
- ```bash
980
- compaudit | xargs chmod g-w,o-w
981
- ```
982
-
983
- Or suppress the warning by adding this before `source $ZSH/oh-my-zsh.sh` in `~/.zshrc`:
984
-
985
- ```bash
986
- ZSH_DISABLE_COMPFIX=true
987
- ```
988
-
989
- ### Issue: Slow Shell Startup
990
-
991
- **Symptoms**: New terminal windows take several seconds to load.
992
-
993
- **Solutions**:
994
-
995
- 1. **Reduce plugins**: Disable unused plugins in `~/.zshrc`
996
-
997
- 2. **Use a simpler theme**: Complex themes like Powerlevel10k with extensive git status checks can be slow
998
-
999
- 3. **Profile startup time**:
1000
-
1001
- ```bash
1002
- time zsh -i -c exit
1003
- ```
1004
-
1005
- 4. **Lazy-load NVM and similar tools**: See the NVM documentation for lazy-loading configuration
1006
-
1007
- ### Issue: Oh My Zsh Not Loading in SSH Sessions
1008
-
1009
- **Symptoms**: SSH sessions start with plain Zsh, not Oh My Zsh.
1010
-
1011
- **Solution**: Ensure your default shell is set correctly:
1012
-
1013
- ```bash
1014
- grep $(whoami) /etc/passwd
1015
- ```
1016
-
1017
- The line should end with `/bin/zsh` or `/usr/bin/zsh`.
1018
-
1019
- Also verify `~/.zshrc` is being sourced. For non-login shells, create `~/.zshenv` with:
1020
-
1021
- ```bash
1022
- source ~/.zshrc
1023
- ```
1024
-
1025
- ### Issue: Themes Display Broken Characters
1026
-
1027
- **Symptoms**: Prompt shows boxes, question marks, or garbled characters.
1028
-
1029
- **Solution**: Install a Nerd Font or Powerline-compatible font:
1030
-
1031
- **On macOS:**
1032
-
1033
- ```bash
1034
- brew tap homebrew/cask-fonts
1035
- brew install --cask font-meslo-lg-nerd-font
1036
- ```
1037
-
1038
- **On Linux:**
1039
-
1040
- ```bash
1041
- mkdir -p ~/.local/share/fonts
1042
- cd ~/.local/share/fonts
1043
- curl -fLo "MesloLGS NF Regular.ttf" https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf
1044
- fc-cache -fv
1045
- ```
1046
-
1047
- Then configure your terminal emulator to use the installed font.
1048
-
1049
- ### Issue: Git Plugin Shows Wrong Branch or Status
1050
-
1051
- **Symptoms**: Git information in prompt is incorrect or outdated.
1052
-
1053
- **Solution**: The git plugin caches information for performance. Force a refresh:
1054
-
1055
- ```bash
1056
- source ~/.zshrc
1057
- ```
1058
-
1059
- Or check if you are in a git repository:
1060
-
1061
- ```bash
1062
- git rev-parse --is-inside-work-tree
1063
- ```
1064
-
1065
- ### Issue: Arrow Keys Not Working in Terminal
1066
-
1067
- **Symptoms**: Arrow keys print escape sequences instead of navigating.
1068
-
1069
- **Solution**: Your terminal may not be set up correctly. Add to `~/.zshrc`:
1070
-
1071
- ```bash
1072
- bindkey -e # Use Emacs key bindings
1073
- # Or for vi mode:
1074
- # bindkey -v
1075
- ```
1076
-
1077
- ---
1078
-
1079
- ## References
1080
-
1081
- - [Oh My Zsh Official Website](https://ohmyz.sh/)
1082
- - [Oh My Zsh GitHub Repository](https://github.com/ohmyzsh/ohmyzsh)
1083
- - [Oh My Zsh Wiki - Installing ZSH](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH)
1084
- - [Oh My Zsh Wiki - Plugins](https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins)
1085
- - [Oh My Zsh Wiki - Themes](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes)
1086
- - [Zsh Official Website](https://www.zsh.org/)
1087
- - [Zsh Documentation](https://zsh.sourceforge.io/Doc/)
1088
- - [Homebrew Zsh Formula](https://formulae.brew.sh/formula/zsh)
1089
- - [Nerd Fonts](https://www.nerdfonts.com/)
1090
- - [zsh-autosuggestions Plugin](https://github.com/zsh-users/zsh-autosuggestions)
1091
- - [zsh-syntax-highlighting Plugin](https://github.com/zsh-users/zsh-syntax-highlighting)
1092
- - [Powerlevel10k Theme](https://github.com/romkatv/powerlevel10k)
1093
- - [Oh My Bash (Alternative for Bash)](https://github.com/ohmybash/oh-my-bash)
1094
- - [Oh My Posh (Alternative for PowerShell)](https://ohmyposh.dev/)