Riduci luminosità dello schermo di MBP, usando AppleScript (e mentre usi un monitor secondario)?

2

Ho appena ricevuto un monitor secondario da utilizzare con il mio MacBook Pro (Retina Early-2015 da 13 pollici). In precedenza avevo AppleScript per l'oscuramento e per aumentare la luminosità dello schermo di MBP - né a barre né a circa il 75% - ma ora non funzionano per qualche motivo (w / o w / o il monitor esterno collegato). Ho anche provato a usare Shades ma entrambi gli schermi continuano a lampeggiare ogni 2-3 secondi (preferisco usare anche un AppleScript) .

Fondamentalmente, il mio monitor esterno è la mia schermata principale e voglio essere in grado di oscurare lo schermo del mio MBP usando un AppleScript senza barre o circa il 75% (di cui gli script saranno poi reindirizzati a scorciatoie da tastiera con un'applicazione) .

Quale codice AppleScript sarebbe necessario per fare questo?

EDIT: Ecco il vecchio che ha funzionato molto bene prima, ma per qualche motivo si è fermato (senza un monitor esterno collegato).

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

e

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

3 risposte

2

Avere un monitor secondario non era il problema, era che avevo anche bisogno di una tastiera esterna.

Quando si utilizza una tastiera esterna, i codici dei tasti di luminosità cambiano da 107 e 113 a 145 e 144 rispettivamente, per abbassare / aumentare il livello di luminosità.

Per chiunque sia interessato, gli eventi di key code corretti che funzionano con una tastiera esterna (testato / funziona con una tastiera Apple esterna) sono:

Per abbassare completamente la luminosità, utilizzare:

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

Il codice sopra riportato abbasserà la luminosità fino in fondo, indipendentemente da dove è attualmente impostata. Se è già impostato a valori inferiori al 100%, qualsiasi evento key code extra inferiore, mentre viene ancora eseguito, viene eseguito in modo innocuo e viene semplicemente ignorato quando viene eseguito il codice precedente.

Per aumentare la luminosità, ad es. 75%, utilizzare:

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

Nota che se vuoi una transizione soffocata, aggiungi un delay 0.02 comando a ogni repeat loop , altrimenti la transizione può apparire abbastanza brusca.

    
risposta data 06.06.2017 - 01:23
fonte
3

Questo script imposterà il valore della mia luminosità del display al 75% sul mio MacBook Pro con OS Sierra se ho solo il mio display retina disponibile nelle mie preferenze di visualizzazione

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

Questo script imposterà il valore della mia luminosità del display al 75% sul mio MacBook Pro con OS Sierra se ho un display retina disponibile e ho attivato l'airplay e uso il mio dispositivo airplay come secondo monitor nelle preferenze di visualizzazione

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

Per entrambi questi script, però, il mio monitor a retina incorporato è il mio monitor principale.

Ecco una versione riveduta dello script che imposta la luminosità al 75% senza portare l'applicazione delle preferenze di sistema in primo piano. Penso che troverai questo per essere più efficiente.

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"
    
risposta data 10.02.2017 - 22:40
fonte
0

Questo AppleScript metterà immediatamente tutti i display in stop.

do shell script "pmset displaysleepnow"
  1. i display si riaccendono quando muovi il mouse / tocca la tastiera
  2. funziona con display sia interni che esterni
  3. nessun ritardo nello schermo che diventa scuro
risposta data 19.07.2018 - 07:46
fonte

Leggi altre domande sui tag