Script per alternare tra i tasti fn (con Touchbar)

1

Sto provando a scrivere uno script per alternare tra le chiavi Fn e i comandi delle app sulla Touchbar usando macOS High Sierra. Ci sono alcune app che dicono di poterlo fare ma nessuna sembra funzionare per Touchbar. Quindi sto cercando di scrivere uno script che apra le Preferenze di Sistema, le impostazioni della tastiera e l'impostazione della Touch Bar. Finora ho il codice sotto il quale commuta "Regola la luminosità della tastiera in condizioni di scarsa illuminazione". Devo solo regolare per selezionare un'opzione dal menu a discesa Touch Bar.

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"

    
posta Nick Huntsman 24.02.2018 - 07:44
fonte

2 risposte

1

Puoi controllare i componenti dell'interfaccia dell'interfaccia utente dell'applicazione che stai tentando di scrivere con il comando "Elementi dell'interfaccia utente"

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

puoi quindi eseguire il drill down dell'elenco per trovare dove è l'elemento richiesto

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

che attualmente utilizza App Inspector di Accessibilità (parte di Xcode) può aiutarti a identificare quale elemento da ispezionare

Per i nostri scopi, sembra che il popup a cui siamo interessati sia il  pulsante pop-up 2 del gruppo di schede 1 della finestra "Tastiera"

Poiché è un pop-up, per interagire con il suo menu, devi fare clic su di esso e quindi selezionare l'elemento che desideri attivare. Può essere fatto specificando l'intera etichetta della voce di menu su cui fare clic, ho preferito simulare le sequenze di tasti necessarie per cambiare la selezione (sia la freccia su o giù e poi il ritorno) ...

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"

a proposito, in un'altra domanda qualcuno ha notato che se non attivi activate l'app Preferenze di sistema, gli script funzioneranno ancora ma senza mostrare la sua finestra (vedrai comunque il menu popup essendo commutato, però)

    
risposta data 25.02.2018 - 19:08
fonte
0

Non sono in grado di testare, tuttavia il seguente esempio codice AppleScript è come lo scriverei.

  • Con click pop up button n , modifica n al numero corretto.
    • Esempio: click pop up button 2
  • Con click menu item n , modifica n al numero corretto, oppure usa la voce di menu name .
    • Esempi: click menu item 1 o click menu item "F1, F2, etc. Keys"
    • Tieni presente che poiché non riesco a testare, in questo esempio, 1 potrebbe non essere uguale a name mostrato.

Determina il valore corretto per n in entrambi click comandi , sostituendolo a seconda dei casi.

Esempio AppleScript codice :

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: il esempio codice AppleScript è proprio questo e non impiega alcuna gestione degli errori e si intende solo per mostrare uno dei molti modi in cui eseguire un compito. L'onere è sempre sull'Utente di aggiungere / utilizzare la gestione degli errori appropriata come necessario / desiderato.

Nota inoltre che il valore dei delay comandi potrebbe dover essere regolato per il tuo sistema e / o ulteriori delay comandi può o non può essere necessario. I comandi delay sono qui inclusi come esempio di ciò che può / può essere necessario a seconda di più di un fattore.

    
risposta data 24.02.2018 - 13:59
fonte

Leggi altre domande sui tag