¿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?

  • ¿Cómo enviar posts de text con telnet en la Terminal?
  • ¿Qué administrador de files ortodoxo para OS X podría usar?
  • Forma sencilla de desactivar núcleos de procesador sobre la marcha
  • ¿Cómo instalar Windows 8.1 en Haswell Mac?
  • ¿Puedo mover mi Dock al lado izquierdo de mi monitor derecho?
  • ¿Qué necesito para actualizar una Mac?
  • Actualización del software CLI no encuentra actualizaciones
  • ¿Cómo desactivo AirDrop en el menu de macOS Share?
  • Eliminar datos personales de OSX sin eliminar usuario o reinstalar SO
  • Ver el error discoveryd: el código de retorno DNSResolver básico es 9 y lo estamos tratando como un error.
  • ¿Dónde puedo ir para realizar requestes de mejoras / características para OSX Lion?
  • iMessage: ¿cómo busco palabras key en un hilo de post individual?
  • 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).