¿Disminuye el brillo de la pantalla de MBP, usando AppleScript (y mientras usa un monitor secundario)?

1

Acabo de recibir un monitor secundario para usar con mi MacBook Pro (13 "Retina Early-2015). Anteriormente tenía AppleScripts para atenuar y aumentar el brillo de la pantalla MBP, ya sea sin barras o aproximadamente el 75%. pero ahora no están funcionando por algún motivo (sin el monitor externo conectado). También intenté usar Shades, pero ambas pantallas siguen parpadeando cada 2-3 segundos (prefiero usar un AppleScript también) .

Básicamente, mi monitor externo es mi pantalla principal y quiero poder atenuar mi pantalla MBP usando un AppleScript sin barras o alrededor del 75% (del cual los scripts serán redirigidos a atajos de teclado con una aplicación) .

¿Qué código AppleScript sería necesario para hacer esto?

EDITAR: Aquí está el antiguo que funcionó muy bien antes, pero por alguna razón se detuvo (sin un monitor externo conectado).

tell application "System Events"
    repeat 16 times
        key code 107
    end repeat
end tell

y

tell application "System Events"
    repeat 11 times
        key code 113
    end repeat
end tell
    
pregunta samseva 10.02.2017 - 18:02

3 respuestas

2

El problema no era tener un monitor secundario, era que también necesitaba un teclado externo.

Al usar un teclado externo, los códigos de las teclas de brillo cambian de 107 y 113 a 145 y 144 respectivamente, para bajar / aumentar el nivel de brillo.

Para cualquier persona interesada, los eventos key code correctos que funcionan con un teclado externo (probado / funciona con un teclado Apple externo) son:

Para reducir el brillo todo el tiempo, utilice:

tell application "System Events"
    repeat 16 times
        key code 145
    end repeat
end tell

El código anterior reducirá el brillo hasta el final, independientemente de dónde esté configurado actualmente. Si ya está configurado en un valor inferior al 100%, cualquier% extra de key code eventos, mientras se siguen ejecutando, se realizan de manera inofensiva y solo se ignoran cuando se ejecuta el código anterior.

Para aumentar el brillo a, por ejemplo, 75%, uso:

tell application "System Events"
    repeat 12 times
        key code 144
    end repeat
end tell

Tenga en cuenta que si desea una transición más suave, agregue un comando delay 0.02 a cada ciclo repeat , de lo contrario, la transición puede aparecer bastante abrupta.

    
respondido por el samseva 06.06.2017 - 01:23
2

Este script establecerá el valor del brillo de mi pantalla en un 75% en mi MacBook Pro con sistema operativo Sierra si solo tengo mi pantalla retina disponible en mis preferencias de pantalla

tellapplication"System Preferences"
    if it is running then
        quit
    end if
end tell
delay 0.2
activate application "System Preferences"
tell application "System Events"
    tell process "System Preferences"
        click button "Displays" of scroll area 1 of window "System Preferences"
        delay 1
        set value of value indicator 1 of slider 1 of group 2 of tab group 1 of window "Built-in Retina Display" to 0.75
    end tell
    delay 1
    quit application "System Preferences"
end tell

Este script establecerá el valor del brillo de mi pantalla en un 75% en mi MacBook Pro con sistema operativo Sierra si tengo una pantalla retina disponible y tengo Airplay activado y uso mi dispositivo Airplay como segundo monitor en las preferencias de pantalla

tellapplication"System Preferences"
    if it is running then
        quit
    end if
end tell
delay 0.2
activate application "System Preferences"
tell application "System Events"
    tell process "System Preferences"
        click button "Displays" of scroll area 1 of window "System Preferences"
        delay 1
        click radio button "Display" of tab group 1 of window "Built-in Retina Display"
        set value of value indicator 1 of slider 1 of group 1 of tab group 1 of window "Built-in Retina Display" to 0.75
    end tell
    delay 1
    quit application "System Preferences"
end tell

Sin embargo, para estos dos scripts, mi pantalla retina integrada es mi monitor principal.

Aquí hay una versión revisada de la secuencia de comandos que establecerá el brillo en un 75% sin traer la aplicación de preferencias del sistema al frente. Creo que encontrarás que esto es más eficiente.

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 "Built-in Retina Display"
    set value of value indicator 1 of slider 1 of group 2 of tab group 1 to 0.75
end tell
quit application "System Preferences"
    
respondido por el wch1zpink 10.02.2017 - 22:40
0

Este AppleScript pondrá instantáneamente todas las pantallas en suspensión.

do shell script "pmset displaysleepnow"
  1. las pantallas se volverán a encender cuando mueva el mouse / toque el teclado
  2. funciona con pantallas internas y externas
  3. sin demora en que la pantalla se apague
respondido por el spnkr 19.07.2018 - 07:46

Lea otras preguntas en las etiquetas