¿Cómo se puede abrir una pestaña específica en las preferences a través de Terminal?

Así que sé que puedo usar open /System/Library/PreferencePanes/Keyboard.prefPane para abrir las preferences del keyboard. Pero, ¿cómo puedo abrir la pestaña 'Accesos directos' específicamente?

  • Finder Window parpadea y desaparece al quitar el mínimo
  • ¿Cómo ejecutar Xcode 6 en macOS High Sierra (10.13)?
  • El puerto HDMI en MBPr 13 "(finales de 2013 11,1) dejó de funcionar después de la actualización 10.10.4
  • Método abreviado de keyboard de apagado en MacBook Pro con barra táctil
  • Escritorio remoto en macOS desde Windows
  • Desactivar la búsqueda en la barra de direcciones
  • ¿Por qué mi G5 funciona tan lento y caliente?
  • cómo saber la hora de inicio de la última hora de sueño
  • ¿Cómo puedo instalar Sierra en mi Mac Pro Tower a principios de 2008?
  • ¿Cómo se establece el límite de maxopenfiles en Yosemite?
  • Evite el apagado inadvertido de Mac
  • Cuando cierro mi MacBook, mi pantalla Ultrafine 4K permanece encendida (quiero que todo duerma)
  • 2 Solutions collect form web for “¿Cómo se puede abrir una pestaña específica en las preferences a través de Terminal?”

    Puede usar AppleScript desde la Terminal usando osascript:

    osascript -e "tell application \"System Preferences\"" -e "set the current pane to pane id \"com.apple.preference.keyboard\"" -e "reveal anchor \" shortcutsTab \" of pane id \"com.apple.preference.keyboard\"" -e "activate" -e "end tell"

    Reemplace 'shortcutsTab' con uno de 'keyboardTab', 'InputSources', 'shortcutsTab', 'Text', 'Dictation' o 'keyboardTab_ModifierKeys' para cambiar la pestaña que abre.

    Para encontrar la list de tabs disponibles en otros paneles de preferences, use
    osascript -e "tell application \"System Preferences\"" -e "set the current pane to pane id \"com.apple.preference. name \"" -e "get the name of every anchor of pane id \"com.apple.preference. name \"" -e "end tell" osascript -e "tell application \"System Preferences\"" -e "set the current pane to pane id \"com.apple.preference. name \"" -e "get the name of every anchor of pane id \"com.apple.preference. name \"" -e "end tell" donde 'nombre' es el nombre del panel de preferences.


    Para seleccionar una categoría específica de acceso directo, puede usar Eventos del sistema para seleccionar una fila de la tabla de la izquierda.

      osascript -e "tell application \" Preferences del sistema \ "" \
               -e "establece el panel actual en id del panel \" com.apple.preference.keyboard \ "" \
               -e "abreviar atajos \" atajosTab \ "de pane id \" com.apple.preference.keyboard \ "" \
               -e "fin decir"
               -e "tell application \" System Events \ "" \
               -e "decirle al process de request \" Preferences del sistema \ "" \
               -e "repite mientras no (window 1 existe)" \
               -e "fin repetir" \
               -e "tell window 1" \
               -e "repeat while not (la fila 1 de la tabla 1 del área de desplazamiento 1 del grupo de divisores 1 del grupo de tabs 1 existe)" \
               -e "fin repetir" \
               -e "select la fila i de la tabla 1 del área de desplazamiento 1 del grupo de divisores 1 del grupo de tabs 1" \
               -e "fin decir"
               -e "fin decir"
               -e "fin decir"
               -e "tell application \" Preferences del sistema \ "" \
               -e "activar"
               -e "fin decir" 

    'i' es el índice (contando desde 1) de la fila en la columna izquierda de la pestaña del panel de preferences. Las nuevas líneas (usando '\' en la línea anterior) y el espacio en blanco fuera de las marcas de voz son solo para formatear y se pueden omitir.

    Tenga cuidado con el uso de 'repeat while not' que espera que las Preferences del Sistema se abran en la página necesaria, sin embargo, esto congela el código hasta ese punto, y si Preferences del Sistema está preocupado por otra cosa como iniciar session en iCloud que puede ' No se interrumpirá, esto se congelará hasta que salga manualmente.

    Además de la respuesta de @grgarside (no tengo la reputación suficiente para publicar esto como un comentario, lo siento) no todos los ID coinciden con el patrón com.apple.preference.name (que me hizo tropezar por un time).

    A partir de macOS Sierra (10.12.2) hay 19 ID de paneles de preferences que coinciden con ese patrón, 8 que coinciden con el patrón com.apple.preferences.name (tenga en count la s) y dos valores atípicos ( com.apple.prefs.backup y com.apple.Localization ).

    Para get la ID del panel actual (que ya tiene abierto en Preferences del sistema), use:

     osascript -e "tell application \"System Preferences\"" -e "get the ID of the current pane" -e "end tell" 

    Para get todos los ID disponibles, use:

     osascript -e "tell application \"System Preferences\"" -e "get the ID of every pane" -e "end tell" 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).