Skip to content

Commit 89f0bb4

Browse files
authored
Merge pull request #124 from dmoliveira/codex-mac-desktop-extras
add mac desktop extras install path
2 parents b2d41f1 + e6bccbd commit 89f0bb4

5 files changed

Lines changed: 84 additions & 2 deletions

File tree

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
.PHONY: help install-mac install-unix install-debian verify verify-strict verify-json bootstrap-secrets doctor doctor-full verify-linux tmux-self-heal playbook docs-browse leader-pack-check rollback rollback-dry-run shell-lint hooks-install pre-commit-install pre-commit-run git-delta-config wiki-build wiki-build-check wiki-source-check wiki-sidebar-check docs-hub-check docs-make-target-check continue-tag-check release-template-check release-docs-check workflow-inventory-check core-commands-check docs-assets-check cheatsheet-index-check quick-cards-check top10-cards-check golden-path-guards-check installer-ci-flags-check quick-commands-sync-check smoke-guards-check ci-quick-guards-check ci-quick release-precheck
1+
.PHONY: help install-mac install-mac-desktop install-unix install-debian verify verify-strict verify-json bootstrap-secrets doctor doctor-full verify-linux tmux-self-heal playbook docs-browse leader-pack-check rollback rollback-dry-run shell-lint hooks-install pre-commit-install pre-commit-run git-delta-config wiki-build wiki-build-check wiki-source-check wiki-sidebar-check docs-hub-check docs-make-target-check continue-tag-check release-template-check release-docs-check workflow-inventory-check core-commands-check docs-assets-check cheatsheet-index-check quick-cards-check top10-cards-check golden-path-guards-check installer-ci-flags-check quick-commands-sync-check smoke-guards-check ci-quick-guards-check ci-quick release-precheck
22

33
help: ## Show available commands
44
@awk 'BEGIN {FS = ":.*## "} /^[a-zA-Z_-]+:.*## / {printf "%-16s %s\n", $$1, $$2}' $(MAKEFILE_LIST)
55

66
install-mac: ## Run macOS installer
77
./install_my_programs_mac
88

9+
install-mac-desktop: ## Run macOS installer with optional desktop extras
10+
./install_my_programs_mac --desktop-extras
11+
912
install-unix: ## Run generic Unix installer
1013
./install_my_programs_unix
1114

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ Special progress keyword for ongoing work across docs and release notes:
4040
git clone https://github.com/dmoliveira/utils-scripts.git
4141
cd utils-scripts
4242
make help
43-
make install-mac # or: make install-debian / make install-unix
43+
make install-mac # baseline macOS setup
44+
# or: make install-mac-desktop / make install-debian / make install-unix
4445
make verify
4546
```
4647

@@ -78,6 +79,7 @@ make docs-browse
7879
| --- | --- |
7980
| `install_my_programs_debian` | Debian/Ubuntu installer |
8081
| `install_my_programs_mac` | macOS installer (Homebrew based) |
82+
| `make install-mac-desktop` | macOS installer + desktop extras (`dockdoor`, `maccy`, `espanso`, `appcleaner`, `yabai`) |
8183
| `install_my_programs_unix` | Generic Unix installer |
8284
| `verify_post_install_unix` | Smoke checks after install |
8385
| `doctor_post_install_unix` | Strict checks with fix hints |

docs/getting-started.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,16 @@ make help
1414

1515
```bash
1616
make install-mac
17+
# optional macOS desktop extras
18+
make install-mac-desktop
1719
# or
1820
make install-debian
1921
# or
2022
make install-unix
2123
```
2224

2325
If you want a preview before changing your machine, run the installer script with `--dry-run`.
26+
For the extra macOS desktop apps, use `./install_my_programs_mac --desktop-extras --dry-run`.
2427

2528
## 3) Verify your environment
2629

docs/power-user.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,29 @@ trivy fs .
3131
- prefer short command examples that people can paste
3232
- add the follow-up marker `CONTINUE_TAG: #continue-utils` for remaining tasks
3333

