Esta es una solución que hace utilizar scripts de GUI:
En Automator, cree un Servicio. Utiliza la acción "Ejecutar AppleScript", con el AppleScript de abajo. Luego, en las Preferencias de Servicios, puedes asignar un atajo 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
Posibles advertencias:
- Es lento
- Aparece brevemente el menú de opciones del muelle
- Dejará de funcionar si la interfaz de usuario cambia
- A veces (pero muy inconsistentemente, no todo el tiempo), se me pide que permita que la aplicación actual O Automator controle el ordenador. No he hecho eso y sigue funcionando normalmente.