Puedo elegir en Syst Prefs para que la barra de menú se muestre siempre u ocultar con auto-show (auto-show se muestra al pasar el mouse o al enfocar por teclado-atajo).
Pero cuando estoy trabajando, quiero que la barra de menús esté siempre visible. Y cuando estoy recreando, generalmente quiero que esté oculto.
Me gusta que con el dock pueda presionar commandoptiondpara mostrar u ocultar el dock, y permanece visible u oculto hasta que presione el mismo atajo nuevamente.
Ojalá la barra de menús funcionara de esta manera también. ¿Se puede crear tal atajo de alguna manera?
⌃⌘M
y ¡funciona muy bien! Mucho mejor que un servicio de automatización y preferencias de sistema vinculante clave.Respuestas:
Realizando algunos ajustes menores al código original desde la respuesta del usuario3439894. La ejecución de este código revisado no llevará la aplicación de preferencias del sistema al frente.
En algunos comentarios a mi respuesta, se ha señalado que donde tengo el comando de retraso en mi script, hace que el script falle. En mi sistema, este script funciona.
Sin embargo, este script en mi sistema no funcionará si pongo el comando de retraso antes del evento del sistema.
fuente
delay
! En este caso, debe haber un clicdelay
antesSystem Events
en la casilla de verificación , para permitir que el elemento esté disponible para actuar, y no necesita estar allí antes,quit
especialmente cuando está anidado como está escrito el mío.delay
donde lo tienen, sin embargo, mientras su código, tal como está escrito, falla en mi sistema, y no el suyo es el motivo por el que algunos scripts de interfaz de usuario no siempre son confiables en cada individuo sistema. Simplemente desde un punto de vista programático, la casilla de verificación debe estar disponible antes de que se pueda actuar, por la misma razón por la que no puede cerrar la aplicación antes de que se actúe y por qué un retraso es realmente apropiado en cualquier lugar según sea necesario (o deseado por alguna razón) ) y pueden necesitar valores diferentes según el sistema individual y su uso general.Usted preguntó: " ¿Se puede crear un acceso directo para alternar la visibilidad de la barra de menú (que persistiría, como lo hace el muelle)? " Y la respuesta corta es sí .
Sin embargo, la respuesta más larga es que, aunque es técnica y nativamente posible crear un flujo de trabajo del Servicio de Automator que se le asigna un atajo de teclado para ocultar / mostrar la barra de Menú en OS X 10.11 y posterior, incluido el macOS actual, no está exento de problemas.
Una posible solución al segundo punto anterior sería si hay una aplicación de terceros que se puede configurar globalmente para activar el flujo de trabajo del Servicio Automator (o el código AppleScript como un script AppleScript o una aplicación que no utiliza un Servicio Automator). Esto podría incluir aplicaciones como Alfred, FastScripts, Karabiner, Karabiner-Elements, Keyboard Maestro, etc., y al no haber probado estas aplicaciones de terceros en este escenario en particular, solo puedo ofrecer eso como algo a considerar.
Entonces, ¿qué tal una aplicación AppleScript que podría colocar en el Dock, para que esté fácilmente disponible para hacer clic, que alternará el estado de la barra de menús? Solo tendrá que agregar esa aplicación AppleScript a Preferencias del sistema> Seguridad y privacidad> Privacidad> Accesibilidad, para que funcione.
En lugar de una aplicación de terceros o como un Servicio Automator y solo como una aplicación AppleScript simple, tienes un atajo de teclado integrado a través de Spotlight, en el que presionas ⌘spacey el primer carácter o dos del nombre que le diste la aplicación AppleScript y luego presione enter. Como ejemplo, asígnele el nombre tmb.app para alternar la barra de menú, presionaría ⌘spacetmenterpara activar la aplicación AppleScript. Después de todo, doblo ya tienes una aplicación llamada tm instalada.
Sin embargo, dicho esto, no está exento de posibles problemas, ya que depende de las secuencias de comandos de la interfaz de usuario, lo que significa que tiene que abrir las Preferencias del sistema a la configuración General y hacer clic en la casilla de verificación "Ocultar y mostrar automáticamente la barra de menú" y cerrar las Preferencias del sistema. Esto significa que una vez que activó la aplicación, debe dejar que se ejecute y no robar manualmente el foco de las Preferencias del Sistema mientras se llevan a cabo los eventos de Scripting UI. En otras palabras, debe detener la multitarea durante un par de segundos.
En parte, uno de los problemas al usar AppleScript y / o las secuencias de comandos de la interfaz de usuario para ocultar / mostrar la barra de menú es que no es tan elegante como ocultar el Dock con su atajo de teclado incorporado, pero al menos es factible.
Dicho todo esto, aquí está el código AppleScript, que se puede usar en una aplicación / script AppleScript, en un servicio Automator o, posiblemente, en una aplicación de terceros, que alternará el estado de la barra de menú en OS X 10.11 y posterior a través de secuencias de comandos UI.
Tenga en cuenta que no hay verificación de errores para garantizar que este código se ejecute en OS X 10.11 y posteriores, así que no intente usarlo en versiones de OS X anteriores a 10.11. También tenga en cuenta que el valor del
delay
comando puede necesitar ajustarse según sea necesario bajo las condiciones de trabajo de su sistema.fuente
activate
porset bounds of window 1 to {0, 0, 0, 0}
y, por lo tanto, no ve la ventana de Preferencias del sistema pero hace el cambio. En realidad, podrías dejar a ambos fuera y no deberías ver la interfaz de usuario.tmb
luego realizar búsquedas posteriores de solo tm show tmb antes de Time Machine . Dicho esto, podría nombrarlo de otra manera que no coincidiría con nada más. Acabo de sugerir tmb, ya que hace que sea fácil de recordar para la barra de menú de alternancia , cuyo nombre completo como ese no abriría Time Machine, sino que también podría captar otras cosas. Tendrá que averiguar qué convención de nombres funciona mejor para que solo tenga que escribir uno o dos caracteres después⌘space
.Estoy publicando esto como una segunda respuesta en lugar de editar mi respuesta original, ya que esta nueva versión del ejemplo del código AppleScript acomoda los problemas planteados con el uso del comando y dónde se colocó en el código presentado por wch1zpink y yo entre nuestras versiones de El código .
delay
El nuevo código envuelve un valor mucho más pequeño para el
delay
comando en unrepeat
bucle , lo que hace que el código general se ejecute más rápido al tiempo que acomoda el diferencial de tiempo basado en las especificaciones del sistema de la computadora en la que se ha ejecutado. Además, debido al uso de secuencias de comandos de la interfaz de usuario , los dosrepeat
bucles aseguran que los elementos de la interfaz de usuario estén disponibles y que se hayan cambiado respectivamente antes de continuar dentro del código .Este código fue probado bajo macOS High Sierra y funcionó como una aplicación AppleScript , servicio Automator , como se describe en mi respuesta original, y como un archivo .scpt de AppleScript activado por FastScripts con un atajo de teclado asignado, como con el servicio Automator .
Ejemplo de código AppleScript :
Desplácese según sea necesario para ver el código completo .
Nota: El código de AppleScript de ejemplo es solo eso y, además del manejo de errores incluido, no contiene ningún manejo de errores adicional, según corresponda. La responsabilidad recae sobre el uso para agregar cualquier manejo de errores según sea apropiado, necesario o deseado. Observe la declaración de prueba y la declaración de error en la Guía del lenguaje AppleScript . Ver también, Trabajar con errores .
También tenga en cuenta que no estoy afiliado con Red Sweater Software , el desarrollador de FastScripts , solo un usuario satisfecho de su producto.
fuente
Instrucciones aquí: https://appleinsider.com/articles/18/03/14/how-to-create-keyboard-shortcuts-to-launch-apps-in-macos-using-automator
fuente