Aquí hay una solución que hace utiliza scripts GUI:
En Automator, crea un servicio. Use la acción 'Ejecutar AppleScript', con el AppleScript a continuación. Luego, en Preferencias de servicios, puede asignar un método abreviado de teclado al servicio.
on run
-- get active application
tell application "System Events" to set activeApp to name of first application process whose frontmost is true
-- right click that application in the dock
tell application "System Events" to tell UI element activeApp of list 1 of process "Dock"
perform action "AXShowMenu"
click menu item "Options" of menu 1
-- is it currently checked?
set isChecked to value of attribute "AXMenuItemMarkChar" of menu item "All Desktops" of menu 1 of menu item "Options" of menu 1 as string
-- toggle between "None" and "All Desktops"
if (isChecked = "✓") then
perform action "AXShowMenu"
click menu item "Options" of menu 1
click menu item "None" of menu 1 of menu item "Options" of menu 1
else
perform action "AXShowMenu"
click menu item "Options" of menu 1
click menu item "All Desktops" of menu 1 of menu item "Options" of menu 1
end if
end tell
end run
Advertencias potenciales:
- es lento
- Parpadea brevemente el menú de opciones de acoplamiento
- Dejará de funcionar si cambia la interfaz de usuario
- Algunas veces (pero muy inconsistentemente, no todo el tiempo), se me pide que permita que la aplicación actual O Automator controle la computadora. No lo he hecho y todavía suele funcionar.