@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,825 +0,0 @@
1
- # Installing Keyboard Maestro
2
-
3
- ## Dependencies
4
-
5
- ### macOS (Homebrew)
6
- - **Required:**
7
- - `Homebrew` - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` or run `dev install homebrew`
8
- - **Optional:** None
9
- - **Auto-installed:** None
10
-
11
- ### Ubuntu (APT/Snap)
12
- - **Required:**
13
- - `apt-get` - Pre-installed on Ubuntu/Debian systems
14
- - Desktop environment (GNOME, KDE, XFCE, etc.) - Required for AutoKey GUI functionality
15
- - **Optional:**
16
- - X11 display server - AutoKey does not work with Wayland; use `sudo apt install xorg` if needed
17
- - **Auto-installed:**
18
- - Python 3 and dependencies - Automatically installed by `sudo apt install autokey-gtk`
19
- - GTK libraries - Automatically installed by `sudo apt install autokey-gtk`
20
-
21
- ### Raspberry Pi OS (APT/Snap)
22
- - **Required:**
23
- - `apt-get` - Pre-installed on Raspberry Pi OS
24
- - Desktop environment - Required for AutoKey GUI functionality (use Raspberry Pi OS with desktop, not Lite)
25
- - **Optional:**
26
- - X11 display server - Default on Raspberry Pi OS, no additional installation needed
27
- - **Auto-installed:**
28
- - Python 3 and dependencies - Automatically installed by `sudo apt install autokey-gtk`
29
- - GTK libraries - Automatically installed by `sudo apt install autokey-gtk`
30
-
31
- ### Amazon Linux (DNF/YUM)
32
- - **Required:** None (installation not supported)
33
- - **Optional:** None
34
- - **Auto-installed:** None
35
-
36
- **Note:** Amazon Linux and RHEL are server operating systems without desktop environments. Desktop automation tools are not applicable. Use shell scripts, cron jobs, or systemd timers for server automation instead.
37
-
38
- ### Windows (Chocolatey/winget)
39
- - **Required:**
40
- - `Chocolatey` - Install via PowerShell (Admin): `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'))` or run `dev install chocolatey`
41
- - OR `winget` - Pre-installed on Windows 10/11 (build 17763 or later)
42
- - Administrator privileges - Required to install system-wide packages
43
- - **Optional:** None
44
- - **Auto-installed:** None
45
-
46
- ### Git Bash (Manual/Portable)
47
- - **Required:**
48
- - `PowerShell` - Pre-installed on all modern Windows versions
49
- - `Chocolatey` or `winget` on Windows host - Install Chocolatey via PowerShell (Admin) as shown above, or use pre-installed winget
50
- - **Optional:**
51
- - `curl` or `wget` - For portable installation method; install via `pacman -S curl` in Git Bash if not available
52
- - `unzip` - For portable installation method; install via `pacman -S unzip` in Git Bash if not available
53
- - **Auto-installed:** None
54
-
55
- ## Overview
56
-
57
- Keyboard Maestro is a powerful macro and automation application for macOS developed by Stairways Software. It enables users to automate virtually any task on their Mac by creating macros that can be triggered by hotkeys, typed strings, application launches, time schedules, and many other triggers. With hundreds of built-in actions including flow control, conditions, looping, and the ability to execute AppleScript, JavaScript for Automation (JXA), and shell scripts, Keyboard Maestro is considered one of the most comprehensive automation tools available for macOS.
58
-
59
- Key capabilities include:
60
-
61
- - **Visual Macro Editor**: Create complex automations without coding using a drag-and-drop interface
62
- - **Trigger Flexibility**: Launch macros via hotkeys, typed text, application events, time schedules, USB device connections, and more
63
- - **Text Expansion**: Create snippets and templates that expand when triggered
64
- - **Clipboard Management**: Multiple named clipboards and clipboard history
65
- - **Window Management**: Control window positions, sizes, and arrangements
66
- - **Application Control**: Automate menu selections, button clicks, and UI interactions
67
- - **Web Automation**: Fill forms, click buttons, and extract data from web pages
68
-
69
- **Important Platform Limitation:** Keyboard Maestro is a **macOS-only** application. There is no official version for Windows, Linux, or any other operating system. Stairways Software has no plans to create versions for other platforms. For other platforms, this documentation covers equivalent automation tools that provide similar functionality.
70
-
71
- | Platform | Tool | Description |
72
- |----------|------|-------------|
73
- | macOS | Keyboard Maestro | Stairways Software's comprehensive macro/automation utility |
74
- | Windows | AutoHotkey | Open-source scripting language for Windows automation |
75
- | Linux | AutoKey | Desktop automation utility for Linux and X11 |
76
-
77
- ## Prerequisites
78
-
79
- Before installing automation tools on any platform, ensure:
80
-
81
- 1. **Internet connectivity** - Required to download packages
82
- 2. **Administrative privileges** - Required for system-wide installation
83
- 3. **Sufficient disk space** - At least 100 MB for installation
84
-
85
- ---
86
-
87
- ## Platform-Specific Installation
88
-
89
- ### macOS (Homebrew)
90
-
91
- Keyboard Maestro is the native macOS automation solution and is available as a Homebrew cask.
92
-
93
- #### Prerequisites
94
-
95
- - macOS 10.13 (High Sierra) or later (macOS 10.15 Catalina or later recommended)
96
- - Homebrew package manager installed
97
- - 64-bit processor (Intel or Apple Silicon natively supported)
98
- - Valid license for full functionality (trial available)
99
-
100
- Verify Homebrew is installed:
101
-
102
- ```bash
103
- brew --version
104
- ```
105
-
106
- If Homebrew is not installed, install it first using `dev install homebrew` or run:
107
-
108
- ```bash
109
- /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
110
- ```
111
-
112
- #### Installation Steps
113
-
114
- Run the following command to install Keyboard Maestro:
115
-
116
- ```bash
117
- brew install --cask --quiet keyboard-maestro
118
- ```
119
-
120
- **Explanation of flags:**
121
- - `--cask`: Indicates this is a macOS application (not a CLI formula)
122
- - `--quiet`: Suppresses non-essential output for non-interactive installation
123
-
124
- The installation downloads Keyboard Maestro and installs it to `/Applications/Keyboard Maestro.app`.
125
-
126
- #### Verification
127
-
128
- Confirm the installation succeeded:
129
-
130
- ```bash
131
- ls -la "/Applications/Keyboard Maestro.app" && echo "Keyboard Maestro is installed"
132
- ```
133
-
134
- You can also verify by checking the Homebrew list:
135
-
136
- ```bash
137
- brew list --cask | grep keyboard-maestro
138
- ```
139
-
140
- #### Troubleshooting
141
-
142
- **Installation fails with permission errors:**
143
-
144
- ```bash
145
- # Reset Homebrew cask cache and retry
146
- brew cleanup
147
- brew install --cask --quiet keyboard-maestro
148
- ```
149
-
150
- **Keyboard Maestro fails to open with "cannot be opened" error:**
151
-
152
- This occurs when macOS Gatekeeper blocks the application:
153
-
154
- ```bash
155
- xattr -cr "/Applications/Keyboard Maestro.app"
156
- ```
157
-
158
- **Keyboard Maestro requires Accessibility permissions:**
159
-
160
- On first launch, Keyboard Maestro will request Accessibility permissions. This is required for the application to control other applications and respond to global hotkeys. Grant access via:
161
-
162
- 1. Open System Settings (or System Preferences on older macOS)
163
- 2. Navigate to Privacy & Security > Accessibility
164
- 3. Enable the toggle for Keyboard Maestro
165
-
166
- To automate granting Accessibility permissions (requires admin privileges and disabling SIP, not recommended for most users):
167
-
168
- ```bash
169
- # View current Accessibility database (informational only)
170
- sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" "SELECT * FROM access WHERE service='kTCCServiceAccessibility';"
171
- ```
172
-
173
- **Upgrading from a previous version:**
174
-
175
- ```bash
176
- brew upgrade --cask keyboard-maestro
177
- ```
178
-
179
- ---
180
-
181
- ### Ubuntu/Debian (APT)
182
-
183
- **Keyboard Maestro is NOT available on Ubuntu or Debian.** It is a macOS-only application.
184
-
185
- Use **AutoKey** as the equivalent automation tool for Linux. AutoKey is a desktop automation utility for Linux and X11 that provides text expansion and scripting capabilities similar to Keyboard Maestro.
186
-
187
- #### Prerequisites
188
-
189
- - Ubuntu 20.04 LTS or later, or Debian 11 (Bullseye) or later
190
- - X11 display server (AutoKey does not work with Wayland)
191
- - sudo privileges
192
- - Desktop environment (GNOME, KDE, XFCE, etc.)
193
-
194
- **Important**: AutoKey requires X11 and will not function correctly when Wayland is in use. To check your display server:
195
-
196
- ```bash
197
- echo $XDG_SESSION_TYPE
198
- ```
199
-
200
- If it returns "wayland", you need to switch to X11 or use an alternative tool.
201
-
202
- #### Installation Steps
203
-
204
- Run the following commands to install AutoKey with the GTK interface (recommended for GNOME, MATE, Unity, Cinnamon):
205
-
206
- ```bash
207
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
208
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y autokey-gtk
209
- ```
210
-
211
- **For KDE Plasma, LXQt, or other Qt-based desktop environments**, install the Qt version instead:
212
-
213
- ```bash
214
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
215
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y autokey-qt
216
- ```
217
-
218
- The `DEBIAN_FRONTEND=noninteractive` environment variable and `-y` flag ensure fully unattended installation without prompts.
219
-
220
- #### Verification
221
-
222
- Confirm AutoKey installed successfully:
223
-
224
- ```bash
225
- autokey-gtk --version 2>/dev/null || autokey-qt --version 2>/dev/null
226
- ```
227
-
228
- Expected output (version numbers may vary):
229
-
230
- ```
231
- autokey 0.95.10
232
- ```
233
-
234
- Verify the application is available:
235
-
236
- ```bash
237
- which autokey-gtk || which autokey-qt
238
- ```
239
-
240
- #### Troubleshooting
241
-
242
- **Problem**: `E: Unable to locate package autokey-gtk`
243
-
244
- **Solution**: Update the package index and ensure universe repository is enabled:
245
-
246
- ```bash
247
- sudo add-apt-repository universe -y
248
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
249
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y autokey-gtk
250
- ```
251
-
252
- **Problem**: AutoKey crashes or fails to detect keypresses
253
-
254
- **Solution**: AutoKey requires X11. If you are using Wayland, log out and select "Ubuntu on Xorg" (or similar X11 session) from the login screen.
255
-
256
- **Problem**: AutoKey does not start automatically at login
257
-
258
- **Solution**: Add AutoKey to startup applications:
259
-
260
- ```bash
261
- mkdir -p ~/.config/autostart
262
- cat > ~/.config/autostart/autokey-gtk.desktop << 'EOF'
263
- [Desktop Entry]
264
- Type=Application
265
- Name=AutoKey
266
- Exec=autokey-gtk
267
- Hidden=false
268
- NoDisplay=false
269
- X-GNOME-Autostart-enabled=true
270
- EOF
271
- ```
272
-
273
- ---
274
-
275
- ### Raspberry Pi OS (APT)
276
-
277
- **Keyboard Maestro is NOT available on Raspberry Pi OS.** It is a macOS-only application.
278
-
279
- Use **AutoKey** as the equivalent automation tool. The installation process is identical to Ubuntu/Debian since Raspberry Pi OS is Debian-based.
280
-
281
- #### Prerequisites
282
-
283
- - Raspberry Pi OS (Bookworm or Bullseye) with desktop environment
284
- - Raspberry Pi 3 or later (earlier models have limited performance)
285
- - X11 display server (default on Raspberry Pi OS)
286
- - sudo privileges
287
-
288
- **Note on ARM Architecture**: AutoKey is available pre-compiled for ARM architecture in the Raspberry Pi OS repositories. No special configuration is required.
289
-
290
- #### Installation Steps
291
-
292
- Run the following commands to install AutoKey:
293
-
294
- ```bash
295
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
296
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y autokey-gtk
297
- ```
298
-
299
- **Note**: The GTK version is recommended for Raspberry Pi OS as it uses the LXDE/LXQt desktop environment by default.
300
-
301
- #### Verification
302
-
303
- Confirm the installation succeeded:
304
-
305
- ```bash
306
- autokey-gtk --version
307
- ```
308
-
309
- Expected output (version numbers may vary):
310
-
311
- ```
312
- autokey 0.95.10
313
- ```
314
-
315
- Launch AutoKey to verify it works:
316
-
317
- ```bash
318
- autokey-gtk &
319
- ```
320
-
321
- #### Troubleshooting
322
-
323
- **Problem**: AutoKey is slow or unresponsive on Raspberry Pi
324
-
325
- **Solution**: AutoKey can be resource-intensive. On Raspberry Pi 3, close other applications when using AutoKey. Raspberry Pi 4 or 5 is recommended for better performance.
326
-
327
- **Problem**: AutoKey does not detect keyboard input
328
-
329
- **Solution**: Ensure you are running a full desktop session (not SSH or headless). AutoKey requires direct access to the X11 display:
330
-
331
- ```bash
332
- # Verify X11 is running
333
- echo $DISPLAY
334
- ```
335
-
336
- If empty, you are not in a graphical session.
337
-
338
- **Problem**: Package not found in Raspberry Pi OS Lite
339
-
340
- **Solution**: Raspberry Pi OS Lite does not include a desktop environment. Install the full desktop first or use Raspberry Pi OS with desktop.
341
-
342
- ---
343
-
344
- ### Amazon Linux/RHEL (YUM/DNF)
345
-
346
- **Keyboard Maestro is NOT available on Amazon Linux or RHEL.** It is a macOS-only application.
347
-
348
- Amazon Linux and RHEL are primarily server operating systems without desktop environments by default. Desktop automation tools like Keyboard Maestro or AutoKey are not applicable to these platforms in typical use cases.
349
-
350
- #### Prerequisites
351
-
352
- - Amazon Linux 2, Amazon Linux 2023, RHEL 7/8/9, or compatible
353
- - Desktop environment installed (optional, for GUI-based automation)
354
- - sudo privileges
355
-
356
- #### Installation Steps
357
-
358
- **For headless/server automation**, use shell scripting, cron jobs, or systemd timers instead of GUI-based automation tools:
359
-
360
- ```bash
361
- # Example: Create a simple automation script
362
- cat > ~/automation-script.sh << 'EOF'
363
- #!/bin/bash
364
- # Your automation commands here
365
- echo "Automated task executed at $(date)"
366
- EOF
367
- chmod +x ~/automation-script.sh
368
-
369
- # Schedule with cron (runs every hour)
370
- (crontab -l 2>/dev/null; echo "0 * * * * ~/automation-script.sh") | crontab -
371
- ```
372
-
373
- **For desktop automation** (if a desktop environment is installed), AutoKey can be compiled from source:
374
-
375
- **Step 1: Install dependencies (Amazon Linux 2023 / RHEL 8+)**
376
-
377
- ```bash
378
- sudo dnf install -y python3 python3-pip python3-dbus python3-gobject gtk3 wmctrl
379
- ```
380
-
381
- **Step 2: Install AutoKey via pip**
382
-
383
- ```bash
384
- pip3 install --user autokey
385
- ```
386
-
387
- **Note**: This method is not recommended for production servers. Amazon Linux is designed for server workloads, not desktop automation.
388
-
389
- #### Verification
390
-
391
- For shell-based automation:
392
-
393
- ```bash
394
- crontab -l | grep automation-script && echo "Automation script scheduled"
395
- ```
396
-
397
- #### Troubleshooting
398
-
399
- **Problem**: No desktop environment available
400
-
401
- **Solution**: Amazon Linux is a server OS. If you need GUI automation, consider using a different distribution with desktop support, or use headless automation techniques (shell scripts, APIs, etc.).
402
-
403
- **Problem**: pip3 install fails with permission errors
404
-
405
- **Solution**: Use the `--user` flag to install to your home directory:
406
-
407
- ```bash
408
- pip3 install --user autokey
409
- ```
410
-
411
- ---
412
-
413
- ### Windows (Chocolatey/winget)
414
-
415
- **Keyboard Maestro is NOT available on Windows.** It is a macOS-only application.
416
-
417
- Use **AutoHotkey** as the equivalent automation tool for Windows. AutoHotkey is an open-source scripting language that allows automation of the Windows GUI and general scripting. It is the most popular Keyboard Maestro alternative for Windows users.
418
-
419
- #### Prerequisites
420
-
421
- - Windows 10 or later (64-bit recommended)
422
- - Administrator PowerShell or Command Prompt
423
- - Chocolatey or winget package manager installed
424
-
425
- Verify Chocolatey is installed:
426
-
427
- ```powershell
428
- choco --version
429
- ```
430
-
431
- Or verify winget:
432
-
433
- ```powershell
434
- winget --version
435
- ```
436
-
437
- #### Installation Steps
438
-
439
- **Install using Chocolatey (Recommended):**
440
-
441
- Open PowerShell or Command Prompt as Administrator and run:
442
-
443
- ```powershell
444
- choco install autohotkey -y
445
- ```
446
-
447
- **Explanation of flags:**
448
- - `-y`: Automatically confirms all prompts for non-interactive installation
449
-
450
- **Install using winget:**
451
-
452
- ```powershell
453
- winget install --id AutoHotkey.AutoHotkey --silent --accept-package-agreements --accept-source-agreements
454
- ```
455
-
456
- **Explanation of flags:**
457
- - `--id AutoHotkey.AutoHotkey`: Specifies the exact package identifier
458
- - `--silent`: Suppresses the installer UI completely
459
- - `--accept-package-agreements`: Automatically accepts the package license
460
- - `--accept-source-agreements`: Automatically accepts the source terms
461
-
462
- #### Verification
463
-
464
- Open a new PowerShell or Command Prompt window (to refresh PATH), then verify:
465
-
466
- ```powershell
467
- where AutoHotkey64.exe
468
- ```
469
-
470
- Expected output:
471
-
472
- ```
473
- C:\Program Files\AutoHotkey\v2\AutoHotkey64.exe
474
- ```
475
-
476
- Or verify via Chocolatey:
477
-
478
- ```powershell
479
- choco list autohotkey
480
- ```
481
-
482
- #### Troubleshooting
483
-
484
- **Problem**: `AutoHotkey64.exe` not found after installation
485
-
486
- **Solution**: Open a new terminal window to refresh the PATH. If the issue persists, verify installation:
487
-
488
- ```powershell
489
- # Check Chocolatey installation
490
- choco list --local-only | findstr autohotkey
491
-
492
- # Or check winget installation
493
- winget list --id AutoHotkey.AutoHotkey
494
- ```
495
-
496
- **Problem**: winget installation prompts for install location
497
-
498
- **Solution**: This was a known issue in older AutoHotkey versions. Update to AutoHotkey v2.0.3 or later, or use Chocolatey instead:
499
-
500
- ```powershell
501
- choco install autohotkey -y
502
- ```
503
-
504
- **Problem**: Scripts do not run due to security policy
505
-
506
- **Solution**: Right-click the .ahk file and select "Run as Administrator", or adjust your system's execution policies.
507
-
508
- **Problem**: Need AutoHotkey v1 instead of v2
509
-
510
- **Solution**: Install the legacy version via Chocolatey:
511
-
512
- ```powershell
513
- choco install autohotkey.install --version=1.1.37.02 -y
514
- ```
515
-
516
- ---
517
-
518
- ### WSL (Ubuntu)
519
-
520
- **Keyboard Maestro cannot run in WSL.** WSL runs a Linux environment where macOS applications are not compatible.
521
-
522
- #### Recommended Approach
523
-
524
- For automation needs in a WSL environment:
525
-
526
- 1. **For Linux automation within WSL**: Install AutoKey (if using WSLg or an X server)
527
- 2. **For Windows automation**: Install AutoHotkey on the Windows host
528
-
529
- #### Prerequisites
530
-
531
- - WSL 2 with Ubuntu installed
532
- - WSLg (Windows 11) or X server configured for GUI applications
533
- - sudo privileges within WSL
534
-
535
- #### Installation Steps
536
-
537
- **For GUI automation within WSL (requires WSLg or X server):**
538
-
539
- ```bash
540
- sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
541
- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y autokey-gtk
542
- ```
543
-
544
- **To install AutoHotkey on the Windows host from within WSL:**
545
-
546
- ```bash
547
- powershell.exe -Command "choco install autohotkey -y"
548
- ```
549
-
550
- Or using winget:
551
-
552
- ```bash
553
- powershell.exe -Command "winget install --id AutoHotkey.AutoHotkey --silent --accept-package-agreements --accept-source-agreements"
554
- ```
555
-
556
- #### Verification
557
-
558
- Verify AutoKey in WSL (if installed):
559
-
560
- ```bash
561
- autokey-gtk --version
562
- ```
563
-
564
- Check AutoHotkey on Windows host:
565
-
566
- ```bash
567
- powershell.exe -Command "where.exe AutoHotkey64.exe"
568
- ```
569
-
570
- #### Troubleshooting
571
-
572
- **Problem**: AutoKey fails to launch with display errors
573
-
574
- **Solution**: AutoKey requires an X11 display. On Windows 11 with WSLg, it should work automatically. On Windows 10, install an X server (VcXsrv or Xming) and export the display:
575
-
576
- ```bash
577
- export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
578
- ```
579
-
580
- **Problem**: PowerShell command fails from WSL
581
-
582
- **Solution**: Use the full path to PowerShell:
583
-
584
- ```bash
585
- /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -Command "choco install autohotkey -y"
586
- ```
587
-
588
- ---
589
-
590
- ### Git Bash (Manual/Portable)
591
-
592
- Git Bash runs within Windows, so use **AutoHotkey** for automation. AutoHotkey can be installed system-wide via Chocolatey (recommended) or as a portable installation.
593
-
594
- #### Prerequisites
595
-
596
- - Windows 10 or later
597
- - Git Bash installed (comes with Git for Windows)
598
- - Administrator privileges (for system installation) or write access to install directory (for portable)
599
-
600
- #### Installation Steps
601
-
602
- **Option A: Install via Chocolatey from Git Bash (Recommended)**
603
-
604
- If Chocolatey is installed, run from Git Bash:
605
-
606
- ```bash
607
- powershell.exe -Command "choco install autohotkey -y"
608
- ```
609
-
610
- **Option B: Download portable version**
611
-
612
- Download and extract AutoHotkey to a local directory:
613
-
614
- ```bash
615
- # Create installation directory
616
- mkdir -p "$HOME/Apps/AutoHotkey"
617
-
618
- # Download AutoHotkey portable
619
- curl -L -o "$HOME/Apps/AutoHotkey/AutoHotkey.zip" \
620
- "https://github.com/AutoHotkey/AutoHotkey/releases/download/v2.0.19/AutoHotkey_2.0.19.zip"
621
-
622
- # Extract the archive
623
- unzip -q "$HOME/Apps/AutoHotkey/AutoHotkey.zip" -d "$HOME/Apps/AutoHotkey/"
624
-
625
- # Remove the zip file to save space
626
- rm "$HOME/Apps/AutoHotkey/AutoHotkey.zip"
627
-
628
- # Create alias for convenience
629
- echo 'alias ahk="$HOME/Apps/AutoHotkey/AutoHotkey64.exe"' >> ~/.bashrc
630
- source ~/.bashrc
631
- ```
632
-
633
- #### Verification
634
-
635
- **For system installation:**
636
-
637
- ```bash
638
- powershell.exe -Command "where.exe AutoHotkey64.exe"
639
- ```
640
-
641
- **For portable installation:**
642
-
643
- ```bash
644
- if [[ -f "$HOME/Apps/AutoHotkey/AutoHotkey64.exe" ]]; then
645
- echo "AutoHotkey (portable) is installed"
646
- else
647
- echo "AutoHotkey is NOT installed"
648
- fi
649
- ```
650
-
651
- Test AutoHotkey with a simple script:
652
-
653
- ```bash
654
- # Create a test script
655
- echo 'MsgBox "AutoHotkey is working!"' > /tmp/test.ahk
656
-
657
- # Run the script (Windows will open a message box)
658
- "$HOME/Apps/AutoHotkey/AutoHotkey64.exe" "$(cygpath -w /tmp/test.ahk)"
659
- ```
660
-
661
- #### Troubleshooting
662
-
663
- **Problem**: curl download fails
664
-
665
- **Solution**: Use wget as an alternative:
666
-
667
- ```bash
668
- wget -O "$HOME/Apps/AutoHotkey/AutoHotkey.zip" \
669
- "https://github.com/AutoHotkey/AutoHotkey/releases/download/v2.0.19/AutoHotkey_2.0.19.zip"
670
- ```
671
-
672
- **Problem**: unzip not found
673
-
674
- **Solution**: Extract using PowerShell:
675
-
676
- ```bash
677
- powershell.exe -Command "Expand-Archive -Path '$HOME/Apps/AutoHotkey/AutoHotkey.zip' -DestinationPath '$HOME/Apps/AutoHotkey/' -Force"
678
- ```
679
-
680
- **Problem**: AutoHotkey script does not run from Git Bash
681
-
682
- **Solution**: Convert the path to Windows format using `cygpath`:
683
-
684
- ```bash
685
- "$HOME/Apps/AutoHotkey/AutoHotkey64.exe" "$(cygpath -w /path/to/script.ahk)"
686
- ```
687
-
688
- ---
689
-
690
- ## Post-Installation Configuration
691
-
692
- ### macOS (Keyboard Maestro)
693
-
694
- After installing Keyboard Maestro on macOS:
695
-
696
- 1. **Grant Accessibility Permissions**: On first launch, grant Accessibility permissions in System Settings > Privacy & Security > Accessibility. This is required for Keyboard Maestro to control other applications.
697
-
698
- 2. **Grant Automation Permissions**: When Keyboard Maestro attempts to control an application, macOS will prompt for permission. Grant access for each application you want to automate.
699
-
700
- 3. **License Activation**: Purchase a license from https://purchase.keyboardmaestro.com/ (US$36) or continue with the trial. The trial is fully functional but displays a reminder dialog.
701
-
702
- 4. **Enable the Keyboard Maestro Engine**: Ensure the Keyboard Maestro Engine is running (appears in the menu bar). This background process is required for macros to trigger.
703
-
704
- 5. **Import Macros**: If migrating from another machine, import your macro library via File > Import Macros.
705
-
706
- ### Windows (AutoHotkey)
707
-
708
- After installing AutoHotkey on Windows:
709
-
710
- 1. **Create Your First Script**: AutoHotkey scripts use the `.ahk` extension. Create a file named `MyScript.ahk`:
711
-
712
- ```autohotkey
713
- ; Example: Press Win+N to open Notepad
714
- #n::Run "notepad.exe"
715
-
716
- ; Example: Text expansion - type "btw" to expand to "by the way"
717
- ::btw::by the way
718
- ```
719
-
720
- 2. **Run Scripts at Startup**: Place your .ahk files in the Startup folder:
721
-
722
- ```powershell
723
- # Open the Startup folder
724
- explorer shell:startup
725
- ```
726
-
727
- 3. **Compile Scripts (Optional)**: Convert .ahk scripts to standalone .exe files using the AutoHotkey compiler (Ahk2Exe) included with the installation.
728
-
729
- ### Linux (AutoKey)
730
-
731
- After installing AutoKey on Linux:
732
-
733
- 1. **First Launch**: Launch AutoKey from your application menu or run `autokey-gtk` (or `autokey-qt`).
734
-
735
- 2. **Create Phrases**: For text expansion, create a new phrase in the AutoKey window.
736
-
737
- 3. **Create Scripts**: For complex automation, create Python scripts that can simulate keypresses, mouse clicks, and more.
738
-
739
- 4. **Configure Autostart**: Enable AutoKey to start automatically at login through the application preferences or by creating a .desktop file.
740
-
741
- ---
742
-
743
- ## Common Issues
744
-
745
- ### Cross-Platform Issues
746
-
747
- | Issue | Cause | Solution |
748
- |-------|-------|----------|
749
- | Package manager not found | Package manager not installed | Install the appropriate package manager for your platform first |
750
- | Permission denied | Insufficient privileges | Run commands with sudo (Linux/macOS) or as Administrator (Windows) |
751
- | Download fails | Network connectivity issues | Check internet connection; try alternative download sources |
752
-
753
- ### macOS-Specific Issues (Keyboard Maestro)
754
-
755
- | Issue | Solution |
756
- |-------|----------|
757
- | "Keyboard Maestro Engine is not running" | Launch Keyboard Maestro.app; the Engine starts automatically |
758
- | Macros do not trigger | Grant Accessibility permissions in System Settings > Privacy & Security |
759
- | Application control fails | Grant Automation permissions when prompted by macOS |
760
- | Homebrew cask outdated | Run `brew update && brew upgrade --cask keyboard-maestro` |
761
-
762
- ### Windows-Specific Issues (AutoHotkey)
763
-
764
- | Issue | Solution |
765
- |-------|----------|
766
- | Scripts blocked by antivirus | Add AutoHotkey to antivirus exclusions |
767
- | Hotkeys do not work in elevated apps | Run AutoHotkey script as Administrator |
768
- | v1 scripts fail in v2 | AutoHotkey v2 has different syntax; use v1 for legacy scripts |
769
-
770
- ### Linux-Specific Issues (AutoKey)
771
-
772
- | Issue | Solution |
773
- |-------|----------|
774
- | AutoKey does not start | Ensure X11 is running (not Wayland); check `echo $XDG_SESSION_TYPE` |
775
- | Phrases do not expand | Verify trigger phrase and ensure AutoKey is running in system tray |
776
- | Permission errors | Add user to `input` group: `sudo usermod -aG input $USER` |
777
-
778
- ---
779
-
780
- ## Feature Comparison
781
-
782
- | Feature | Keyboard Maestro (macOS) | AutoHotkey (Windows) | AutoKey (Linux) |
783
- |---------|--------------------------|----------------------|-----------------|
784
- | GUI Macro Editor | Yes (visual) | No (text-based) | Yes (basic) |
785
- | Text Expansion | Yes | Yes | Yes |
786
- | Hotkey Triggers | Yes | Yes | Yes |
787
- | Application Triggers | Yes | Limited | Limited |
788
- | Time-Based Triggers | Yes | Via Windows Task Scheduler | Via cron |
789
- | Mouse Automation | Yes | Yes | Yes |
790
- | Window Management | Yes | Yes | Limited |
791
- | Scripting Language | AppleScript, JXA, Shell | AutoHotkey Script | Python |
792
- | Price | US$36 (one-time) | Free (open source) | Free (open source) |
793
-
794
- ---
795
-
796
- ## References
797
-
798
- ### macOS (Keyboard Maestro)
799
-
800
- - [Keyboard Maestro Official Website](https://www.keyboardmaestro.com/main/)
801
- - [Keyboard Maestro Download Page](https://www.stairways.com/main/download)
802
- - [Keyboard Maestro Homebrew Cask](https://formulae.brew.sh/cask/keyboard-maestro)
803
- - [Keyboard Maestro Wiki](https://wiki.keyboardmaestro.com/)
804
- - [Keyboard Maestro Forum](https://forum.keyboardmaestro.com/)
805
- - [Stairways Software](https://www.stairways.com/main/)
806
-
807
- ### Windows (AutoHotkey)
808
-
809
- - [AutoHotkey Official Website](https://www.autohotkey.com/)
810
- - [AutoHotkey Documentation](https://www.autohotkey.com/docs/v2/)
811
- - [AutoHotkey GitHub Repository](https://github.com/AutoHotkey/AutoHotkey)
812
- - [AutoHotkey Chocolatey Package](https://community.chocolatey.org/packages/autohotkey)
813
- - [AutoHotkey winget Package](https://winget.run/pkg/AutoHotkey/AutoHotkey)
814
- - [AutoHotkey Forum](https://www.autohotkey.com/boards/)
815
-
816
- ### Linux (AutoKey)
817
-
818
- - [AutoKey GitHub Repository](https://github.com/autokey/autokey)
819
- - [AutoKey Installation Guide](https://github.com/autokey/autokey/wiki/Installing)
820
- - [AutoKey Ubuntu Package](https://packages.ubuntu.com/autokey)
821
-
822
- ### Alternatives and Comparisons
823
-
824
- - [Keyboard Maestro Alternatives (AlternativeTo)](https://alternativeto.net/software/keyboard-maestro/)
825
- - [Keyboard Maestro Forum - Windows Alternatives Discussion](https://forum.keyboardmaestro.com/t/keyboard-maestro-alternatives-for-windows/35013)