@fredlackey/devutils 0.0.18 → 0.1.0

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 (447) hide show
  1. package/README.md +214 -141
  2. package/package.json +8 -83
  3. package/src/api/loader.js +229 -0
  4. package/src/api/registry.json +62 -0
  5. package/src/cli.js +293 -60
  6. package/src/commands/ai/index.js +16 -0
  7. package/src/commands/ai/launch.js +112 -0
  8. package/src/commands/ai/list.js +54 -0
  9. package/src/commands/ai/resume.js +70 -0
  10. package/src/commands/ai/sessions.js +121 -0
  11. package/src/commands/ai/set.js +131 -0
  12. package/src/commands/ai/show.js +74 -0
  13. package/src/commands/ai/tools.js +46 -0
  14. package/src/commands/alias/add.js +93 -0
  15. package/src/commands/alias/helpers.js +107 -0
  16. package/src/commands/alias/index.js +14 -0
  17. package/src/commands/alias/list.js +55 -0
  18. package/src/commands/alias/remove.js +62 -0
  19. package/src/commands/alias/sync.js +109 -0
  20. package/src/commands/api/disable.js +73 -0
  21. package/src/commands/api/enable.js +148 -0
  22. package/src/commands/api/index.js +15 -0
  23. package/src/commands/api/list.js +66 -0
  24. package/src/commands/api/update.js +87 -0
  25. package/src/commands/auth/index.js +15 -0
  26. package/src/commands/auth/list.js +49 -0
  27. package/src/commands/auth/login.js +384 -0
  28. package/src/commands/auth/logout.js +111 -0
  29. package/src/commands/auth/refresh.js +184 -0
  30. package/src/commands/auth/services.js +169 -0
  31. package/src/commands/auth/status.js +104 -0
  32. package/src/commands/config/export.js +224 -0
  33. package/src/commands/config/get.js +52 -0
  34. package/src/commands/config/import.js +308 -0
  35. package/src/commands/config/index.js +17 -0
  36. package/src/commands/config/init.js +143 -0
  37. package/src/commands/config/reset.js +57 -0
  38. package/src/commands/config/set.js +93 -0
  39. package/src/commands/config/show.js +35 -0
  40. package/src/commands/help.js +338 -0
  41. package/src/commands/identity/add.js +133 -0
  42. package/src/commands/identity/index.js +17 -0
  43. package/src/commands/identity/link.js +76 -0
  44. package/src/commands/identity/list.js +48 -0
  45. package/src/commands/identity/remove.js +72 -0
  46. package/src/commands/identity/show.js +65 -0
  47. package/src/commands/identity/sync.js +172 -0
  48. package/src/commands/identity/unlink.js +57 -0
  49. package/src/commands/ignore/add.js +165 -0
  50. package/src/commands/ignore/index.js +14 -0
  51. package/src/commands/ignore/list.js +89 -0
  52. package/src/commands/ignore/markers.js +43 -0
  53. package/src/commands/ignore/remove.js +164 -0
  54. package/src/commands/ignore/show.js +169 -0
  55. package/src/commands/machine/detect.js +122 -0
  56. package/src/commands/machine/index.js +14 -0
  57. package/src/commands/machine/list.js +74 -0
  58. package/src/commands/machine/set.js +106 -0
  59. package/src/commands/machine/show.js +35 -0
  60. package/src/commands/schema.js +152 -0
  61. package/src/commands/search/collections.js +134 -0
  62. package/src/commands/search/get.js +71 -0
  63. package/src/commands/search/index-cmd.js +54 -0
  64. package/src/commands/search/index.js +21 -0
  65. package/src/commands/search/keyword.js +60 -0
  66. package/src/commands/search/qmd.js +70 -0
  67. package/src/commands/search/query.js +64 -0
  68. package/src/commands/search/semantic.js +62 -0
  69. package/src/commands/search/status.js +46 -0
  70. package/src/commands/status.js +224 -171
  71. package/src/commands/tools/check.js +79 -0
  72. package/src/commands/tools/index.js +14 -0
  73. package/src/commands/tools/install.js +110 -0
  74. package/src/commands/tools/list.js +91 -0
  75. package/src/commands/tools/search.js +60 -0
  76. package/src/commands/update.js +83 -112
  77. package/src/commands/util/add.js +151 -0
  78. package/src/commands/util/index.js +15 -0
  79. package/src/commands/util/list.js +97 -0
  80. package/src/commands/util/remove.js +76 -0
  81. package/src/commands/util/run.js +79 -0
  82. package/src/commands/util/show.js +67 -0
  83. package/src/commands/version.js +21 -88
  84. package/src/installers/_template.js +104 -0
  85. package/src/installers/git.js +150 -0
  86. package/src/installers/homebrew.js +190 -0
  87. package/src/installers/node.js +223 -0
  88. package/src/installers/registry.json +29 -0
  89. package/src/lib/config.js +125 -0
  90. package/src/lib/detect.js +74 -0
  91. package/src/lib/errors.js +114 -0
  92. package/src/lib/github.js +315 -0
  93. package/src/lib/installer.js +225 -0
  94. package/src/lib/output.js +239 -0
  95. package/src/lib/platform.js +112 -0
  96. package/src/lib/platforms/amazon-linux.js +41 -0
  97. package/src/lib/platforms/gitbash.js +46 -0
  98. package/src/lib/platforms/macos.js +45 -0
  99. package/src/lib/platforms/raspbian.js +41 -0
  100. package/src/lib/platforms/ubuntu.js +39 -0
  101. package/src/lib/platforms/windows.js +45 -0
  102. package/src/lib/prompt.js +161 -0
  103. package/src/lib/schema.js +211 -0
  104. package/src/lib/shell.js +75 -0
  105. package/src/patterns/gitignore/claude-code.txt +25 -0
  106. package/src/patterns/gitignore/docker.txt +15 -0
  107. package/src/patterns/gitignore/go.txt +24 -0
  108. package/src/patterns/gitignore/java.txt +38 -0
  109. package/src/patterns/gitignore/jetbrains.txt +26 -0
  110. package/src/patterns/gitignore/linux.txt +18 -0
  111. package/src/patterns/gitignore/macos.txt +27 -0
  112. package/src/patterns/gitignore/node.txt +51 -0
  113. package/src/patterns/gitignore/python.txt +55 -0
  114. package/src/patterns/gitignore/rust.txt +14 -0
  115. package/src/patterns/gitignore/terraform.txt +30 -0
  116. package/src/patterns/gitignore/vscode.txt +15 -0
  117. package/src/patterns/gitignore/windows.txt +25 -0
  118. package/src/utils/clone/index.js +165 -0
  119. package/src/utils/git-push/index.js +230 -0
  120. package/src/utils/git-status/index.js +116 -0
  121. package/src/utils/git-status/unix.sh +75 -0
  122. package/src/utils/registry.json +41 -0
  123. package/bin/dev.js +0 -16
  124. package/files/README.md +0 -0
  125. package/files/claude/.claude/commands/setup-context.md +0 -3
  126. package/files/monorepos/_archive/README.md +0 -36
  127. package/files/monorepos/_legacy/README.md +0 -36
  128. package/files/monorepos/ai-docs/README.md +0 -33
  129. package/files/monorepos/apps/README.md +0 -24
  130. package/files/monorepos/docs/README.md +0 -40
  131. package/files/monorepos/packages/README.md +0 -25
  132. package/files/monorepos/research/README.md +0 -29
  133. package/files/monorepos/scripts/README.md +0 -24
  134. package/src/commands/README.md +0 -41
  135. package/src/commands/configure.js +0 -199
  136. package/src/commands/identity.js +0 -1630
  137. package/src/commands/ignore.js +0 -247
  138. package/src/commands/install.js +0 -526
  139. package/src/commands/setup.js +0 -246
  140. package/src/completion.js +0 -284
  141. package/src/constants.js +0 -45
  142. package/src/ignore/claude-code.txt +0 -10
  143. package/src/ignore/docker.txt +0 -18
  144. package/src/ignore/linux.txt +0 -23
  145. package/src/ignore/macos.txt +0 -36
  146. package/src/ignore/node.txt +0 -55
  147. package/src/ignore/terraform.txt +0 -37
  148. package/src/ignore/vscode.txt +0 -18
  149. package/src/ignore/windows.txt +0 -35
  150. package/src/index.js +0 -0
  151. package/src/installs/README.md +0 -399
  152. package/src/installs/adobe-creative-cloud.js +0 -546
  153. package/src/installs/adobe-creative-cloud.md +0 -605
  154. package/src/installs/appcleaner.js +0 -321
  155. package/src/installs/appcleaner.md +0 -699
  156. package/src/installs/apt-transport-https.js +0 -390
  157. package/src/installs/apt-transport-https.md +0 -678
  158. package/src/installs/atomicparsley.js +0 -642
  159. package/src/installs/atomicparsley.md +0 -795
  160. package/src/installs/aws-cli.js +0 -797
  161. package/src/installs/aws-cli.md +0 -727
  162. package/src/installs/balena-etcher.js +0 -710
  163. package/src/installs/balena-etcher.md +0 -761
  164. package/src/installs/bambu-studio.js +0 -1143
  165. package/src/installs/bambu-studio.md +0 -780
  166. package/src/installs/bash-completion.js +0 -575
  167. package/src/installs/bash-completion.md +0 -833
  168. package/src/installs/bash.js +0 -417
  169. package/src/installs/bash.md +0 -993
  170. package/src/installs/beyond-compare.js +0 -603
  171. package/src/installs/beyond-compare.md +0 -813
  172. package/src/installs/brave-browser.js +0 -968
  173. package/src/installs/brave-browser.md +0 -650
  174. package/src/installs/build-essential.js +0 -529
  175. package/src/installs/build-essential.md +0 -977
  176. package/src/installs/ca-certificates.js +0 -618
  177. package/src/installs/ca-certificates.md +0 -937
  178. package/src/installs/caffeine.js +0 -508
  179. package/src/installs/caffeine.md +0 -839
  180. package/src/installs/camtasia.js +0 -596
  181. package/src/installs/camtasia.md +0 -762
  182. package/src/installs/chatgpt.js +0 -476
  183. package/src/installs/chatgpt.md +0 -814
  184. package/src/installs/chocolatey.js +0 -456
  185. package/src/installs/chocolatey.md +0 -661
  186. package/src/installs/chrome-canary.js +0 -419
  187. package/src/installs/chrome-canary.md +0 -641
  188. package/src/installs/chromium.js +0 -667
  189. package/src/installs/chromium.md +0 -838
  190. package/src/installs/claude-code.js +0 -576
  191. package/src/installs/claude-code.md +0 -1173
  192. package/src/installs/cloudflare-warp.js +0 -900
  193. package/src/installs/cloudflare-warp.md +0 -1047
  194. package/src/installs/comet-browser.js +0 -588
  195. package/src/installs/comet-browser.md +0 -731
  196. package/src/installs/curl.js +0 -379
  197. package/src/installs/curl.md +0 -714
  198. package/src/installs/cursor.js +0 -579
  199. package/src/installs/cursor.md +0 -970
  200. package/src/installs/dbeaver.js +0 -924
  201. package/src/installs/dbeaver.md +0 -939
  202. package/src/installs/dbschema.js +0 -692
  203. package/src/installs/dbschema.md +0 -925
  204. package/src/installs/dependencies.md +0 -453
  205. package/src/installs/development-tools.js +0 -600
  206. package/src/installs/development-tools.md +0 -977
  207. package/src/installs/docker.js +0 -1029
  208. package/src/installs/docker.md +0 -1109
  209. package/src/installs/drawio.js +0 -1019
  210. package/src/installs/drawio.md +0 -795
  211. package/src/installs/elmedia-player.js +0 -347
  212. package/src/installs/elmedia-player.md +0 -556
  213. package/src/installs/ffmpeg.js +0 -889
  214. package/src/installs/ffmpeg.md +0 -852
  215. package/src/installs/file.js +0 -464
  216. package/src/installs/file.md +0 -987
  217. package/src/installs/gemini-cli.js +0 -811
  218. package/src/installs/gemini-cli.md +0 -1153
  219. package/src/installs/git.js +0 -400
  220. package/src/installs/git.md +0 -907
  221. package/src/installs/gitego.js +0 -949
  222. package/src/installs/gitego.md +0 -1172
  223. package/src/installs/go.js +0 -931
  224. package/src/installs/go.md +0 -958
  225. package/src/installs/google-antigravity.js +0 -913
  226. package/src/installs/google-antigravity.md +0 -1075
  227. package/src/installs/google-chrome.js +0 -833
  228. package/src/installs/google-chrome.md +0 -862
  229. package/src/installs/gpg.js +0 -480
  230. package/src/installs/gpg.md +0 -1056
  231. package/src/installs/homebrew.js +0 -1028
  232. package/src/installs/homebrew.md +0 -988
  233. package/src/installs/imageoptim.js +0 -968
  234. package/src/installs/imageoptim.md +0 -1119
  235. package/src/installs/installers.json +0 -4032
  236. package/src/installs/installers.json.tmp +0 -3953
  237. package/src/installs/jq.js +0 -400
  238. package/src/installs/jq.md +0 -809
  239. package/src/installs/keyboard-maestro.js +0 -719
  240. package/src/installs/keyboard-maestro.md +0 -825
  241. package/src/installs/kiro.js +0 -864
  242. package/src/installs/kiro.md +0 -1015
  243. package/src/installs/latex.js +0 -789
  244. package/src/installs/latex.md +0 -1095
  245. package/src/installs/lftp.js +0 -356
  246. package/src/installs/lftp.md +0 -907
  247. package/src/installs/lsb-release.js +0 -346
  248. package/src/installs/lsb-release.md +0 -814
  249. package/src/installs/messenger.js +0 -847
  250. package/src/installs/messenger.md +0 -900
  251. package/src/installs/microsoft-office.js +0 -568
  252. package/src/installs/microsoft-office.md +0 -760
  253. package/src/installs/microsoft-teams.js +0 -801
  254. package/src/installs/microsoft-teams.md +0 -886
  255. package/src/installs/moom.js +0 -326
  256. package/src/installs/moom.md +0 -570
  257. package/src/installs/node.js +0 -904
  258. package/src/installs/node.md +0 -1153
  259. package/src/installs/nordpass.js +0 -716
  260. package/src/installs/nordpass.md +0 -921
  261. package/src/installs/nordvpn.js +0 -892
  262. package/src/installs/nordvpn.md +0 -1052
  263. package/src/installs/nvm.js +0 -995
  264. package/src/installs/nvm.md +0 -1057
  265. package/src/installs/ohmyzsh.js +0 -529
  266. package/src/installs/ohmyzsh.md +0 -1094
  267. package/src/installs/openssh.js +0 -804
  268. package/src/installs/openssh.md +0 -1056
  269. package/src/installs/pandoc.js +0 -662
  270. package/src/installs/pandoc.md +0 -1036
  271. package/src/installs/parallels-desktop.js +0 -431
  272. package/src/installs/parallels-desktop.md +0 -446
  273. package/src/installs/pinentry.js +0 -510
  274. package/src/installs/pinentry.md +0 -1142
  275. package/src/installs/pngyu.js +0 -869
  276. package/src/installs/pngyu.md +0 -896
  277. package/src/installs/postman.js +0 -799
  278. package/src/installs/postman.md +0 -940
  279. package/src/installs/procps.js +0 -425
  280. package/src/installs/procps.md +0 -851
  281. package/src/installs/safari-tech-preview.js +0 -374
  282. package/src/installs/safari-tech-preview.md +0 -533
  283. package/src/installs/sfnt2woff.js +0 -658
  284. package/src/installs/sfnt2woff.md +0 -795
  285. package/src/installs/shellcheck.js +0 -481
  286. package/src/installs/shellcheck.md +0 -1005
  287. package/src/installs/slack.js +0 -741
  288. package/src/installs/slack.md +0 -865
  289. package/src/installs/snagit.js +0 -585
  290. package/src/installs/snagit.md +0 -844
  291. package/src/installs/software-properties-common.js +0 -372
  292. package/src/installs/software-properties-common.md +0 -805
  293. package/src/installs/spotify.js +0 -877
  294. package/src/installs/spotify.md +0 -901
  295. package/src/installs/studio-3t.js +0 -823
  296. package/src/installs/studio-3t.md +0 -918
  297. package/src/installs/sublime-text.js +0 -804
  298. package/src/installs/sublime-text.md +0 -914
  299. package/src/installs/superwhisper.js +0 -706
  300. package/src/installs/superwhisper.md +0 -630
  301. package/src/installs/tailscale.js +0 -745
  302. package/src/installs/tailscale.md +0 -1100
  303. package/src/installs/tar.js +0 -389
  304. package/src/installs/tar.md +0 -946
  305. package/src/installs/termius.js +0 -798
  306. package/src/installs/termius.md +0 -844
  307. package/src/installs/terraform.js +0 -779
  308. package/src/installs/terraform.md +0 -899
  309. package/src/installs/tfenv.js +0 -778
  310. package/src/installs/tfenv.md +0 -1091
  311. package/src/installs/tidal.js +0 -771
  312. package/src/installs/tidal.md +0 -864
  313. package/src/installs/tmux.js +0 -346
  314. package/src/installs/tmux.md +0 -1030
  315. package/src/installs/tree.js +0 -411
  316. package/src/installs/tree.md +0 -833
  317. package/src/installs/unzip.js +0 -460
  318. package/src/installs/unzip.md +0 -879
  319. package/src/installs/vim.js +0 -421
  320. package/src/installs/vim.md +0 -1040
  321. package/src/installs/vlc.js +0 -821
  322. package/src/installs/vlc.md +0 -927
  323. package/src/installs/vscode.js +0 -843
  324. package/src/installs/vscode.md +0 -1002
  325. package/src/installs/wget.js +0 -420
  326. package/src/installs/wget.md +0 -791
  327. package/src/installs/whatsapp.js +0 -729
  328. package/src/installs/whatsapp.md +0 -854
  329. package/src/installs/winpty.js +0 -352
  330. package/src/installs/winpty.md +0 -620
  331. package/src/installs/woff2.js +0 -553
  332. package/src/installs/woff2.md +0 -977
  333. package/src/installs/wsl.js +0 -572
  334. package/src/installs/wsl.md +0 -699
  335. package/src/installs/xcode-clt.js +0 -520
  336. package/src/installs/xcode-clt.md +0 -351
  337. package/src/installs/xcode.js +0 -560
  338. package/src/installs/xcode.md +0 -573
  339. package/src/installs/yarn.js +0 -824
  340. package/src/installs/yarn.md +0 -1074
  341. package/src/installs/yq.js +0 -654
  342. package/src/installs/yq.md +0 -944
  343. package/src/installs/yt-dlp.js +0 -701
  344. package/src/installs/yt-dlp.md +0 -946
  345. package/src/installs/yum-utils.js +0 -297
  346. package/src/installs/yum-utils.md +0 -648
  347. package/src/installs/zoom.js +0 -759
  348. package/src/installs/zoom.md +0 -884
  349. package/src/installs/zsh.js +0 -455
  350. package/src/installs/zsh.md +0 -1008
  351. package/src/scripts/README.md +0 -617
  352. package/src/scripts/STATUS.md +0 -208
  353. package/src/scripts/afk.js +0 -411
  354. package/src/scripts/backup-all.js +0 -746
  355. package/src/scripts/backup-source.js +0 -727
  356. package/src/scripts/brewd.js +0 -389
  357. package/src/scripts/brewi.js +0 -520
  358. package/src/scripts/brewr.js +0 -527
  359. package/src/scripts/brews.js +0 -477
  360. package/src/scripts/brewu.js +0 -504
  361. package/src/scripts/c.js +0 -201
  362. package/src/scripts/ccurl.js +0 -341
  363. package/src/scripts/certbot-crontab-init.js +0 -504
  364. package/src/scripts/certbot-init.js +0 -657
  365. package/src/scripts/ch.js +0 -355
  366. package/src/scripts/claude-danger.js +0 -268
  367. package/src/scripts/clean-dev.js +0 -435
  368. package/src/scripts/clear-dns-cache.js +0 -541
  369. package/src/scripts/clone.js +0 -435
  370. package/src/scripts/code-all.js +0 -437
  371. package/src/scripts/count-files.js +0 -211
  372. package/src/scripts/count-folders.js +0 -211
  373. package/src/scripts/count.js +0 -264
  374. package/src/scripts/d.js +0 -219
  375. package/src/scripts/datauri.js +0 -389
  376. package/src/scripts/delete-files.js +0 -380
  377. package/src/scripts/docker-clean.js +0 -426
  378. package/src/scripts/dp.js +0 -442
  379. package/src/scripts/e.js +0 -390
  380. package/src/scripts/empty-trash.js +0 -513
  381. package/src/scripts/evm.js +0 -444
  382. package/src/scripts/fetch-github-repos.js +0 -456
  383. package/src/scripts/get-channel.js +0 -345
  384. package/src/scripts/get-course.js +0 -399
  385. package/src/scripts/get-dependencies.js +0 -306
  386. package/src/scripts/get-folder.js +0 -799
  387. package/src/scripts/get-tunes.js +0 -426
  388. package/src/scripts/get-video.js +0 -367
  389. package/src/scripts/git-backup.js +0 -577
  390. package/src/scripts/git-clone.js +0 -493
  391. package/src/scripts/git-pup.js +0 -319
  392. package/src/scripts/git-push.js +0 -396
  393. package/src/scripts/h.js +0 -622
  394. package/src/scripts/hide-desktop-icons.js +0 -499
  395. package/src/scripts/hide-hidden-files.js +0 -538
  396. package/src/scripts/install-dependencies-from.js +0 -456
  397. package/src/scripts/ips.js +0 -663
  398. package/src/scripts/iso.js +0 -370
  399. package/src/scripts/killni.js +0 -577
  400. package/src/scripts/ll.js +0 -467
  401. package/src/scripts/local-ip.js +0 -325
  402. package/src/scripts/m.js +0 -524
  403. package/src/scripts/map.js +0 -309
  404. package/src/scripts/mkd.js +0 -351
  405. package/src/scripts/ncu-update-all.js +0 -457
  406. package/src/scripts/nginx-init.js +0 -718
  407. package/src/scripts/npmi.js +0 -382
  408. package/src/scripts/o.js +0 -511
  409. package/src/scripts/org-by-date.js +0 -338
  410. package/src/scripts/p.js +0 -224
  411. package/src/scripts/packages.js +0 -330
  412. package/src/scripts/path.js +0 -225
  413. package/src/scripts/ports.js +0 -597
  414. package/src/scripts/q.js +0 -305
  415. package/src/scripts/refresh-files.js +0 -394
  416. package/src/scripts/remove-smaller-files.js +0 -516
  417. package/src/scripts/rename-files-with-date.js +0 -533
  418. package/src/scripts/resize-image.js +0 -539
  419. package/src/scripts/rm-safe.js +0 -669
  420. package/src/scripts/s.js +0 -540
  421. package/src/scripts/set-git-public.js +0 -365
  422. package/src/scripts/show-desktop-icons.js +0 -475
  423. package/src/scripts/show-hidden-files.js +0 -472
  424. package/src/scripts/tpa.js +0 -280
  425. package/src/scripts/tpo.js +0 -280
  426. package/src/scripts/u.js +0 -505
  427. package/src/scripts/vpush.js +0 -437
  428. package/src/scripts/y.js +0 -283
  429. package/src/utils/README.md +0 -95
  430. package/src/utils/common/apps.js +0 -143
  431. package/src/utils/common/display.js +0 -157
  432. package/src/utils/common/network.js +0 -185
  433. package/src/utils/common/os.js +0 -294
  434. package/src/utils/common/package-manager.js +0 -301
  435. package/src/utils/common/privileges.js +0 -138
  436. package/src/utils/common/shell.js +0 -261
  437. package/src/utils/macos/apps.js +0 -228
  438. package/src/utils/macos/brew.js +0 -315
  439. package/src/utils/ubuntu/apt.js +0 -307
  440. package/src/utils/ubuntu/desktop.js +0 -292
  441. package/src/utils/ubuntu/snap.js +0 -344
  442. package/src/utils/ubuntu/systemd.js +0 -286
  443. package/src/utils/windows/choco.js +0 -465
  444. package/src/utils/windows/env.js +0 -246
  445. package/src/utils/windows/registry.js +0 -269
  446. package/src/utils/windows/shell.js +0 -240
  447. package/src/utils/windows/winget.js +0 -489
