¿Cómo se puede activar la barra de menú de secuencias de comandos con AppleScript?

1

En AppleScript, si desea mostrar el Script Menu en la barra de menú, debe:

  1. Haga clic en Aplicaciones
  2. Desplácese hacia abajo y haga clic en Utilidades
  3. Haga clic en Editor de secuencias de comandos (esto se llamó Editor de AppleScript en OS X más antiguo versiones)
  4. Haga clic en el elemento de menú "Editor de secuencias de comandos", luego haga clic en "Preferencias ..."
  5. En el cuadro de diálogo Preferencias, haga clic en "Mostrar menú de secuencias de comandos en la barra de menú"
  6. Si no se selecciona, deseará habilitar "Mostrar guiones de computadora" opción

¿pero hay un archivo en el sistema al que puedo apuntar para activar esto en un script? Intento construir un instalador que lo activará cuando no esté activo, pero tengo problemas para encontrar dónde puedo encontrarlo en el sistema. No importa un do shell pero prefiere no usar Automator.

    
pregunta ʀ2ᴅ2 10.07.2018 - 19:05

2 respuestas

2

Si no desea pasar por Editor de secuencias de comandos > Preferencias > General para marcar la casilla de verificación
[] Mostrar secuencia de comandos en la barra de menú , a continuación, esta es una forma de habilitar la Menú de secuencia de comandos usando AppleScript :

tell application "System Events"
    if not (script menu enabled) then
        tell current application
            do shell script "open '/System/Library/CoreServices/Menu Extras/Script Menu.menu'"
        end tell
    end if
end tell

Puedes usar:

do shell script "open '/System/Library/CoreServices/Menu Extras/Script Menu.menu'"

Sin embargo, dado que Eventos del sistema tiene una propiedad script menu enabled , tiene sentido verificar si está habilitado primero o no. De todas formas, al abrir el archivo de destino se carga el Menú de secuencias de comandos y se comprueba la [√] Menú Mostrar secuencias de comandos en la barra de menú en: < fuerte> Editor de secuencias de comandos > Preferencias > General

También, desde Terminal , simplemente puedes ejecutar:

open '/System/Library/CoreServices/Menu Extras/Script Menu.menu'

Abrir el archivo de destino de la manera que se muestra cumple el objetivo.

Por cierto, cuando Script Menu está habilitado, target plist file es:

com.apple.systemuiserver.plist

La clave es un Boolean y es NSStatusItem Visible com.apple.scriptmenu , y también tendrá un elemento en la matriz menuExtras como String que tiene el nombre de ruta del elemento.

Tenga en cuenta que la información anterior se recopiló en macOS 10.13.5 .

    
respondido por el user3439894 13.07.2018 - 14:00
0

Esta preferencia es controlada por el plist en la siguiente ruta: ~/Library/Preferences/com.apple.scriptmenu.plist .

Que contiene lo siguiente (cuando está apagado):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>ScriptMenuEnabled</key>
    <false/>
</dict>
</plist>

El false se cambia a true cuando se activa.

Cambia esta preferencia con un comando defaults en bash .

defaults write com.apple.scriptmenu.plist ScriptMenuEnabled true

o

defaults write com.apple.scriptmenu.plist ScriptMenuEnabled false

Así que en AppleScript:

do shell script "defaults write com.apple.scriptmenu.plist ScriptMenuEnabled true"

o

do shell script "defaults write com.apple.scriptmenu.plist ScriptMenuEnabled false"
    
respondido por el JBis 10.07.2018 - 19:43

Lea otras preguntas en las etiquetas