@fredlackey/devutils 0.0.14 → 0.0.16

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.
@@ -0,0 +1,570 @@
1
+ # Installing Moom
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:** None (installation not supported)
13
+ - **Optional:** None
14
+ - **Auto-installed:** None
15
+
16
+ **Note:** Moom is a macOS-exclusive application developed by Many Tricks. It is not available for Linux platforms. See the Ubuntu section below for alternative window management tools.
17
+
18
+ ### Raspberry Pi OS (APT/Snap)
19
+ - **Required:** None (installation not supported)
20
+ - **Optional:** None
21
+ - **Auto-installed:** None
22
+
23
+ **Note:** Moom is a macOS-exclusive application. See the Raspberry Pi OS section below for alternative window management tools.
24
+
25
+ ### Amazon Linux (DNF/YUM)
26
+ - **Required:** None (installation not supported)
27
+ - **Optional:** None
28
+ - **Auto-installed:** None
29
+
30
+ **Note:** Amazon Linux is a server operating system without a desktop environment by default. Window management tools are not applicable. Moom is also macOS-exclusive.
31
+
32
+ ### Windows (Chocolatey/winget)
33
+ - **Required:** None (installation not supported)
34
+ - **Optional:** None
35
+ - **Auto-installed:** None
36
+
37
+ **Note:** Moom is a macOS-exclusive application. See the Windows section below for alternative window management tools.
38
+
39
+ ### Git Bash (Manual/Portable)
40
+ - **Required:** None (installation not supported)
41
+ - **Optional:** None
42
+ - **Auto-installed:** None
43
+
44
+ **Note:** Git Bash runs on Windows where Moom is not available. See the Git Bash section below for alternative window management tools.
45
+
46
+ ## Overview
47
+
48
+ Moom is a powerful and intuitive window management utility for macOS developed by Many Tricks. It enables users to move, resize, and arrange application windows with precision using mouse interactions, keyboard shortcuts, or custom-defined layouts. Moom is widely regarded as one of the best window management tools available for macOS, offering a balance of simplicity and power that appeals to both casual users and power users.
49
+
50
+ Key capabilities include:
51
+
52
+ - **Mouse-Based Control**: Hover over any window's green (or configurable red/yellow) button to reveal a pop-up palette with quick resize and move options
53
+ - **Snap to Edges**: Drag windows to screen edges to snap them into predefined positions (half screen, quarter screen, etc.)
54
+ - **Custom Grids**: Define custom grids for precise window positioning and sizing
55
+ - **Saved Layouts**: Create and restore complete window arrangements across multiple applications, especially useful for multi-monitor setups
56
+ - **Keyboard Control**: Comprehensive keyboard shortcuts for moving, resizing, centering, and arranging windows without touching the mouse
57
+ - **Hover Feature**: Move and resize background windows by holding modifier keys while moving the mouse
58
+ - **Multi-Display Support**: Seamlessly manage windows across multiple monitors with display-aware features
59
+
60
+ **Important Platform Limitation:** Moom is a **macOS-only** application. Many Tricks develops Moom exclusively for macOS, and the application is not available for Windows, Linux, or any other operating system. Moom 4 (the current version) is available only from the Many Tricks website; it is not available on the Mac App Store due to sandboxing requirements.
61
+
62
+ | Platform | Tool | Description |
63
+ |----------|------|-------------|
64
+ | macOS | Moom | Many Tricks' window management utility |
65
+ | Windows | PowerToys FancyZones | Microsoft's free window management utility |
66
+ | Linux | i3 / bspwm / xfwm4 | Tiling and floating window managers |
67
+
68
+ ## Prerequisites
69
+
70
+ Before installing Moom, ensure:
71
+
72
+ 1. **macOS 10.15 (Catalina) or later** - Required for Moom 4.x
73
+ 2. **Internet connectivity** - Required to download the package
74
+ 3. **Administrative privileges** - Required for Homebrew cask installation
75
+ 4. **Sufficient disk space** - At least 50 MB for installation
76
+
77
+ ---
78
+
79
+ ## Platform-Specific Installation
80
+
81
+ ### macOS (Homebrew)
82
+
83
+ Moom is the native macOS window management solution and is available as a Homebrew cask.
84
+
85
+ #### Prerequisites
86
+
87
+ - macOS 10.15 (Catalina) or later
88
+ - Homebrew package manager installed
89
+ - 64-bit processor (Intel or Apple Silicon natively supported)
90
+ - Valid license for full functionality (trial available)
91
+
92
+ Verify Homebrew is installed:
93
+
94
+ ```bash
95
+ brew --version
96
+ ```
97
+
98
+ If Homebrew is not installed, install it first using `dev install homebrew` or run:
99
+
100
+ ```bash
101
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
102
+ ```
103
+
104
+ #### Installation Steps
105
+
106
+ Run the following command to install Moom:
107
+
108
+ ```bash
109
+ brew install --cask --quiet moom
110
+ ```
111
+
112
+ **Explanation of flags:**
113
+ - `--cask`: Indicates this is a macOS application (not a CLI formula)
114
+ - `--quiet`: Suppresses non-essential output for non-interactive installation
115
+
116
+ The installation downloads Moom and installs it to `/Applications/Moom.app`.
117
+
118
+ #### Verification
119
+
120
+ Confirm the installation succeeded:
121
+
122
+ ```bash
123
+ ls -la "/Applications/Moom.app" && echo "Moom is installed"
124
+ ```
125
+
126
+ You can also verify by checking the Homebrew list:
127
+
128
+ ```bash
129
+ brew list --cask | grep moom
130
+ ```
131
+
132
+ #### Troubleshooting
133
+
134
+ **Installation fails with permission errors:**
135
+
136
+ ```bash
137
+ # Reset Homebrew cask cache and retry
138
+ brew cleanup
139
+ brew install --cask --quiet moom
140
+ ```
141
+
142
+ **Moom fails to open with "cannot be opened" error:**
143
+
144
+ This occurs when macOS Gatekeeper blocks the application:
145
+
146
+ ```bash
147
+ xattr -cr "/Applications/Moom.app"
148
+ ```
149
+
150
+ **Moom requires Accessibility permissions:**
151
+
152
+ On first launch, Moom will request Accessibility permissions. This is required for the application to move and resize windows. Grant access via:
153
+
154
+ 1. Open System Settings (or System Preferences on older macOS)
155
+ 2. Navigate to Privacy & Security > Accessibility
156
+ 3. Enable the toggle for Moom
157
+
158
+ **Moom does not appear in menu bar:**
159
+
160
+ Moom runs as a menu bar application. If it does not appear:
161
+
162
+ ```bash
163
+ # Force quit and relaunch
164
+ killall Moom 2>/dev/null
165
+ open -a "Moom"
166
+ ```
167
+
168
+ **Upgrading from a previous version:**
169
+
170
+ ```bash
171
+ brew upgrade --cask moom
172
+ ```
173
+
174
+ **Older macOS versions (10.13 - 10.14):**
175
+
176
+ If you are running macOS 10.13 (High Sierra) or 10.14 (Mojave), you may need to install an older version of Moom. Check the Many Tricks website for version compatibility.
177
+
178
+ ---
179
+
180
+ ### Ubuntu/Debian (APT)
181
+
182
+ **Moom is NOT available on Ubuntu or Debian.** It is a macOS-only application developed by Many Tricks.
183
+
184
+ For window management on Ubuntu/Debian, use one of the following alternatives:
185
+
186
+ #### Alternative: gTile (GNOME Extension)
187
+
188
+ gTile is a GNOME Shell extension that provides grid-based window tiling similar to Moom's grid feature.
189
+
190
+ **Prerequisites:**
191
+ - Ubuntu 20.04 LTS or later with GNOME desktop
192
+ - GNOME Shell Extensions support
193
+
194
+ **Installation Steps:**
195
+
196
+ ```bash
197
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
198
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y gnome-shell-extension-manager
199
+ ```
200
+
201
+ Then install gTile via the GNOME Extensions website or run:
202
+
203
+ ```bash
204
+ # Install gTile via command line
205
+ gnome-extensions install gtile@vibou
206
+ gnome-extensions enable gtile@vibou
207
+ ```
208
+
209
+ **Verification:**
210
+
211
+ ```bash
212
+ gnome-extensions list | grep gtile && echo "gTile is installed"
213
+ ```
214
+
215
+ #### Alternative: Tiling Window Manager (i3)
216
+
217
+ For power users who want comprehensive window management, i3 is a popular tiling window manager:
218
+
219
+ ```bash
220
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
221
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y i3
222
+ ```
223
+
224
+ **Note:** Switching to i3 replaces the default GNOME/KDE desktop experience with a keyboard-driven tiling workflow.
225
+
226
+ ---
227
+
228
+ ### Raspberry Pi OS (APT)
229
+
230
+ **Moom is NOT available on Raspberry Pi OS.** It is a macOS-only application.
231
+
232
+ For window management on Raspberry Pi OS, the options are limited due to the lightweight desktop environment.
233
+
234
+ #### Alternative: xfwm4 Window Snapping
235
+
236
+ Raspberry Pi OS uses the LXDE/LXQt desktop environment by default. The built-in window manager (openbox) has basic window snapping capabilities.
237
+
238
+ For more advanced tiling, install the i3 window manager:
239
+
240
+ ```bash
241
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
242
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y i3
243
+ ```
244
+
245
+ **Verification:**
246
+
247
+ ```bash
248
+ i3 --version
249
+ ```
250
+
251
+ **Note on ARM Architecture:** i3 is available pre-compiled for ARM architecture in the Raspberry Pi OS repositories. No special configuration is required.
252
+
253
+ ---
254
+
255
+ ### Amazon Linux/RHEL (YUM/DNF)
256
+
257
+ **Moom is NOT available on Amazon Linux or RHEL.** It is a macOS-only application.
258
+
259
+ Amazon Linux and RHEL are primarily server operating systems without desktop environments by default. Window management tools like Moom are not applicable to these platforms in typical server use cases.
260
+
261
+ #### Installation Steps
262
+
263
+ **Not applicable.** Window management tools require a graphical desktop environment, which is not standard on Amazon Linux or RHEL servers.
264
+
265
+ If you have installed a desktop environment (such as GNOME Workstation), you can use GNOME's built-in window tiling features or install i3:
266
+
267
+ ```bash
268
+ sudo dnf install -y i3
269
+ ```
270
+
271
+ **Verification:**
272
+
273
+ ```bash
274
+ i3 --version
275
+ ```
276
+
277
+ ---
278
+
279
+ ### Windows (Chocolatey/winget)
280
+
281
+ **Moom is NOT available on Windows.** It is a macOS-only application developed by Many Tricks.
282
+
283
+ Use **Microsoft PowerToys FancyZones** as the equivalent window management tool for Windows. FancyZones is a free, open-source utility from Microsoft that provides advanced window snapping, custom zones, and multi-monitor support similar to Moom.
284
+
285
+ #### Prerequisites
286
+
287
+ - Windows 10 version 1903 or later, or Windows 11
288
+ - Administrator PowerShell or Command Prompt
289
+ - Chocolatey or winget package manager installed
290
+
291
+ Verify winget is installed (comes pre-installed on Windows 10/11):
292
+
293
+ ```powershell
294
+ winget --version
295
+ ```
296
+
297
+ Or verify Chocolatey:
298
+
299
+ ```powershell
300
+ choco --version
301
+ ```
302
+
303
+ #### Installation Steps
304
+
305
+ **Install using winget (Recommended):**
306
+
307
+ Open PowerShell or Command Prompt and run:
308
+
309
+ ```powershell
310
+ winget install --id Microsoft.PowerToys --silent --accept-package-agreements --accept-source-agreements
311
+ ```
312
+
313
+ **Explanation of flags:**
314
+ - `--id Microsoft.PowerToys`: Specifies the exact package identifier
315
+ - `--silent`: Suppresses the installer UI completely
316
+ - `--accept-package-agreements`: Automatically accepts the package license
317
+ - `--accept-source-agreements`: Automatically accepts the source terms
318
+
319
+ **Install using Chocolatey:**
320
+
321
+ Open PowerShell or Command Prompt as Administrator and run:
322
+
323
+ ```powershell
324
+ choco install powertoys -y
325
+ ```
326
+
327
+ **Explanation of flags:**
328
+ - `-y`: Automatically confirms all prompts for non-interactive installation
329
+
330
+ #### Verification
331
+
332
+ Open a new PowerShell or Command Prompt window (to refresh PATH), then verify:
333
+
334
+ ```powershell
335
+ winget list --id Microsoft.PowerToys
336
+ ```
337
+
338
+ Or check via Chocolatey:
339
+
340
+ ```powershell
341
+ choco list powertoys
342
+ ```
343
+
344
+ Verify PowerToys is running:
345
+
346
+ ```powershell
347
+ Get-Process PowerToys* -ErrorAction SilentlyContinue | Select-Object Name
348
+ ```
349
+
350
+ #### Troubleshooting
351
+
352
+ **Problem**: FancyZones is not active after installation
353
+
354
+ **Solution**: Launch PowerToys from the Start menu. FancyZones is a module within PowerToys that must be enabled:
355
+
356
+ 1. Open PowerToys Settings from the system tray
357
+ 2. Navigate to FancyZones in the left sidebar
358
+ 3. Enable the "Enable FancyZones" toggle
359
+
360
+ **Problem**: FancyZones does not snap windows
361
+
362
+ **Solution**: Hold the Shift key while dragging a window to activate FancyZones snapping (default behavior).
363
+
364
+ **Problem**: winget installation fails
365
+
366
+ **Solution**: Update the winget source and retry:
367
+
368
+ ```powershell
369
+ winget source update
370
+ winget install --id Microsoft.PowerToys --silent --accept-package-agreements --accept-source-agreements
371
+ ```
372
+
373
+ ---
374
+
375
+ ### WSL (Ubuntu)
376
+
377
+ **Moom cannot run in WSL.** WSL runs a Linux environment where macOS applications are not compatible.
378
+
379
+ Window management in WSL is not applicable because WSL GUI applications (via WSLg) are managed by the Windows window manager, not a Linux one.
380
+
381
+ #### Recommended Approach
382
+
383
+ For window management needs when using WSL:
384
+
385
+ 1. **Install PowerToys FancyZones on the Windows host** - This will manage all windows including WSLg applications
386
+
387
+ #### Installation Steps
388
+
389
+ **Install PowerToys on the Windows host from within WSL:**
390
+
391
+ ```bash
392
+ powershell.exe -Command "winget install --id Microsoft.PowerToys --silent --accept-package-agreements --accept-source-agreements"
393
+ ```
394
+
395
+ Or using Chocolatey:
396
+
397
+ ```bash
398
+ powershell.exe -Command "choco install powertoys -y"
399
+ ```
400
+
401
+ #### Verification
402
+
403
+ Verify PowerToys is installed on the Windows host:
404
+
405
+ ```bash
406
+ powershell.exe -Command "winget list --id Microsoft.PowerToys"
407
+ ```
408
+
409
+ #### Troubleshooting
410
+
411
+ **Problem**: PowerShell command fails from WSL
412
+
413
+ **Solution**: Use the full path to PowerShell:
414
+
415
+ ```bash
416
+ /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -Command "winget install --id Microsoft.PowerToys --silent --accept-package-agreements --accept-source-agreements"
417
+ ```
418
+
419
+ ---
420
+
421
+ ### Git Bash (Manual/Portable)
422
+
423
+ Git Bash runs within Windows, so use **Microsoft PowerToys FancyZones** for window management. The installation is identical to the Windows (Chocolatey/winget) section.
424
+
425
+ #### Prerequisites
426
+
427
+ - Windows 10 version 1903 or later, or Windows 11
428
+ - Git Bash installed (comes with Git for Windows)
429
+ - winget (pre-installed on Windows 10/11) or Chocolatey installed
430
+
431
+ #### Installation Steps
432
+
433
+ **Install via winget from Git Bash:**
434
+
435
+ ```bash
436
+ powershell.exe -Command "winget install --id Microsoft.PowerToys --silent --accept-package-agreements --accept-source-agreements"
437
+ ```
438
+
439
+ **Install via Chocolatey from Git Bash:**
440
+
441
+ ```bash
442
+ powershell.exe -Command "choco install powertoys -y"
443
+ ```
444
+
445
+ #### Verification
446
+
447
+ Verify PowerToys is installed:
448
+
449
+ ```bash
450
+ powershell.exe -Command "winget list --id Microsoft.PowerToys"
451
+ ```
452
+
453
+ Check if PowerToys is running:
454
+
455
+ ```bash
456
+ powershell.exe -Command "Get-Process PowerToys* -ErrorAction SilentlyContinue | Select-Object Name"
457
+ ```
458
+
459
+ #### Troubleshooting
460
+
461
+ **Problem**: PowerShell command not found
462
+
463
+ **Solution**: Use the full path:
464
+
465
+ ```bash
466
+ /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -Command "choco install powertoys -y"
467
+ ```
468
+
469
+ **Problem**: Chocolatey not installed
470
+
471
+ **Solution**: Install Chocolatey first:
472
+
473
+ ```bash
474
+ powershell.exe -Command "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'))"
475
+ ```
476
+
477
+ ---
478
+
479
+ ## Post-Installation Configuration
480
+
481
+ ### macOS (Moom)
482
+
483
+ After installing Moom on macOS:
484
+
485
+ 1. **Grant Accessibility Permissions**: On first launch, Moom will request Accessibility permissions in System Settings > Privacy & Security > Accessibility. This is required for Moom to control window positions and sizes.
486
+
487
+ 2. **Configure the Pop-Up Palette**: Open Moom preferences to customize what actions appear in the green button pop-up palette. You can add up to 61 separate actions including folders, layouts, and grids.
488
+
489
+ 3. **Set Up Keyboard Shortcuts**: Enable keyboard control in Moom preferences and configure your preferred trigger key combination for keyboard-based window management.
490
+
491
+ 4. **Create Saved Layouts**: If you work with a consistent set of applications, create saved layouts that restore all windows to specific positions. This is especially useful for users who frequently connect and disconnect external displays.
492
+
493
+ 5. **Configure Snap Behavior**: Enable the Snap feature to quickly move windows by dragging them to screen edges. Customize which edges trigger which actions.
494
+
495
+ 6. **License Activation**: Moom costs $15 from the Many Tricks website. The license is valid forever, with updates included for one year. After one year, you can continue using the existing version or upgrade at a reduced price.
496
+
497
+ ### Windows (PowerToys FancyZones)
498
+
499
+ After installing PowerToys on Windows:
500
+
501
+ 1. **Launch PowerToys**: Open PowerToys from the Start menu. It runs as a system tray application.
502
+
503
+ 2. **Enable FancyZones**: In PowerToys Settings, navigate to FancyZones and ensure it is enabled.
504
+
505
+ 3. **Configure Zones**: Click "Launch layout editor" to create custom zones for your displays. Pre-built templates include columns, rows, grids, and priority grid.
506
+
507
+ 4. **Set Activation Key**: By default, hold Shift while dragging a window to activate FancyZones. You can change this in settings.
508
+
509
+ 5. **Multi-Monitor Setup**: FancyZones supports different layouts per monitor. Configure each display independently.
510
+
511
+ ---
512
+
513
+ ## Common Issues
514
+
515
+ ### macOS-Specific Issues (Moom)
516
+
517
+ | Issue | Solution |
518
+ |-------|----------|
519
+ | Moom pop-up does not appear on green button | Grant Accessibility permissions in System Settings > Privacy & Security |
520
+ | Windows do not move to correct positions | Ensure the target display is connected; layouts are display-specific |
521
+ | Keyboard shortcuts do not work | Enable keyboard control in Moom preferences and set a trigger key |
522
+ | Moom not available in Mac App Store | Moom 4 is only available from Many Tricks directly due to sandboxing requirements |
523
+ | Moom slows down when many windows open | Reduce the number of actions in the pop-up palette |
524
+ | Homebrew cask outdated | Run `brew update && brew upgrade --cask moom` |
525
+
526
+ ### Windows-Specific Issues (PowerToys FancyZones)
527
+
528
+ | Issue | Solution |
529
+ |-------|----------|
530
+ | FancyZones does not activate | Ensure PowerToys is running; check the system tray |
531
+ | Shift+drag does not show zones | Enable "Hold Shift key to activate zones" in FancyZones settings |
532
+ | Zones disappear on monitor reconnect | Re-apply layouts after reconnecting displays |
533
+ | PowerToys crashes on startup | Update to the latest version via winget or Chocolatey |
534
+
535
+ ---
536
+
537
+ ## Feature Comparison
538
+
539
+ | Feature | Moom (macOS) | PowerToys FancyZones (Windows) |
540
+ |---------|--------------|-------------------------------|
541
+ | Mouse-Based Snapping | Yes (green button pop-up) | Yes (Shift+drag to zones) |
542
+ | Keyboard Shortcuts | Yes (comprehensive) | Yes (via PowerToys Run) |
543
+ | Custom Grids/Zones | Yes | Yes |
544
+ | Saved Layouts | Yes (per display configuration) | Yes (per display configuration) |
545
+ | Multi-Monitor Support | Yes | Yes |
546
+ | Hover to Move | Yes (modifier key + mouse) | No |
547
+ | Price | $15 (one-time) | Free (open source) |
548
+
549
+ ---
550
+
551
+ ## References
552
+
553
+ ### macOS (Moom)
554
+
555
+ - [Moom Official Website](https://manytricks.com/moom/)
556
+ - [Moom Homebrew Cask](https://formulae.brew.sh/cask/moom)
557
+ - [Many Tricks Blog - Moom 4 Announcement](https://manytricks.com/blog/?p=6385)
558
+ - [Many Tricks Software](https://manytricks.com/)
559
+
560
+ ### Windows (PowerToys FancyZones)
561
+
562
+ - [Microsoft PowerToys Official Website](https://learn.microsoft.com/en-us/windows/powertoys/)
563
+ - [PowerToys GitHub Repository](https://github.com/microsoft/PowerToys)
564
+ - [FancyZones Documentation](https://learn.microsoft.com/en-us/windows/powertoys/fancyzones)
565
+ - [PowerToys Chocolatey Package](https://community.chocolatey.org/packages/powertoys)
566
+
567
+ ### Linux Alternatives
568
+
569
+ - [i3 Window Manager](https://i3wm.org/)
570
+ - [gTile GNOME Extension](https://extensions.gnome.org/extension/28/gtile/)