@@ -1,839 +0,0 @@
1
- # Installing Caffeine
2
-
3
- ## Overview
4
-
5
- Caffeine is a utility that prevents your computer from going to sleep, activating the screensaver, or dimming the screen. It is invaluable when you need your computer to stay awake during long-running processes like downloads, presentations, video playback, or software builds. Different implementations exist for each operating system, but they all serve the same core purpose: keeping your machine awake on demand.
6
-
7
- On macOS, Caffeine is a lightweight menu bar application. On Linux, Caffeine is typically a GNOME Shell extension or a system tray indicator. On Windows, Caffeine is a portable utility that simulates keypresses to prevent idle detection.
8
-
9
- ## Dependencies
10
-
11
- ### macOS (Homebrew)
12
- - **Required:**
13
- - Homebrew - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` or run `dev install homebrew`
14
- - **Optional:** None
15
- - **Auto-installed:** None
16
-
17
- ### Ubuntu (APT/Snap)
18
- - **Required:** None (systemd-inhibit is pre-installed on all systemd-based systems)
19
- - **Optional:**
20
- - GNOME Shell - Install via `sudo apt install gnome-shell` (required for gnome-shell-extension-caffeine)
21
- - gnome-extensions CLI tool - Install via `sudo apt install gnome-shell-extensions` (required to enable the GNOME extension)
22
- - **Auto-installed:** None
23
-
24
- ### Raspberry Pi OS (APT/Snap)
25
- - **Required:** None (xset and systemd-inhibit are pre-installed)
26
- - **Optional:** None
27
- - **Auto-installed:** None
28
-
29
- ### Amazon Linux (DNF/YUM)
30
- - **Required:** None (systemd-inhibit is pre-installed on all systemd-based systems)
31
- - **Optional:**
32
- - GNOME Shell - Install via `sudo dnf install gnome-shell` or `sudo yum install gnome-shell` (required for GNOME extension, if available in repositories)
33
- - **Auto-installed:** None
34
-
35
- ### Windows (Chocolatey/winget)
36
- - **Required:**
37
- - Chocolatey - Install via PowerShell as Administrator: `Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))`
38
- - **Optional:** None
39
- - **Auto-installed:** None
40
-
41
- ### Git Bash (Manual/Portable)
42
- - **Required:**
43
- - Windows Caffeine installation - See Windows section above for installation via Chocolatey or manual download from https://www.zhornsoftware.co.uk/caffeine/
44
- - **Optional:**
45
- - Chocolatey - Install via PowerShell as Administrator (enables automated installation from Git Bash)
46
- - **Auto-installed:** None
47
-
48
- ## Prerequisites
49
-
50
- Before installing Caffeine on any platform, ensure:
51
-
52
- 1. **Internet connectivity** - Required to download the package or installer
53
- 2. **Administrative privileges** - Required on most platforms for system-wide installation
54
- 3. **Desktop environment** - Caffeine requires a graphical desktop environment on all platforms (it is not useful on headless servers)
55
-
56
- ## Platform-Specific Installation
57
-
58
- ### macOS (Homebrew)
59
-
60
- #### Prerequisites
61
-
62
- - macOS 11 (Big Sur) or later
63
- - Homebrew package manager installed
64
- - A graphical desktop session (not SSH-only)
65
-
66
- If Homebrew is not installed, install it first:
67
-
68
- ```bash
69
- /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
70
- ```
71
-
72
- #### Installation Steps
73
-
74
- Run the following command to install Caffeine:
75
-
76
- ```bash
77
- brew install --cask --quiet caffeine
78
- ```
79
-
80
- The `--cask` flag specifies that this is a macOS application (not a command-line formula). The `--quiet` flag suppresses non-essential output, making the command suitable for automation scripts.
81
-
82
- **Note**: macOS also includes a built-in command-line utility called `caffeinate` that provides similar functionality without requiring any installation. Use `caffeinate` in Terminal to prevent sleep while the command runs, or `caffeinate -d` to prevent display sleep specifically.
83
-
84
- #### Verification
85
-
86
- Confirm the installation succeeded by checking that the application exists:
87
-
88
- ```bash
89
- ls -la /Applications/Caffeine.app
90
- ```
91
-
92
- Expected output:
93
-
94
- ```
95
- drwxr-xr-x@ 3 user staff 96 Jan 1 12:00 /Applications/Caffeine.app
96
- ```
97
-
98
- Alternatively, launch Caffeine from Spotlight (Cmd+Space, then type "Caffeine") and verify a coffee cup icon appears in the menu bar.
99
-
100
- #### Troubleshooting
101
-
102
- **Problem**: `Error: Cask 'caffeine' is unavailable`
103
-
104
- **Solution**: Update Homebrew to get the latest cask definitions:
105
-
106
- ```bash
107
- brew update
108
- ```
109
-
110
- **Problem**: Installation requires password but script cannot prompt
111
-
112
- **Solution**: Homebrew cask installations may require authentication. Pre-authenticate with sudo before running:
113
-
114
- ```bash
115
- sudo -v && brew install --cask --quiet caffeine
116
- ```
117
-
118
- **Problem**: Caffeine does not appear in menu bar after installation
119
-
120
- **Solution**: Launch the application manually:
121
-
122
- ```bash
123
- open /Applications/Caffeine.app
124
- ```
125
-
126
- To make Caffeine start automatically at login, add it to Login Items in System Preferences > Users & Groups > Login Items.
127
-
128
- **Problem**: macOS Gatekeeper blocks the application
129
-
130
- **Solution**: Approve the application in System Preferences > Security & Privacy > General, or run:
131
-
132
- ```bash
133
- xattr -dr com.apple.quarantine /Applications/Caffeine.app
134
- ```
135
-
136
- ---
137
-
138
- ### Ubuntu/Debian (APT)
139
-
140
- #### Prerequisites
141
-
142
- - Ubuntu 20.04 or later, or Debian 10 or later
143
- - GNOME desktop environment (GNOME Shell)
144
- - sudo privileges
145
-
146
- **Note**: The `gnome-shell-extension-caffeine` package is available in the Ubuntu Universe repository for Ubuntu 20.04 (Focal) and earlier. For Ubuntu 22.04+ and Debian 11+, use the command-line alternative `systemd-inhibit` documented below.
147
-
148
- #### Installation Steps
149
-
150
- For Ubuntu 20.04 LTS and Debian 10/11 with GNOME:
151
-
152
- ```bash
153
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y gnome-shell-extension-caffeine
154
- ```
155
-
156
- After installation, enable the extension:
157
-
158
- ```bash
159
- gnome-extensions enable caffeine@patapon.info
160
- ```
161
-
162
- **Note**: You may need to log out and log back in for the extension to appear in the GNOME Shell top bar.
163
-
164
- **For Ubuntu 22.04+ and newer Debian versions**, the GNOME Shell extension package may not be available or compatible. Use `systemd-inhibit` instead, which is pre-installed on all systemd-based systems:
165
-
166
- ```bash
167
- # Prevent sleep indefinitely (press Ctrl+C to stop)
168
- systemd-inhibit --what=idle:sleep:shutdown sleep infinity
169
- ```
170
-
171
- For background usage in scripts:
172
-
173
- ```bash
174
- # Run a command while preventing sleep
175
- systemd-inhibit --what=idle:sleep your-long-running-command
176
- ```
177
-
178
- #### Verification
179
-
180
- For the GNOME extension, verify the extension is installed and enabled:
181
-
182
- ```bash
183
- gnome-extensions list | grep caffeine
184
- ```
185
-
186
- Expected output:
187
-
188
- ```
189
- caffeine@patapon.info
190
- ```
191
-
192
- Check extension status:
193
-
194
- ```bash
195
- gnome-extensions info caffeine@patapon.info
196
- ```
197
-
198
- For `systemd-inhibit`, verify it is available:
199
-
200
- ```bash
201
- which systemd-inhibit
202
- ```
203
-
204
- Expected output:
205
-
206
- ```
207
- /usr/bin/systemd-inhibit
208
- ```
209
-
210
- #### Troubleshooting
211
-
212
- **Problem**: `E: Unable to locate package gnome-shell-extension-caffeine`
213
-
214
- **Solution**: The package is in the Universe repository (Ubuntu) or main repository (Debian). Enable Universe on Ubuntu:
215
-
216
- ```bash
217
- sudo DEBIAN_FRONTEND=noninteractive add-apt-repository -y universe && sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
218
- ```
219
-
220
- If the package is still unavailable, your Ubuntu/Debian version may be too new. Use `systemd-inhibit` instead.
221
-
222
- **Problem**: Extension installed but not visible in GNOME Shell
223
-
224
- **Solution**: Restart GNOME Shell by logging out and logging back in. On Xorg sessions, you can restart the shell with Alt+F2, then type `r` and press Enter.
225
-
226
- **Problem**: `gnome-extensions: command not found`
227
-
228
- **Solution**: Install the GNOME extensions CLI tool:
229
-
230
- ```bash
231
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y gnome-shell-extensions
232
- ```
233
-
234
- **Problem**: Extension does not work after GNOME upgrade
235
-
236
- **Solution**: The extension may be incompatible with your GNOME Shell version. Check the extension version compatibility:
237
-
238
- ```bash
239
- gnome-shell --version
240
- ```
241
-
242
- If incompatible, use `systemd-inhibit` as the alternative.
243
-
244
- ---
245
-
246
- ### Raspberry Pi OS (APT)
247
-
248
- #### Prerequisites
249
-
250
- - Raspberry Pi OS with desktop (not Lite)
251
- - Raspberry Pi 3B+ or later recommended
252
- - sudo privileges
253
-
254
- **Important**: Raspberry Pi OS uses the LXDE or Wayfire desktop environment by default, not GNOME. The GNOME Shell extension will not work. Use command-line alternatives instead.
255
-
256
- #### Installation Steps
257
-
258
- Raspberry Pi OS includes `xset` for managing display power settings and `systemd-inhibit` for preventing system sleep. No additional installation is required.
259
-
260
- To prevent the display from sleeping, run:
261
-
262
- ```bash
263
- xset s off -dpms
264
- ```
265
-
266
- This command:
267
- - `s off` - Disables the screensaver
268
- - `-dpms` - Disables Display Power Management Signaling (prevents monitor sleep)
269
-
270
- To prevent system sleep while running a long process:
271
-
272
- ```bash
273
- systemd-inhibit --what=idle:sleep your-long-running-command
274
- ```
275
-
276
- For persistent display-on settings, add the xset command to autostart. Create or edit the autostart file:
277
-
278
- ```bash
279
- mkdir -p ~/.config/lxsession/LXDE-pi
280
- echo "@xset s off -dpms" >> ~/.config/lxsession/LXDE-pi/autostart
281
- ```
282
-
283
- #### Verification
284
-
285
- Verify display power management is disabled:
286
-
287
- ```bash
288
- xset q | grep -A2 "DPMS"
289
- ```
290
-
291
- Expected output when DPMS is disabled:
292
-
293
- ```
294
- DPMS (Energy Star):
295
- DPMS is Disabled
296
- ```
297
-
298
- Verify `systemd-inhibit` is available:
299
-
300
- ```bash
301
- which systemd-inhibit
302
- ```
303
-
304
- Expected output:
305
-
306
- ```
307
- /usr/bin/systemd-inhibit
308
- ```
309
-
310
- #### Troubleshooting
311
-
312
- **Problem**: `xset: unable to open display ""`
313
-
314
- **Solution**: You are running in a non-graphical session (SSH). The command must be run from the desktop environment. If you need to set this remotely, specify the display:
315
-
316
- ```bash
317
- DISPLAY=:0 xset s off -dpms
318
- ```
319
-
320
- **Problem**: Screen still blanks after running xset commands
321
-
322
- **Solution**: Raspberry Pi OS may have additional blanking settings in the desktop preferences. Open Raspberry Pi Configuration > Display and disable "Screen Blanking", or run:
323
-
324
- ```bash
325
- sudo raspi-config nonint do_blanking 1
326
- ```
327
-
328
- (Note: `1` disables blanking in raspi-config)
329
-
330
- **Problem**: Settings reset after reboot
331
-
332
- **Solution**: Ensure the autostart file is correctly configured. Verify the file exists and contains the xset command:
333
-
334
- ```bash
335
- cat ~/.config/lxsession/LXDE-pi/autostart
336
- ```
337
-
338
- Alternatively, add to `/etc/xdg/lxsession/LXDE-pi/autostart` for system-wide settings (requires sudo).
339
-
340
- ---
341
-
342
- ### Amazon Linux (DNF/YUM)
343
-
344
- #### Prerequisites
345
-
346
- - Amazon Linux 2023 or Amazon Linux 2
347
- - Desktop environment installed (Amazon Linux is typically headless by default)
348
- - sudo privileges
349
-
350
- **Important**: Amazon Linux is primarily designed for server workloads and does not typically include a desktop environment. If you are running Amazon Linux as a desktop or need to prevent system sleep on a server, use `systemd-inhibit`.
351
-
352
- #### Installation Steps
353
-
354
- Amazon Linux includes `systemd-inhibit` by default. No installation is required.
355
-
356
- To prevent system sleep while running a command:
357
-
358
- ```bash
359
- systemd-inhibit --what=idle:sleep:shutdown your-long-running-command
360
- ```
361
-
362
- To prevent sleep indefinitely (useful during maintenance):
363
-
364
- ```bash
365
- systemd-inhibit --what=idle:sleep:shutdown sleep infinity &
366
- ```
367
-
368
- To run in the background and later stop:
369
-
370
- ```bash
371
- # Start inhibiting (save the PID)
372
- systemd-inhibit --what=idle:sleep:shutdown sleep infinity &
373
- INHIBIT_PID=$!
374
-
375
- # Your long-running work here...
376
-
377
- # Stop inhibiting
378
- kill $INHIBIT_PID
379
- ```
380
-
381
- If you have a desktop environment installed (such as GNOME), you can install the GNOME extension:
382
-
383
- ```bash
384
- sudo dnf install -y gnome-shell-extension-caffeine 2>/dev/null || echo "GNOME extension not available, use systemd-inhibit"
385
- ```
386
-
387
- **Note**: The GNOME extension package may not be available in the default Amazon Linux repositories. Use `systemd-inhibit` as the primary method.
388
-
389
- #### Verification
390
-
391
- Verify `systemd-inhibit` is available:
392
-
393
- ```bash
394
- which systemd-inhibit
395
- ```
396
-
397
- Expected output:
398
-
399
- ```
400
- /usr/bin/systemd-inhibit
401
- ```
402
-
403
- List current inhibitors:
404
-
405
- ```bash
406
- systemd-inhibit --list
407
- ```
408
-
409
- This shows all processes currently preventing sleep or shutdown.
410
-
411
- #### Troubleshooting
412
-
413
- **Problem**: `systemd-inhibit: command not found`
414
-
415
- **Solution**: This should not occur on Amazon Linux 2023 or AL2 as systemd is the init system. Verify systemd is running:
416
-
417
- ```bash
418
- ps -p 1 -o comm=
419
- ```
420
-
421
- Expected output: `systemd`
422
-
423
- **Problem**: System still sleeps despite inhibitor
424
-
425
- **Solution**: Check if the inhibitor is active:
426
-
427
- ```bash
428
- systemd-inhibit --list
429
- ```
430
-
431
- If your inhibitor is not listed, the process may have exited. Use `sleep infinity` to keep the inhibitor running.
432
-
433
- **Problem**: Need to prevent sleep during EC2 instance maintenance
434
-
435
- **Solution**: EC2 instances do not have traditional sleep/suspend mechanisms. The instance will remain running unless explicitly stopped. For long-running processes, use `nohup` or `screen`/`tmux` instead:
436
-
437
- ```bash
438
- nohup your-long-running-command &
439
- ```
440
-
441
- ---
442
-
443
- ### Windows (Chocolatey)
444
-
445
- #### Prerequisites
446
-
447
- - Windows 10 or Windows 11
448
- - Chocolatey package manager installed
449
- - Administrator PowerShell or Command Prompt
450
-
451
- If Chocolatey is not installed, install it first by running this command in an Administrator PowerShell:
452
-
453
- ```powershell
454
- Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
455
- ```
456
-
457
- #### Installation Steps
458
-
459
- Run the following command in an Administrator PowerShell or Command Prompt:
460
-
461
- ```powershell
462
- choco install caffeine -y
463
- ```
464
-
465
- The `-y` flag automatically confirms all prompts, enabling fully non-interactive installation.
466
-
467
- Caffeine will be installed to `C:\ProgramData\chocolatey\lib\caffeine\tools\` and a shortcut may be created in the Start Menu.
468
-
469
- #### Verification
470
-
471
- Confirm the installation succeeded:
472
-
473
- ```powershell
474
- choco list --local-only | findstr caffeine
475
- ```
476
-
477
- Expected output:
478
-
479
- ```
480
- caffeine 1.98.0
481
- ```
482
-
483
- Verify the executable exists:
484
-
485
- ```powershell
486
- dir "C:\ProgramData\chocolatey\lib\caffeine\tools\caffeine.exe"
487
- ```
488
-
489
- Launch Caffeine to verify it works:
490
-
491
- ```powershell
492
- Start-Process "C:\ProgramData\chocolatey\lib\caffeine\tools\caffeine.exe"
493
- ```
494
-
495
- A coffee cup icon should appear in the system tray.
496
-
497
- #### Troubleshooting
498
-
499
- **Problem**: `choco: The term 'choco' is not recognized`
500
-
501
- **Solution**: Chocolatey is not installed or not in PATH. Close all terminal windows, open a new Administrator PowerShell, and verify Chocolatey is installed:
502
-
503
- ```powershell
504
- Get-Command choco
505
- ```
506
-
507
- **Problem**: Installation fails with access denied
508
-
509
- **Solution**: Ensure you are running PowerShell as Administrator. Right-click PowerShell and select "Run as administrator".
510
-
511
- **Problem**: Caffeine does not appear in system tray after launching
512
-
513
- **Solution**: The system tray may be hiding the icon. Click the up arrow (^) in the system tray to show hidden icons. To always show the Caffeine icon, right-click the taskbar > Taskbar settings > Select which icons appear on the taskbar.
514
-
515
- **Problem**: Caffeine does not prevent sleep on corporate/managed computers
516
-
517
- **Solution**: Group Policy may override Caffeine's ability to prevent sleep. Contact your IT administrator, or use the built-in PowerShell command as an alternative:
518
-
519
- ```powershell
520
- # Prevent sleep for 8 hours (28800 seconds)
521
- powercfg -change -standby-timeout-ac 0
522
- ```
523
-
524
- ---
525
-
526
- ### WSL (Ubuntu)
527
-
528
- #### Prerequisites
529
-
530
- - Windows Subsystem for Linux with Ubuntu installed
531
- - WSL 2 recommended
532
- - sudo privileges within WSL
533
-
534
- **Important**: WSL runs in a virtualized Linux environment that does not have direct control over Windows power management. To prevent your Windows host from sleeping, you must use Windows-native tools (see Windows section). WSL tools like `systemd-inhibit` will only affect the WSL environment, not the host.
535
-
536
- #### Installation Steps
537
-
538
- If you need to prevent the WSL session itself from timing out or being affected by Windows sleep, install `systemd-inhibit` support:
539
-
540
- ```bash
541
- # Ensure systemd is enabled in WSL (WSL 2 only)
542
- # Check if systemd is running:
543
- ps -p 1 -o comm=
544
- ```
545
-
546
- If the output is `systemd`, you can use `systemd-inhibit`:
547
-
548
- ```bash
549
- systemd-inhibit --what=idle:sleep your-long-running-command
550
- ```
551
-
552
- If systemd is not running (output is `init`), enable it by creating or editing `/etc/wsl.conf`:
553
-
554
- ```bash
555
- sudo tee /etc/wsl.conf > /dev/null << 'EOF'
556
- [boot]
557
- systemd=true
558
- EOF
559
- ```
560
-
561
- Then restart WSL from PowerShell:
562
-
563
- ```powershell
564
- wsl --shutdown
565
- ```
566
-
567
- After restarting WSL, `systemd-inhibit` will be available.
568
-
569
- **For preventing Windows host sleep from WSL**, call the Windows Caffeine executable:
570
-
571
- ```bash
572
- # If Caffeine is installed on Windows via Chocolatey:
573
- /mnt/c/ProgramData/chocolatey/lib/caffeine/tools/caffeine.exe &
574
- ```
575
-
576
- #### Verification
577
-
578
- Verify systemd is running:
579
-
580
- ```bash
581
- ps -p 1 -o comm=
582
- ```
583
-
584
- Expected output for systemd-enabled WSL:
585
-
586
- ```
587
- systemd
588
- ```
589
-
590
- Verify `systemd-inhibit` is available:
591
-
592
- ```bash
593
- which systemd-inhibit
594
- ```
595
-
596
- Expected output:
597
-
598
- ```
599
- /usr/bin/systemd-inhibit
600
- ```
601
-
602
- #### Troubleshooting
603
-
604
- **Problem**: `systemd-inhibit: command not found`
605
-
606
- **Solution**: Systemd is not enabled in WSL. Follow the steps above to enable systemd in `/etc/wsl.conf` and restart WSL.
607
-
608
- **Problem**: Windows still sleeps even with WSL inhibitor active
609
-
610
- **Solution**: WSL inhibitors do not affect the Windows host. Install and run Caffeine on Windows (see Windows section), or use Windows power settings to disable sleep.
611
-
612
- **Problem**: WSL session terminates when Windows sleeps
613
-
614
- **Solution**: Configure Windows to never sleep when on AC power:
615
-
616
- ```powershell
617
- # Run in Windows PowerShell as Administrator
618
- powercfg -change -standby-timeout-ac 0
619
- ```
620
-
621
- Or install Windows Caffeine and run it before starting long WSL processes.
622
-
623
- ---
624
-
625
- ### Git Bash (Windows Installation)
626
-
627
- #### Prerequisites
628
-
629
- - Windows 10 or Windows 11
630
- - Git Bash installed (comes with Git for Windows)
631
- - Caffeine installed on Windows (see Windows section above)
632
-
633
- **Note**: Git Bash runs on Windows and does not have its own power management. Use Windows Caffeine, which will be accessible from Git Bash once installed.
634
-
635
- #### Installation Steps
636
-
637
- Git Bash inherits the Windows PATH and can access Windows executables. First, install Caffeine on Windows using Chocolatey (from an Administrator Command Prompt or PowerShell):
638
-
639
- ```bash
640
- # From Git Bash, call Windows choco.exe
641
- /c/ProgramData/chocolatey/bin/choco.exe install caffeine -y
642
- ```
643
-
644
- Alternatively, download Caffeine manually:
645
-
646
- ```bash
647
- # Download Caffeine to a local directory
648
- curl -L -o ~/caffeine.zip "https://www.zhornsoftware.co.uk/caffeine/caffeine.zip"
649
-
650
- # Extract (requires unzip or use Windows built-in)
651
- mkdir -p ~/bin
652
- unzip -o ~/caffeine.zip -d ~/bin/
653
-
654
- # The executable is now at ~/bin/caffeine64.exe or ~/bin/caffeine.exe
655
- ```
656
-
657
- After installation, you can launch Caffeine from Git Bash:
658
-
659
- ```bash
660
- # If installed via Chocolatey:
661
- /c/ProgramData/chocolatey/lib/caffeine/tools/caffeine.exe &
662
-
663
- # If downloaded manually:
664
- ~/bin/caffeine64.exe &
665
- ```
666
-
667
- #### Verification
668
-
669
- Verify Caffeine is accessible from Git Bash:
670
-
671
- ```bash
672
- # Check if Chocolatey version exists:
673
- ls -la /c/ProgramData/chocolatey/lib/caffeine/tools/caffeine.exe
674
-
675
- # Or check manual download:
676
- ls -la ~/bin/caffeine*.exe
677
- ```
678
-
679
- Launch Caffeine and verify the system tray icon appears:
680
-
681
- ```bash
682
- /c/ProgramData/chocolatey/lib/caffeine/tools/caffeine.exe &
683
- ```
684
-
685
- #### Troubleshooting
686
-
687
- **Problem**: `No such file or directory` when launching caffeine.exe
688
-
689
- **Solution**: Caffeine may not be installed. Install via Chocolatey from an Administrator prompt:
690
-
691
- ```bash
692
- # Open Windows Command Prompt as Administrator and run:
693
- choco install caffeine -y
694
- ```
695
-
696
- Then retry from Git Bash.
697
-
698
- **Problem**: Git Bash cannot find Windows executables
699
-
700
- **Solution**: Ensure Windows PATH is inherited. Check your Git Bash PATH:
701
-
702
- ```bash
703
- echo $PATH | tr ':' '\n' | grep -i windows
704
- ```
705
-
706
- If Windows paths are not present, add them to your `~/.bashrc`:
707
-
708
- ```bash
709
- echo 'export PATH=$PATH:/c/ProgramData/chocolatey/bin' >> ~/.bashrc
710
- source ~/.bashrc
711
- ```
712
-
713
- **Problem**: Caffeine runs but does not prevent sleep
714
-
715
- **Solution**: Caffeine must remain running to prevent sleep. Use the `&` to background the process, or launch it from Windows Start Menu for persistent operation. To run at startup, add Caffeine to Windows Startup folder.
716
-
717
- **Problem**: Want command-line control without GUI
718
-
719
- **Solution**: Windows Caffeine supports command-line arguments. Run with `-startoff` to start disabled, or specify a timeout:
720
-
721
- ```bash
722
- # Start Caffeine but disabled (click icon to enable)
723
- /c/ProgramData/chocolatey/lib/caffeine/tools/caffeine.exe -startoff &
724
-
725
- # Run for 2 hours then exit (7200 seconds)
726
- /c/ProgramData/chocolatey/lib/caffeine/tools/caffeine.exe -exitafter:120 &
727
- ```
728
-
729
- ---
730
-
731
- ## Post-Installation Configuration
732
-
733
- ### macOS
734
-
735
- To make Caffeine start automatically at login:
736
-
737
- 1. Open System Preferences > Users & Groups
738
- 2. Select your user account
739
- 3. Click the "Login Items" tab
740
- 4. Click the "+" button and add `/Applications/Caffeine.app`
741
-
742
- Alternatively, use the command line:
743
-
744
- ```bash
745
- osascript -e 'tell application "System Events" to make login item at end with properties {path:"/Applications/Caffeine.app", hidden:false}'
746
- ```
747
-
748
- ### Linux (GNOME Extension)
749
-
750
- The GNOME Caffeine extension can be configured to automatically activate when certain applications are running (e.g., video players). Access settings via:
751
-
752
- ```bash
753
- gnome-extensions prefs caffeine@patapon.info
754
- ```
755
-
756
- Or through GNOME Extensions application if installed.
757
-
758
- ### Windows
759
-
760
- To make Caffeine start automatically at login:
761
-
762
- 1. Press Win+R, type `shell:startup`, and press Enter
763
- 2. Create a shortcut to `C:\ProgramData\chocolatey\lib\caffeine\tools\caffeine.exe` in this folder
764
-
765
- Or use the command line in an Administrator PowerShell:
766
-
767
- ```powershell
768
- $WshShell = New-Object -comObject WScript.Shell
769
- $Shortcut = $WshShell.CreateShortcut("$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\Caffeine.lnk")
770
- $Shortcut.TargetPath = "C:\ProgramData\chocolatey\lib\caffeine\tools\caffeine.exe"
771
- $Shortcut.Save()
772
- ```
773
-
774
- ---
775
-
776
- ## Common Issues
777
-
778
- ### Issue: Computer Still Sleeps Despite Caffeine Running
779
-
780
- **Symptoms**: Caffeine appears to be active, but the computer still enters sleep mode.
781
-
782
- **Solution**:
783
- 1. Verify Caffeine is actually running and enabled (check for active/full coffee cup icon)
784
- 2. On macOS, check System Preferences > Battery > Power Adapter and ensure sleep timer is not overriding Caffeine
785
- 3. On Windows, check Power Options in Control Panel for conflicting settings
786
- 4. On Linux, check if another power management service is overriding the inhibitor
787
-
788
- ### Issue: Caffeine Prevents Sleep Even When Disabled
789
-
790
- **Symptoms**: After disabling Caffeine, the computer still does not sleep.
791
-
792
- **Solution**:
793
- 1. Completely quit/exit Caffeine (not just disable)
794
- 2. On macOS, use Cmd+Q or right-click the menu bar icon and select "Quit"
795
- 3. On Windows, right-click the system tray icon and select "Exit"
796
- 4. On Linux, disable the extension or kill the process: `killall caffeine`
797
-
798
- ### Issue: Multiple Caffeine-Like Tools Conflicting
799
-
800
- **Symptoms**: Inconsistent behavior, multiple icons in system tray/menu bar.
801
-
802
- **Solution**: Use only one sleep-prevention tool at a time. Remove or disable others:
803
-
804
- ```bash
805
- # macOS - list running caffeine-like apps
806
- ps aux | grep -i caffeine
807
-
808
- # Linux - check active inhibitors
809
- systemd-inhibit --list
810
-
811
- # Windows - check system tray for multiple icons
812
- ```
813
-
814
- ### Issue: High CPU Usage from Caffeine
815
-
816
- **Symptoms**: Caffeine process consuming excessive CPU.
817
-
818
- **Solution**: This is rare but can happen with older versions. Update to the latest version:
819
-
820
- ```bash
821
- # macOS
822
- brew upgrade --cask caffeine
823
-
824
- # Windows
825
- choco upgrade caffeine -y
826
- ```
827
-
828
- ---
829
-
830
- ## References
831
-
832
- - [Caffeine for macOS - Homebrew Formulae](https://formulae.brew.sh/cask/caffeine)
833
- - [macOS caffeinate command - Apple Developer Documentation](https://developer.apple.com/library/archive/documentation/Darwin/Reference/ManPages/man8/caffeinate.8.html)
834
- - [GNOME Shell Extension Caffeine](https://extensions.gnome.org/extension/517/caffeine/)
835
- - [GNOME Shell Extension Caffeine - GitHub](https://github.com/eonpatapon/gnome-shell-extension-caffeine)
836
- - [systemd-inhibit Manual Page](https://www.freedesktop.org/software/systemd/man/latest/systemd-inhibit.html)
837
- - [Caffeine for Windows - Zhorn Software](https://www.zhornsoftware.co.uk/caffeine/)
838
- - [Caffeine for Windows - Chocolatey Package](https://community.chocolatey.org/packages/caffeine)
839
- - [Raspberry Pi Display Power Management](https://www.raspberrypi.com/documentation/computers/configuration.html)