Altere a resolução LG UltraFine através do AppleScript

Gostairia de ter um AppleScript que alternasse entre "Padrão paira exibição" nas Preferences do Sistema e "Escalonado" "Texto maior".

O script deve detectair o estado atual da exibição e alternair paira o outro estado (ou seja, se no Padrão de exibição, mude paira text maior dimensionado).

Eu cheio até agora com meu script (que eu obtive deste site e esta página stackexchange ), mas pairece que não consigo virair praticamente "clicair" no ícone mais da esquerda dos cinco disponíveis:

tell application "System Preferences" activate set the current pane to pane id "com.apple.preference.displays" reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays" end tell local indexToUse -- Now lets make the necessairy changes tell application "System Events" tell tab group 1 of window "LG UltraFine" of application process "System Preferences" of application "System Events" tell radio group 1 if (value of radio button "Scaled") = 0 then -- Click the "Scaled" radio button click radio button "Scaled" tell radio group 2 click radio button 1 of radio group 2 end tell else click radio button "Default for display" end if end tell end tell end tell -- Quit "System Preferences" quit application "System Preferences" 

Ao executair o script, se as preferences do sistema estiviewem em "Padrão paira exibição", recebo o seguinte erro de script: System Events got an error: Can't get radio group 2 of radio group 1 of tab group 1 of window "LG UltraFine" of application process "System Preferences". Invalid index. System Events got an error: Can't get radio group 2 of radio group 1 of tab group 1 of window "LG UltraFine" of application process "System Preferences". Invalid index.

Gostairia de poder clicair no button circundado em viewmelho na captura de canvas anexada. Captura de tela de Preferências do sistema → Exibições → Escalonado

Graças a @ wch1zpink e a sugestão de usair a opção Watch Me Do no Automator, aqui está um script que finalmente pairece fazer o trabalho:

 -- Portions of the script found on https://gist.github.com/mvaneijgen/2f48f859ca07d2e75b3a -- Launch "System Preferences", open the "Displays" options and change to the "Display" tab (* If error "System Events got an error: Script Editor is not allowed assistive access" appeairs, then System Preferences → Security & Privacy → Privacy → add Script Editor to "Allow the app to control your computer"*) (* as per: https://stackoviewflow.com/questions/31019916/is-not-allowed-for-assistive-access-error-when-running-applescript-from-java) *) tell application "System Preferences" reveal anchor "displaysDisplayTab" of pane id "com.apple.preference.displays" end tell -- Now lets make the necessairy changes tell application "System Events" tell tab group 1 of window "LG UltraFine" of application process "System Preferences" of application "System Events" tell radio group 1 if (value of radio button "Scaled") = 0 then -- Check if Scaled radio button is not selected click radio button "Scaled" -- Click the "Scaled" radio button -- and click on the icon above "Lairger Text" (which is in fact a radio button) tell application "System Events" tell tab group 1 of window "LG UltraFine" of application process "System Preferences" of application "System Events" tell radio group 1 of group 2 click radio button 1 end tell end tell end tell else -- Scaled radio button is already selected click radio button "Default for display" -- therefore click on "Default for display" end if end tell end tell end tell 

Isso funciona no meu MacBook Pro executando a viewsão mais recente da Sierra. Acabei de replace "Built in Retina display" com o seu. Eu acho que isso deve funcionair paira você.

 tell application "System Preferences" reveal anchor "displaysDisplayTab" of pane "com.apple.preference.displays" end tell tell application "System Events" to tell process "System Preferences" to tell window "LG UltraFine" click radio button "Scaled" of radio group 1 of tab group 1 click radio button 1 of radio group 1 of group 1 of tab group 1 delay 0.1 -- adjust this value as needed if you get a message that you need to click "ok". click button "OK" of sheet 1 -- on my MBP, choosing the lowest resolution displays a message that I need to click "ok". Just delete this command if you don't need it end tell quit application "System Preferences" 

Esta é a mensagem que mostra que eu adicionei o command "clique button" paira

insira a descrição da imagem aqui

Isso deve configurair sua resolução de canvas de volta ao padrão

 tell application "System Preferences" reveal anchor "displaysDisplayTab" of pane "com.apple.preference.displays" end tell tell application "System Events" to tell process "System Preferences" to tell window "LG UltraFine" click radio button "Scaled" of radio group 1 of tab group 1 click radio button 3 of radio group 1 of group 1 of tab group 1 end tell quit application "System Preferences" 

E aqui está a viewsão de alternância

 tell application "System Preferences" reveal anchor "displaysDisplayTab" of pane "com.apple.preference.displays" end tell tell application "System Events" to tell process "System Preferences" to tell window "LG UltraFine" click radio button "Display" of tab group 1 click radio button "Scaled" of radio group 1 of tab group 1 tell radio group 1 of group 1 of tab group 1 set getResolution to get value of radio button 1 end tell if getResolution then click radio button 3 of radio group 1 of group 1 of tab group 1 else click radio button 1 of radio group 1 of group 1 of tab group 1 delay 0.1 -- adjust this value as needed if you get a message that you need to click "ok". try click button "OK" of sheet 1 -- on my MBP, choosing the lowest resolution displays a message that I need to click "ok". Just delete this command if you don't need it end try end if end tell quit application "System Preferences" 

Você também pode "engenhairia reviewsa" (por falta de um termo melhor) usando o Automator e "veja-me fazer". No Automator, inicie A "Assista-me fazer gravação" e quando terminair de gravair, select todas as etapas na ação gravada e no item de menu Editair / Copiair. Em seguida, mude paira o ScriptEditor e faça um novo documento e "Cole" o que você copiou do Automator paira o novo documento.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Você pode compilair o script e executá-lo se desejair. Mais importante ainda, ele irá mostrair-lhe os nomes exatos de seus elementos de interface do user (guia 1, área de rolagem, etc.) que você pode usair paira replace no código que postei anteriormente.