@fredlackey/devutils 0.0.1 → 0.0.3

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 (259) hide show
  1. package/README.md +5 -5
  2. package/package.json +1 -1
  3. package/src/commands/install.js +374 -36
  4. package/src/installs/adobe-creative-cloud.js +527 -25
  5. package/src/installs/adobe-creative-cloud.md +605 -0
  6. package/src/installs/appcleaner.js +303 -26
  7. package/src/installs/appcleaner.md +699 -0
  8. package/src/installs/apt-transport-https.js +390 -0
  9. package/src/installs/apt-transport-https.md +678 -0
  10. package/src/installs/atomicparsley.js +624 -26
  11. package/src/installs/atomicparsley.md +795 -0
  12. package/src/installs/aws-cli.js +779 -26
  13. package/src/installs/aws-cli.md +727 -0
  14. package/src/installs/balena-etcher.js +688 -26
  15. package/src/installs/balena-etcher.md +761 -0
  16. package/src/installs/bambu-studio.js +912 -26
  17. package/src/installs/bambu-studio.md +780 -0
  18. package/src/installs/bash-completion.js +554 -23
  19. package/src/installs/bash-completion.md +833 -0
  20. package/src/installs/bash.js +399 -26
  21. package/src/installs/bash.md +993 -0
  22. package/src/installs/beyond-compare.js +585 -26
  23. package/src/installs/beyond-compare.md +813 -0
  24. package/src/installs/build-essential.js +511 -26
  25. package/src/installs/build-essential.md +977 -0
  26. package/src/installs/ca-certificates.js +618 -0
  27. package/src/installs/ca-certificates.md +937 -0
  28. package/src/installs/caffeine.js +490 -26
  29. package/src/installs/caffeine.md +839 -0
  30. package/src/installs/camtasia.js +577 -25
  31. package/src/installs/camtasia.md +762 -0
  32. package/src/installs/chatgpt.js +458 -26
  33. package/src/installs/chatgpt.md +814 -0
  34. package/src/installs/chocolatey.js +447 -0
  35. package/src/installs/chocolatey.md +661 -0
  36. package/src/installs/chrome-canary.js +472 -26
  37. package/src/installs/chrome-canary.md +641 -0
  38. package/src/installs/chromium.js +645 -26
  39. package/src/installs/chromium.md +838 -0
  40. package/src/installs/claude-code.js +558 -26
  41. package/src/installs/claude-code.md +1173 -0
  42. package/src/installs/curl.js +361 -26
  43. package/src/installs/curl.md +714 -0
  44. package/src/installs/cursor.js +561 -26
  45. package/src/installs/cursor.md +970 -0
  46. package/src/installs/dbschema.js +674 -26
  47. package/src/installs/dbschema.md +925 -0
  48. package/src/installs/dependencies.md +435 -0
  49. package/src/installs/development-tools.js +600 -0
  50. package/src/installs/development-tools.md +977 -0
  51. package/src/installs/docker.js +1010 -25
  52. package/src/installs/docker.md +1109 -0
  53. package/src/installs/drawio.js +1001 -26
  54. package/src/installs/drawio.md +795 -0
  55. package/src/installs/elmedia-player.js +328 -25
  56. package/src/installs/elmedia-player.md +556 -0
  57. package/src/installs/ffmpeg.js +870 -25
  58. package/src/installs/ffmpeg.md +852 -0
  59. package/src/installs/file.js +464 -0
  60. package/src/installs/file.md +987 -0
  61. package/src/installs/gemini-cli.js +793 -26
  62. package/src/installs/gemini-cli.md +1153 -0
  63. package/src/installs/git.js +382 -26
  64. package/src/installs/git.md +907 -0
  65. package/src/installs/gitego.js +931 -26
  66. package/src/installs/gitego.md +1172 -0
  67. package/src/installs/go.js +913 -26
  68. package/src/installs/go.md +958 -0
  69. package/src/installs/google-chrome.js +801 -25
  70. package/src/installs/google-chrome.md +862 -0
  71. package/src/installs/gpg.js +412 -73
  72. package/src/installs/gpg.md +1056 -0
  73. package/src/installs/homebrew.js +1015 -26
  74. package/src/installs/homebrew.md +988 -0
  75. package/src/installs/imageoptim.js +950 -26
  76. package/src/installs/imageoptim.md +1119 -0
  77. package/src/installs/installers.json +2297 -0
  78. package/src/installs/jq.js +382 -26
  79. package/src/installs/jq.md +809 -0
  80. package/src/installs/keyboard-maestro.js +701 -26
  81. package/src/installs/keyboard-maestro.md +825 -0
  82. package/src/installs/latex.js +771 -26
  83. package/src/installs/latex.md +1095 -0
  84. package/src/installs/lftp.js +338 -26
  85. package/src/installs/lftp.md +907 -0
  86. package/src/installs/lsb-release.js +346 -0
  87. package/src/installs/lsb-release.md +814 -0
  88. package/src/installs/messenger.js +829 -26
  89. package/src/installs/messenger.md +900 -0
  90. package/src/installs/microsoft-office.js +550 -26
  91. package/src/installs/microsoft-office.md +760 -0
  92. package/src/installs/microsoft-teams.js +782 -25
  93. package/src/installs/microsoft-teams.md +886 -0
  94. package/src/installs/node.js +886 -26
  95. package/src/installs/node.md +1153 -0
  96. package/src/installs/nordpass.js +698 -26
  97. package/src/installs/nordpass.md +921 -0
  98. package/src/installs/nvm.js +977 -26
  99. package/src/installs/nvm.md +1057 -0
  100. package/src/installs/openssh.js +734 -64
  101. package/src/installs/openssh.md +1056 -0
  102. package/src/installs/pandoc.js +644 -26
  103. package/src/installs/pandoc.md +1036 -0
  104. package/src/installs/pinentry.js +492 -26
  105. package/src/installs/pinentry.md +1142 -0
  106. package/src/installs/pngyu.js +851 -26
  107. package/src/installs/pngyu.md +896 -0
  108. package/src/installs/postman.js +781 -26
  109. package/src/installs/postman.md +940 -0
  110. package/src/installs/procps.js +425 -0
  111. package/src/installs/procps.md +851 -0
  112. package/src/installs/safari-tech-preview.js +355 -25
  113. package/src/installs/safari-tech-preview.md +533 -0
  114. package/src/installs/sfnt2woff.js +640 -26
  115. package/src/installs/sfnt2woff.md +795 -0
  116. package/src/installs/shellcheck.js +463 -26
  117. package/src/installs/shellcheck.md +1005 -0
  118. package/src/installs/slack.js +722 -25
  119. package/src/installs/slack.md +865 -0
  120. package/src/installs/snagit.js +566 -25
  121. package/src/installs/snagit.md +844 -0
  122. package/src/installs/software-properties-common.js +372 -0
  123. package/src/installs/software-properties-common.md +805 -0
  124. package/src/installs/spotify.js +858 -25
  125. package/src/installs/spotify.md +901 -0
  126. package/src/installs/studio-3t.js +803 -26
  127. package/src/installs/studio-3t.md +918 -0
  128. package/src/installs/sublime-text.js +780 -25
  129. package/src/installs/sublime-text.md +914 -0
  130. package/src/installs/superwhisper.js +687 -25
  131. package/src/installs/superwhisper.md +630 -0
  132. package/src/installs/tailscale.js +727 -26
  133. package/src/installs/tailscale.md +1100 -0
  134. package/src/installs/tar.js +389 -0
  135. package/src/installs/tar.md +946 -0
  136. package/src/installs/termius.js +780 -26
  137. package/src/installs/termius.md +844 -0
  138. package/src/installs/terraform.js +761 -26
  139. package/src/installs/terraform.md +899 -0
  140. package/src/installs/tidal.js +752 -25
  141. package/src/installs/tidal.md +864 -0
  142. package/src/installs/tmux.js +328 -26
  143. package/src/installs/tmux.md +1030 -0
  144. package/src/installs/tree.js +393 -26
  145. package/src/installs/tree.md +833 -0
  146. package/src/installs/unzip.js +460 -0
  147. package/src/installs/unzip.md +879 -0
  148. package/src/installs/vim.js +403 -26
  149. package/src/installs/vim.md +1040 -0
  150. package/src/installs/vlc.js +803 -26
  151. package/src/installs/vlc.md +927 -0
  152. package/src/installs/vscode.js +825 -26
  153. package/src/installs/vscode.md +1002 -0
  154. package/src/installs/wget.js +415 -0
  155. package/src/installs/wget.md +791 -0
  156. package/src/installs/whatsapp.js +710 -25
  157. package/src/installs/whatsapp.md +854 -0
  158. package/src/installs/winpty.js +352 -0
  159. package/src/installs/winpty.md +620 -0
  160. package/src/installs/woff2.js +535 -26
  161. package/src/installs/woff2.md +977 -0
  162. package/src/installs/wsl.js +572 -0
  163. package/src/installs/wsl.md +699 -0
  164. package/src/installs/xcode-clt.js +520 -0
  165. package/src/installs/xcode-clt.md +351 -0
  166. package/src/installs/xcode.js +542 -26
  167. package/src/installs/xcode.md +573 -0
  168. package/src/installs/yarn.js +806 -26
  169. package/src/installs/yarn.md +1074 -0
  170. package/src/installs/yq.js +636 -26
  171. package/src/installs/yq.md +944 -0
  172. package/src/installs/yt-dlp.js +683 -26
  173. package/src/installs/yt-dlp.md +946 -0
  174. package/src/installs/yum-utils.js +297 -0
  175. package/src/installs/yum-utils.md +648 -0
  176. package/src/installs/zoom.js +740 -25
  177. package/src/installs/zoom.md +884 -0
  178. package/src/scripts/README.md +567 -45
  179. package/src/scripts/STATUS.md +208 -0
  180. package/src/scripts/afk.js +395 -7
  181. package/src/scripts/backup-all.js +731 -9
  182. package/src/scripts/backup-source.js +711 -8
  183. package/src/scripts/brewd.js +373 -7
  184. package/src/scripts/brewi.js +505 -9
  185. package/src/scripts/brewr.js +512 -9
  186. package/src/scripts/brews.js +462 -9
  187. package/src/scripts/brewu.js +488 -7
  188. package/src/scripts/c.js +185 -7
  189. package/src/scripts/ccurl.js +325 -8
  190. package/src/scripts/certbot-crontab-init.js +488 -8
  191. package/src/scripts/certbot-init.js +641 -9
  192. package/src/scripts/ch.js +339 -7
  193. package/src/scripts/claude-danger.js +253 -8
  194. package/src/scripts/clean-dev.js +419 -8
  195. package/src/scripts/clear-dns-cache.js +525 -7
  196. package/src/scripts/clone.js +417 -7
  197. package/src/scripts/code-all.js +420 -7
  198. package/src/scripts/count-files.js +195 -8
  199. package/src/scripts/count-folders.js +195 -8
  200. package/src/scripts/count.js +248 -8
  201. package/src/scripts/d.js +203 -7
  202. package/src/scripts/datauri.js +373 -8
  203. package/src/scripts/delete-files.js +363 -7
  204. package/src/scripts/docker-clean.js +410 -8
  205. package/src/scripts/dp.js +426 -7
  206. package/src/scripts/e.js +375 -9
  207. package/src/scripts/empty-trash.js +497 -7
  208. package/src/scripts/evm.js +428 -9
  209. package/src/scripts/fetch-github-repos.js +441 -10
  210. package/src/scripts/get-channel.js +329 -8
  211. package/src/scripts/get-course.js +384 -11
  212. package/src/scripts/get-dependencies.js +290 -9
  213. package/src/scripts/get-folder.js +783 -10
  214. package/src/scripts/get-tunes.js +411 -10
  215. package/src/scripts/get-video.js +352 -9
  216. package/src/scripts/git-backup.js +561 -9
  217. package/src/scripts/git-clone.js +477 -9
  218. package/src/scripts/git-pup.js +303 -7
  219. package/src/scripts/git-push.js +380 -8
  220. package/src/scripts/h.js +607 -9
  221. package/src/scripts/hide-desktop-icons.js +483 -7
  222. package/src/scripts/hide-hidden-files.js +522 -7
  223. package/src/scripts/install-dependencies-from.js +440 -9
  224. package/src/scripts/ips.js +647 -10
  225. package/src/scripts/iso.js +354 -8
  226. package/src/scripts/killni.js +561 -7
  227. package/src/scripts/ll.js +451 -8
  228. package/src/scripts/local-ip.js +310 -8
  229. package/src/scripts/m.js +508 -8
  230. package/src/scripts/map.js +293 -8
  231. package/src/scripts/mkd.js +287 -7
  232. package/src/scripts/ncu-update-all.js +441 -8
  233. package/src/scripts/nginx-init.js +702 -12
  234. package/src/scripts/npmi.js +366 -7
  235. package/src/scripts/o.js +495 -8
  236. package/src/scripts/org-by-date.js +321 -7
  237. package/src/scripts/p.js +208 -7
  238. package/src/scripts/packages.js +313 -8
  239. package/src/scripts/path.js +209 -7
  240. package/src/scripts/ports.js +582 -8
  241. package/src/scripts/q.js +290 -8
  242. package/src/scripts/refresh-files.js +378 -10
  243. package/src/scripts/remove-smaller-files.js +500 -8
  244. package/src/scripts/rename-files-with-date.js +517 -9
  245. package/src/scripts/resize-image.js +523 -9
  246. package/src/scripts/rm-safe.js +653 -8
  247. package/src/scripts/s.js +525 -9
  248. package/src/scripts/set-git-public.js +349 -7
  249. package/src/scripts/show-desktop-icons.js +459 -7
  250. package/src/scripts/show-hidden-files.js +456 -7
  251. package/src/scripts/tpa.js +265 -8
  252. package/src/scripts/tpo.js +264 -7
  253. package/src/scripts/u.js +489 -7
  254. package/src/scripts/vpush.js +422 -8
  255. package/src/scripts/y.js +267 -7
  256. package/src/utils/common/os.js +94 -2
  257. package/src/utils/ubuntu/apt.js +13 -7
  258. package/src/utils/windows/choco.js +82 -26
  259. package/src/utils/windows/winget.js +89 -27
@@ -0,0 +1,825 @@
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)