Script para alternar entre las teclas fn (con Touchbar)

1

Estoy tratando de escribir una secuencia de comandos para alternar entre las teclas Fn y los controles de la aplicación en la barra táctil usando macOS High Sierra. Hay algunas aplicaciones por ahí que dicen que pueden hacerlo pero ninguna parece funcionar para Touchbar. Así que ahora estoy tratando de escribir un script que abra las Preferencias del sistema, la configuración del teclado y la configuración de la barra táctil. Hasta ahora tengo el código debajo que alterna "Ajustar el brillo del teclado en condiciones de poca luz". Solo necesito ajustarme para seleccionar una opción del menú desplegable de la barra táctil.

tell application "System Preferences"
    activate
    set the current pane to pane id "com.apple.preference.keyboard"
    reveal anchor "keyboardTab" of pane id "com.apple.preference.keyboard"
end tell

tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
end tell

quit application "System Preferences"

    
pregunta Nick Huntsman 24.02.2018 - 07:44

2 respuestas

0

No estoy en condiciones de probar, sin embargo, el siguiente ejemplo AppleScript código es cómo lo escribiría.

  • Con click pop up button n , cambie n al número correcto.
    • Ejemplo: click pop up button 2
  • Con click menu item n , cambie n al número correcto, o use el elemento del menú name .
    • Ejemplos: click menu item 1 o click menu item "F1, F2, etc. Keys"
    • Tenga en cuenta que como no puedo probar, en este ejemplo, 1 puede no ser igual al name que se muestra.

Determine el valor correcto para n en ambos comandos click , reemplazándolo según corresponda.

Ejemplo AppleScript código :

tell application "System Preferences"
    reveal anchor "keyboardTab" of pane id "com.apple.preference.keyboard"
    activate
    delay 1
    tell application "System Events"
        tell tab group 1 of window 1 of application process "System Preferences"
            click pop up button n
            delay 0.2
            click menu item n
            delay 0.2
        end tell
    end tell
    quit
end tell

Nota: El ejemplo AppleScript código es solo eso y no emplea ningún manejo de errores y está destinado solo a mostrar una de las muchas maneras en que se puede realizar una tarea. La responsabilidad recae siempre sobre el Usuario para agregar / usar el manejo de errores según sea necesario / deseado.

También tenga en cuenta que el valor de los comandos delay puede necesitar un ajuste para su sistema y / o comandos adicionales delay Puede o no puede ser necesario. Los comandos delay se incluyen aquí como un ejemplo de lo que puede / puede ser necesario dependiendo de más de un factor.

    
respondido por el user3439894 24.02.2018 - 13:59
0

Puede verificar los componentes de la interfaz de la interfaz de usuario de la aplicación que está intentando ejecutar con el comando "Elementos de la interfaz de usuario"

tell application "System Events"
    tell application process "System Preferences"
        get the UI elements of the window "Keyboard"
    end tell
end tell

luego puede profundizar en la lista para encontrar dónde está el elemento requerido

tell application "System Events"
    tell application process "System Preferences"
        get the UI elements of tab group 1 of window "Keyboard"
    end tell
end tell

utilizando la aplicación del Inspector de accesibilidad (parte de Xcode) puede ayudarlo a identificar qué elemento inspeccionar

Para nuestros propósitos, parece que la ventana emergente en la que estamos interesados es la  botón emergente 2 del grupo de pestañas 1 de la ventana "Teclado"

Como es una ventana emergente, para interactuar con su menú, debe hacer clic en él y luego seleccionar el elemento que desea activar. Se puede hacer especificando la etiqueta completa del elemento del menú para hacer clic, prefiero simular las pulsaciones necesarias para cambiar la selección (ya sea la flecha hacia arriba o hacia abajo y luego la devolución) ...

tell application "System Preferences"
    -- activate
    reveal anchor "keyboardTab" of pane id "com.apple.preference.keyboard"
end tell

delay 0.5 -- this depends on how fast is your mac

tell application "System Events"
    tell application process "System Preferences"
        set thePopup to pop up button 2 of tab group 1 of window "Keyboard"

        tell thePopup
            click
            delay 0.2

            if the value of thePopup begins with "App" or the value of thePopup begins with "Expanded" then
                key code {125, 125, 125, 36}
            else
                key code {126, 36}
            end if

        end tell

    end tell
end tell

quit application "System Preferences"

por cierto, en otra pregunta, alguien notó que si no activa la aplicación de Preferencias del Sistema, los scripts seguirán funcionando pero sin mostrar su ventana (aún verá el menú emergente siendo cambiado, sin embargo)

    
respondido por el Gio Valerio 25.02.2018 - 19:08

Lea otras preguntas en las etiquetas