34+
## macOS desktop extras
35+
36+
Use one command when you want the terminal stack plus GUI helpers:
37+
38+
```bash
39+
make install-mac-desktop
40+
```
41+
42+
What it adds:
43+
44+
- `dockdoor` for Dock previews and window switching
45+
- `maccy` for clipboard history
46+
- `espanso` for text expansion
47+
- `appcleaner` for app removal cleanup
48+
- `yabai` for advanced tiling/window management
49+
50+
Post-install notes:
51+
52+
- Launch DockDoor, Maccy, and Espanso once so macOS can request permissions.
53+
- Expect Accessibility prompts for DockDoor, Maccy auto-paste workflows, Espanso behavior, and yabai.
54+
- Start yabai manually with `yabai --start-service` after reviewing its upstream setup notes.
55+
- Keep yabai optional: advanced features may require extra SIP and scripting-addition steps.
56+
3457
## Incident mode checklist
3558

3659
```bash

install_my_programs_mac

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ set -euo pipefail
44
timestamp=$(date +"%Y%m%d%H%M%S")
55
ARCH=$(uname -m)
66
DRY_RUN=false
7+
INSTALL_DESKTOP_EXTRAS=false
78
BEADS_INSTALL_REF="dd01a655b9602ba20d0c666515467e064a815609"
89
BR_INSTALL_FAILED=false
910

@@ -13,6 +14,7 @@ Usage: install_my_programs_mac [options]
1314
1415
Options:
1516
--dry-run Print planned actions without changing the system
17+
--desktop-extras Install optional macOS desktop apps and services
1618
-h, --help Show this help message
1719
EOF
1820
}
@@ -23,6 +25,9 @@ parse_args() {
2325
--dry-run)
2426
DRY_RUN=true
2527
;;
28+
--desktop-extras)
29+
INSTALL_DESKTOP_EXTRAS=true
30+
;;
2631
-h | --help)
2732
usage
2833
exit 0
@@ -68,6 +73,48 @@ install_optional_brew_formula() {
6873
echo "✅ Installed ${label}"
6974
}
7075

76+
install_optional_brew_cask() {
77+
local cask="$1"
78+
local label="${2:-$1}"
79+
80+
if [[ "$DRY_RUN" == "true" ]]; then
81+
run_cmd brew install --cask "$cask"
82+
return
83+
fi
84+
85+
if ! brew info --cask "$cask" >/dev/null 2>&1; then
86+
echo "${label} unavailable in current Homebrew taps; skipping"
87+
return
88+
fi
89+
90+
if brew list --cask "$cask" &>/dev/null; then
91+
echo "${label} already installed"
92+
return
93+
fi
94+
95+
brew install --cask "$cask"
96+
echo "Installed ${label}"
97+
}
98+
99+
install_macos_desktop_extras() {
100+
echo "Installing optional macOS desktop extras..."
101+
install_optional_brew_cask dockdoor "DockDoor"
102+
install_optional_brew_cask maccy "Maccy"
103+
install_optional_brew_cask espanso "Espanso"
104+
install_optional_brew_cask appcleaner "AppCleaner"
105+
install_optional_brew_formula asmvik/formulae/yabai "yabai"
106+
107+
cat <<'EOF'
108+
109+
Next steps for macOS desktop extras:
110+
- DockDoor: launch once and grant Accessibility access.
111+
- Maccy: launch once; grant Accessibility if you want auto-paste/global shortcut reliability.
112+
- Espanso: launch once, confirm the menu bar app appears, and review Secure Input guidance if expansion stops.
113+
- AppCleaner: optional manual app; SmartDelete is personal preference.
114+
- yabai: advanced window manager; grant Accessibility, run `yabai --start-service`, and review upstream docs before enabling scripting addition or SIP-related features.
115+
EOF
116+
}
117+
71118
install_monitoring_stack() {
72119
echo "Installing terminal monitoring tools..."
73120
install_optional_brew_formula bottom "bottom (btm)"
@@ -192,6 +239,10 @@ elif ! brew list --cask ghostty &>/dev/null; then
192239
run_cmd brew install --cask ghostty
193240
fi
194241

242+
if [[ "$INSTALL_DESKTOP_EXTRAS" == "true" ]]; then
243+
install_macos_desktop_extras
244+
fi
245+
195246
# 🧠 AI/ML environment (optional)
196247
run_cmd brew install \
197248
cmake openblas lapack \

0 commit comments

Comments
 (0)