No dijiste qué versión de OS X estás usando, aunque supongo que es OS X El Capitan, que es la prueba bajo. Esto es una especie de kludge pero funciona de todos modos. Con el Editor de scripts y el código de AppleScript a continuación, hice una aplicación AppleScript que alterna el estado de ocultar / mostrar la Dock y la barra de menús, así como cambiar el fondo de pantalla entre los dos estados.
Aquí es donde entra kludge . Debido a que no hay una forma explícita, que yo sepa, de codificar el script para hacer todo lo que esté en segundo plano tan fácilmente como cambiar el estado del ocultamiento automático preferencia del Dock y cambio del fondo de pantalla, es necesario utilizar una combinación de métodos. Uno de los cuales requiere otorgar a la aplicación derechos de acceso de asistencia para realizar la conmutación de la casilla de verificación "Ocultar automáticamente y mostrar la barra de menú" en la sección General de Preferencias del sistema.
Sería bueno si algo como tell menu preferences to set autohide to not autohide
funcionara de la misma manera que lo hace para el Dock, pero no es así y por qué es necesario usar un método programático UI para cambiar el estado de la barra de menús.
De lo contrario, todo esto podría hacerse en segundo plano y no tener que dar permiso a la aplicación para manipular la interfaz de usuario. (En realidad, hay una forma, sin embargo, no es tan limpia como es, ya que requiere que el buscador se elimine mediante programación para que el cambio en el archivo de preferencias globales .plist cambie el estado de la barra de menús para que tenga efecto. método a medida que los cambios aparecen con más gracia, entonces ... bam ... hecho y ahora me pregunto qué diablos acaba de suceder.)
Nota: Como estoy codificado, asumo que el estado del Dock y la barra de menús están sincronizados. En otras palabras, ambos siempre se muestran u ocultan juntos en el uso normal y, como tal, este script alterna el estado de cada uno al contrario del estado actual antes de su ejecución. Si ese no es el caso, entonces es necesario aplicar lógica adicional.
En este ejemplo, código , el fondo de pantalla se establece entre el valor predeterminado de OS X El Capitan y otro en su colección de Imágenes de escritorio. Obviamente, puedes elegir lo que quieras para cada estado.
El único código que deberías cambiar es la ruta de acceso de los archivos de imagen que se utilizan para el fondo de escritorio.
tell application "System Preferences"
activate
reveal pane id "com.apple.preference.general"
delay 1
end tell
tell application "System Events"
click checkbox "Automatically hide and show the menu bar" of window "General" of process "System Preferences"
key code 12 using command down
tell dock preferences to set autohide to not autohide
if (get autohide of dock preferences) is false then
set picture of desktop 1 to POSIX file "/Library/Desktop Pictures/El Capitan.jpg"
else
set picture of desktop 1 to POSIX file "/Library/Desktop Pictures/Desert.jpg"
end if
end tell
Para usar este código , haga lo siguiente:
-
Abre el Editor de secuencias de comandos.
-
Copie y pegue el código del navegador al Editor de secuencias de comandos.
-
Edite los nombres de ruta de las imágenes que se utilizarán para el fondo de pantalla.
-
Guarde el script como una aplicación.
-
Abra una ventana del Finder en la ubicación donde guardó la aplicación. (Esto es para facilitar el acceso de asistencia en las siguientes instrucciones).
-
Abra las Preferencias del sistema y navegue hasta: Seguridad & Privacidad > Accesibilidad > Privacidad
-
Haz clic en el bloqueo para realizar cambios.
-
Proporcione las credenciales adecuadas y haga clic en Desbloquear.
-
Arrastre y suelte la aplicación desde el Finder en "Permitir que las aplicaciones a continuación controlen su computadora". ventana y luego marque la casilla de verificación junto al nombre de la aplicación.
- O si no lo localizó primero en Finder, haga clic en el botón [+] y navegue hasta la ubicación donde guardó la aplicación, etc.
-
Cerrar las preferencias del sistema.
Eso es todo ... Ahora debería estar listo para usar.