From aecaa396098d32a6a86de294d2da70205fe93f8b Mon Sep 17 00:00:00 2001 From: Daniel Romischer Date: Wed, 28 Jan 2026 19:20:23 -0500 Subject: [PATCH] more playing around spyder scripts let's bounce. --- .DS_Store | Bin 10244 -> 12292 bytes SpyderScripts/.DS_Store | Bin 0 -> 6148 bytes SpyderScripts/minimize_all.py | 100 +++++++++++++++++++++++++++++ SpyderScripts/minimize_all_best.sh | 54 ++++++++++++++++ SpyderScripts/run_script.zsh | 32 +++++++++ 5 files changed, 186 insertions(+) create mode 100644 SpyderScripts/.DS_Store create mode 100644 SpyderScripts/minimize_all.py create mode 100755 SpyderScripts/minimize_all_best.sh create mode 100755 SpyderScripts/run_script.zsh diff --git a/.DS_Store b/.DS_Store index f0090ff608841a9e5fbc1e9c0e97dad726ed94db..8b818fd7f4bd07c368fd6911258a84a70a5bbd3d 100644 GIT binary patch delta 464 zcmZn(Xh~3DU|?W$DortDV9)?EIe-{M3-ADmb_NCo?uiQOvdlmZBM>VCF_105z);K( z&ydcL4}|Fx3za7usIaht6tGNg5LBA{OGtFGyMW!sA}03D>>Ml{j3OZ6%?832ER$ag zmWmmfo0{t=SX!9Y>L^qj8k!sFD43gDPW~@#JefsYcCw3v>1J(FV@9T;hRF$HMVl3* zPBP-w)4aJ-0-|=EWYK0#xqFNo8`zl{`6lxS9GILb-GE!C@#Omgikp39G8q}c7J;~v z&j@S>(L80rMR_^-dFddZ16}_BpD`h7 delta 380 zcmZokXbF&DU|?W$DortDU{C-uIe-{M3-C-V6q~3gIoUvmMH0wokOyK$pg4nPPJVJy zPJR+d(Plx$Z)}ql7}suQ=V0Mrl%LF_aA5Lg`61RM{tHY+|CLU}$V)T&tr{ zZD?q0prc@JYBBkvi1FkDs`8U>sS8dn6;PbGNp!NafZ}F70Sgw!-IH%96lzIVR~wlb zngcZ(SsH>h8yFdZG@IAfa&m|&>strKXXoVR<@Ziz6qRS}o2)1ry18D`n2{-mVe%HK zqRq16CmF@eOo4g~4K0l@t=E?f*!)`2gpn~}vVwBaW;N-1jDpM{j{^PA4J2GaVF2{s qcjn3bI)5$0kf+1UVA0A6PR diff --git a/SpyderScripts/.DS_Store b/SpyderScripts/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..411a26cb38de49808e0eab95f9df7cd7f29ecae0 GIT binary patch literal 6148 zcmeHKK~BRk5S$G?6d^$mJ#e&mKqY<T*NeD8<0H|38BOg zD)EUSA)Iy>{nChSzz`1cBQsANS>g*t{OGhh?+!@=T4@Xz1KSK7gyu-k|LOks|8|hI zi~(cdPca~a{3_2lrFgdXCZ}huqux+e)UOS=31P(_#q`yq_>}5}cBd6$8nF#X3&k!1 Mo(3z7fgfey3n6?^00000 literal 0 HcmV?d00001 diff --git a/SpyderScripts/minimize_all.py b/SpyderScripts/minimize_all.py new file mode 100644 index 0000000..ae43774 --- /dev/null +++ b/SpyderScripts/minimize_all.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python3 +""" +Minimize All Windows - Python Version +Requires: pip3 install pyobjc-framework-Cocoa pyobjc-framework-Quartz + +This uses native macOS APIs which should be more reliable than AppleScript. +""" + +import time +from Cocoa import NSWorkspace, NSRunningApplication +from Quartz import ( + CGWindowListCopyWindowInfo, + kCGWindowListOptionOnScreenOnly, + kCGNullWindowID +) +import subprocess + +def get_all_windows(): + """Get all visible windows from all apps""" + window_list = CGWindowListCopyWindowInfo( + kCGWindowListOptionOnScreenOnly, + kCGNullWindowID + ) + return window_list + +def minimize_window_via_applescript(app_name): + """Use AppleScript to minimize the frontmost window of an app""" + script = f''' + tell application "{app_name}" + activate + end tell + delay 0.8 + tell application "System Events" + tell process "{app_name}" + set frontmost to true + delay 0.4 + keystroke "m" using command down + end tell + end tell + ''' + try: + subprocess.run(['osascript', '-e', script], timeout=5, check=False) + return True + except Exception as e: + print(f"Failed to minimize {app_name}: {e}") + return False + +def main(): + # Apps to skip + skip_apps = {'Finder', 'SystemUIServer', 'Dock', 'Electron', 'MSTeams', 'nxdock'} + skip_keywords = ['Helper', 'Agent'] + + # Get all running applications + workspace = NSWorkspace.sharedWorkspace() + running_apps = workspace.runningApplications() + + processed_apps = set() + + for app in running_apps: + app_name = app.localizedName() + + # Skip if already processed + if app_name in processed_apps: + continue + + # Skip system apps and problematic apps + if app_name in skip_apps: + continue + + # Skip apps with certain keywords + if any(keyword in app_name for keyword in skip_keywords): + continue + + # Skip if not a regular app + if not app.activationPolicy() == 0: # NSApplicationActivationPolicyRegular + continue + + print(f"Processing: {app_name}") + minimize_window_via_applescript(app_name) + processed_apps.add(app_name) + time.sleep(0.3) + + # Handle Finder windows separately + print("Processing: Finder windows") + finder_script = ''' + tell application "Finder" + try + set allWindows to every Finder window + repeat with aWindow in allWindows + set miniaturized of aWindow to true + end repeat + end try + end tell + ''' + subprocess.run(['osascript', '-e', finder_script], check=False) + + print("Done minimizing all windows") + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/SpyderScripts/minimize_all_best.sh b/SpyderScripts/minimize_all_best.sh new file mode 100755 index 0000000..e9bfa72 --- /dev/null +++ b/SpyderScripts/minimize_all_best.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# Minimize All Windows - Simplified and Improved + +osascript <