From 002c27e73c54f3d415cda115fb8bd940bee04f64 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Mon, 20 Apr 2026 17:01:04 -0400 Subject: [PATCH] fix(file_handlers): use keystroke Cmd+Return to start pptx slideshow Replace unreliable AppleScript PowerPoint API (run slide show of settings) with System Events keystroke approach, matching proven behavior from the old MasterKey app. Opens the file, waits 3s for load, then sends Cmd+Return to start the slideshow from slide 1. --- deploy/deploy.sh | 39 +++++++++++++++++++++++++--------- deploy/devices.conf | 26 +++++++++++------------ dist/main/file_handlers.js | 6 ++++-- dist/main/file_handlers.js.map | 2 +- src/main/file_handlers.ts | 16 ++++++++------ 5 files changed, 56 insertions(+), 33 deletions(-) diff --git a/deploy/deploy.sh b/deploy/deploy.sh index a8e5471..5e3ecd4 100755 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -2,14 +2,16 @@ # deploy.sh — Deploy Aether Native Launcher to onsite Mac laptops # # USAGE: -# ./deploy.sh [num ...] Deploy to one or more laptops (e.g. 03 04 05) -# ./deploy.sh all Deploy to all laptops in devices.conf -# ./deploy.sh --seed-only Update seed.json only — skip .app copy +# ./deploy.sh [num ...] Deploy to one or more laptops (e.g. 03 04 05) +# ./deploy.sh all Deploy to all laptops in devices.conf +# ./deploy.sh --seed-only Update seed.json only — skip .app copy # ./deploy.sh --seed-only all +# ./deploy.sh --build [num ...] Build first (npm run package:mac), then deploy +# ./deploy.sh --build all # # REQUIRES: # event.env — copy from event.env.example and fill in AETHER_API_KEY -# builds/ — run "npm run package:mac" first if .app is missing +# builds/ — pre-built, or use --build to build before deploying # # SSH keys must already be installed on each target (run ssh-copy-id once per laptop). @@ -24,6 +26,7 @@ BUILD_DIR="$SCRIPT_DIR/../builds" # ── Argument parsing ────────────────────────────────────────────────────────── SEED_ONLY=false +BUILD_FIRST=false TARGETS=() usage() { @@ -36,6 +39,7 @@ if [[ $# -eq 0 ]]; then usage; fi while [[ $# -gt 0 ]]; do case "$1" in --seed-only) SEED_ONLY=true ;; + --build) BUILD_FIRST=true ;; --help|-h) usage ;; all) TARGETS+=("all") ;; *) TARGETS+=("$1") ;; @@ -75,8 +79,8 @@ fi # Returns "ip device_id" for a laptop number, or empty if not found lookup_device() { local num="$1" - grep -E "^[[:space:]]*${num}[[:space:]]" "$DEVICES_FILE" \ - | grep -v '^[[:space:]]*#' \ + grep -v '^[[:space:]]*#' "$DEVICES_FILE" \ + | grep -E "^[[:space:]]*${num}[[:space:]]" \ | awk '{print $2, $3}' \ | head -1 } @@ -134,12 +138,14 @@ deploy_laptop() { return 1 fi - echo " Arch: $arch → copying $(basename "$bundle")..." - scp -r "$bundle" "$SSH_USER@$ip:/Applications/aether_launcher.app" || { - echo " ERROR: scp failed." + echo " Arch: $arch → syncing $(basename "$bundle")..." + # rsync --delete syncs contents in-place without removing the top-level .app dir. + # This preserves the inode so macOS Aliases and Desktop shortcuts keep working. + rsync -a --delete -e ssh "$bundle/" "$SSH_USER@$ip:/Applications/aether_launcher.app/" || { + echo " ERROR: rsync failed." return 1 } - echo " .app copied." + echo " .app synced." else echo " (--seed-only: skipping .app copy)" fi @@ -168,6 +174,19 @@ EOF return 0 } +# ── Build if requested ─────────────────────────────────────────────────────── + +if [[ "$BUILD_FIRST" == "true" ]]; then + echo "══════════════════════════════════════════════" + echo " Building: npm run package:mac" + echo "══════════════════════════════════════════════" + (cd "$SCRIPT_DIR/.." && npm run package:mac) || { + echo "ERROR: Build failed. Aborting deploy." + exit 1 + } + echo "" +fi + # ── Expand "all" target ─────────────────────────────────────────────────────── EXPANDED_TARGETS=() diff --git a/deploy/devices.conf b/deploy/devices.conf index 00fd204..12e3888 100644 --- a/deploy/devices.conf +++ b/deploy/devices.conf @@ -9,20 +9,20 @@ # num ip event_device_id notes 01 192.168.32.101 tFLL1fLQfnk 02 192.168.32.102 rpbfunVPEzw -03 192.168.32.103 1EPfPX8kfw8 -04 192.168.32.104 zvgyLM5yieU -05 192.168.32.105 QOc046GoeSc -06 192.168.32.106 2o8j6eb0L6s +# 03 192.168.32.103 1EPfPX8kfw8 +# 04 192.168.32.104 zvgyLM5yieU +# 05 192.168.32.105 QOc046GoeSc +# 06 192.168.32.106 2o8j6eb0L6s 07 192.168.32.107 Oa1tlxPEVSQ 08 192.168.32.108 fY4yznpUZ48 09 192.168.32.109 YlgGCyjo9bY 10 192.168.32.110 GcTnFsp1mHI -11 192.168.32.111 6z88m9oEZio -12 192.168.32.112 EggJqL2kWkA -13 192.168.32.113 O11eckHFdVE -14 192.168.32.114 reI0SecUEhI -15 192.168.32.115 crozxT8mA44 -16 192.168.32.116 0nP4VZsvr2Q -17 192.168.32.117 Gm2gNqPGzLA -19 192.168.32.119 6tpukvRVugU -x20 192.168.32.120 rwLYnKUNd1M old 04, spare/retired +# 11 192.168.32.111 6z88m9oEZio +# 12 192.168.32.112 EggJqL2kWkA +# 13 192.168.32.113 O11eckHFdVE +# 14 192.168.32.114 reI0SecUEhI +# 15 192.168.32.115 crozxT8mA44 +# 16 192.168.32.116 0nP4VZsvr2Q +# 17 192.168.32.117 Gm2gNqPGzLA +# 19 192.168.32.119 6tpukvRVugU +# x20 192.168.32.120 rwLYnKUNd1M old 04, spare/retired diff --git a/dist/main/file_handlers.js b/dist/main/file_handlers.js index aceb944..f69b9c0 100644 --- a/dist/main/file_handlers.js +++ b/dist/main/file_handlers.js @@ -174,8 +174,10 @@ function registerFileHandlers() { tell application "Microsoft PowerPoint" activate open (POSIX file "${target}") - delay 1 - run slide show of active presentation + delay 3 + end tell + tell application "System Events" + keystroke return using command down end tell `; } diff --git a/dist/main/file_handlers.js.map b/dist/main/file_handlers.js.map index b0b8771..feb8b62 100644 --- a/dist/main/file_handlers.js.map +++ b/dist/main/file_handlers.js.map @@ -1 +1 @@ -{"version":3,"file":"file_handlers.js","sourceRoot":"","sources":["../../src/main/file_handlers.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"file_handlers.js","sourceRoot":"","sources":["../../src/main/file_handlers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,oDA8KC;AAzLD,uCAA0C;AAC1C,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,+CAAiC;AACjC,iDAAqC;AACrC,kDAA0B;AAC1B,6CAA0C;AAE1C,IAAI,qBAAqB,GAAa,EAAE,CAAC;AAEzC,SAAgB,oBAAoB;IAClC,qEAAqE;IACrE,SAAS,yBAAyB,CAAC,IAAY,EAAE,IAAY,EAAE,aAAqB,CAAC;QACnF,MAAM,aAAa,GAAG,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,kBAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,GAAG,CAAC,EAAE,WAAW,GAAG,KAAK,EAAE,EAAE,EAAE;QACtH,MAAM,SAAS,GAAG,yBAAyB,CAAC,UAAU,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAElF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QAE5C,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClF,OAAO,WAAW,KAAK,IAAI,CAAC;YAC9B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,kBAAO,CAAC,MAAM,CAAC,0BAA0B,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE;QACjI,MAAM,SAAS,GAAG,yBAAyB,CAAC,UAAU,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,GAAG,SAAS,MAAM,CAAC;QAEpC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAEzF,gCAAgC;QAChC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAE1F,6DAA6D;QAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;YAC1C,0FAA0F;YAC1F,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClF,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC;gBAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ;gBAC1C,OAAO,EAAE;oBACP,kBAAkB,EAAE,OAAO;oBAC3B,cAAc,EAAE,UAAU,IAAI,EAAE;oBAChC,iBAAiB,EAAE,qBAAqB;iBACzC;aACF,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE3B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,iEAAiE;YACjE,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAElF,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,mCAAmC,IAAI,SAAS,WAAW,EAAE,CAAC,CAAC;gBAC7E,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC;YAC5E,CAAC;YAED,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAClF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;gBAAS,CAAC;YACT,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,kBAAO,CAAC,MAAM,CAAC,0BAA0B,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE;QAC5H,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,yBAAyB,CAAC,UAAU,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;YAC/E,MAAM,aAAa,GAAG,IAAA,uBAAU,EAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAElD,OAAO,CAAC,GAAG,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;YAE3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;gBAAE,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpF,qDAAqD;YACrD,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAEhC,yBAAyB;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAEnE,kDAAkD;YAClD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,iDAAiD,MAAM,EAAE,CAAC,CAAC;oBACvE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC7B,IAAA,oBAAI,EAAC,0BAA0B,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;4BAChD,IAAI,GAAG;gCAAE,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;;gCACpD,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;wBAClC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC/B,IAAI,MAAM,GAAG,EAAE,CAAC;oBAChB,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;wBAClB,MAAM,GAAG;;;oCAGe,MAAM;;;;aAI7B,CAAC;oBACJ,CAAC;yBAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;wBAC3C,MAAM,GAAG;;;oCAGe,MAAM;;;;;;aAM7B,CAAC;oBACJ,CAAC;oBAED,IAAI,MAAM,EAAE,CAAC;wBACX,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,wBAAwB,MAAM,EAAE,CAAC,CAAC;wBACtE,6DAA6D;wBAC7D,gFAAgF;wBAChF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;wBAC/E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;4BAC7B,IAAI,CAAC;gCACH,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;4BACnD,CAAC;4BAAC,OAAO,CAAM,EAAE,CAAC;gCAChB,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0CAA0C,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gCAC1F,OAAO;4BACT,CAAC;4BACD,IAAA,oBAAI,EAAC,cAAc,eAAe,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;gCAC7C,IAAI,CAAC;oCAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gCAAC,CAAC;gCAAC,MAAM,CAAC,CAAA,CAAC;gCAChD,IAAI,GAAG;oCAAE,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;;oCACpD,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;4BAClC,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,sBAAsB;YACtB,MAAM,gBAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"} \ No newline at end of file diff --git a/src/main/file_handlers.ts b/src/main/file_handlers.ts index 9f4e508..0037373 100644 --- a/src/main/file_handlers.ts +++ b/src/main/file_handlers.ts @@ -21,7 +21,7 @@ export function registerFileHandlers() { ipcMain.handle('native:check-cache', async (event, { cache_root, hash, hash_prefix_length = 2, verify_hash = false }) => { const full_path = get_organized_hashed_path(cache_root, hash, hash_prefix_length); - + if (!fs.existsSync(full_path)) return false; if (verify_hash) { @@ -42,7 +42,7 @@ export function registerFileHandlers() { const tmp_path = `${full_path}.tmp`; if (endpoints_in_progress.includes(url)) return { success: true, status: 'in_progress' }; - + // 1. If final file exists, skip if (fs.existsSync(full_path)) return { success: true, path: full_path, status: 'exists' }; @@ -106,14 +106,14 @@ export function registerFileHandlers() { const source = get_organized_hashed_path(cache_root, hash, hash_prefix_length); const expanded_temp = expandPath(temp_root); const target = path.join(expanded_temp, filename); - + console.log(`Native: Launching from Cache -> ${filename}`); if (!fs.existsSync(expanded_temp)) fs.mkdirSync(expanded_temp, { recursive: true }); - + // 1. Copy the file to temp folder with original name fs.copyFileSync(source, target); - + // 2. Determine file type const ext = path.extname(filename).toLowerCase().replace('.', ''); const is_pres = ['pptx', 'ppt', 'key', 'pdf', 'odp'].includes(ext); @@ -146,8 +146,10 @@ export function registerFileHandlers() { tell application "Microsoft PowerPoint" activate open (POSIX file "${target}") - delay 1 - run slide show of active presentation + delay 3 + end tell + tell application "System Events" + keystroke return using command down end tell `; }