Kecerahan layar redup MBP, menggunakan AppleScript (dan saat menggunakan monitor sekunder)?

3

Saya baru saja menggunakan monitor sekunder untuk digunakan dengan MacBook Pro (13 "Retina Awal-2015). Saya sebelumnya memiliki AppleScripts untuk meredupkan dan untuk meningkatkan kecerahan layar MBP — baik tanpa bar atau sekitar 75% - tetapi sekarang mereka tidak bekerja karena suatu alasan (tanpa atau dengan monitor eksternal terhubung) Saya juga mencoba menggunakan Shades tetapi kedua layar terus berkedip setiap 2-3 detik (Saya lebih suka menggunakan AppleScript juga).

Pada dasarnya, monitor eksternal saya adalah layar utama saya dan saya ingin dapat meredupkan layar MBP saya menggunakan AppleScript menjadi tidak ada bar atau sekitar 75% (di mana skrip kemudian akan diarahkan ke pintasan keyboard dengan aplikasi).

Kode AppleScript apa yang diperlukan untuk melakukan ini?

EDIT: Ini adalah yang lama yang bekerja dengan sangat baik sebelumnya, tetapi untuk beberapa alasan berhenti (tanpa monitor eksternal terpasang).

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

dan

tell application "System Events"
    repeat 11 times
        key code 113
    end repeat
end tell
samseva
sumber
Karena Anda sudah memiliki beberapa kode AppleScript yang pada satu waktu melakukan apa yang Anda inginkan, mengapa tidak men-debug kode itu agar berfungsi lagi? Yang mengatakan, karena Anda memiliki kode yang pada satu waktu berfungsi dan ternyata tidak sekarang, mengapa tidak memasukkan kode dalam pertanyaan Anda dan perubahan kondisi yang menyebabkannya tidak lagi berfungsi. Kami mungkin dapat men-debug itu. Apakah Anda meningkatkan ke versi utama berbeda dari OS X atau dari OS X ke mac OS, dll?
user3439894
Menambahkan kode lama ke pos.
samseva
Saya menemukan apa yang menyebabkan AppleScript berhenti bekerja. Karena saya mendapat monitor eksternal, saya juga harus mendapatkan keyboard Apple terpisah. Saat keyboard dicolokkan, skrip tidak berfungsi (berfungsi saat tidak).
samseva

Jawaban:

4

Skrip ini akan menetapkan nilai kecerahan layar saya menjadi 75% pada MacBook Pro saya yang menjalankan OS Sierra jika saya hanya memiliki layar retina saya yang tersedia di preferensi tampilan saya

masukkan deskripsi gambar di sini


tell application "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

Skrip ini akan menetapkan nilai kecerahan layar saya menjadi 75% pada MacBook Pro saya yang menjalankan OS Sierra jika saya memiliki layar retina yang tersedia dan saya memiliki airplay diaktifkan dan menggunakan perangkat airplay saya sebagai monitor kedua dalam preferensi tampilan

masukkan deskripsi gambar di sini

tell application "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

Untuk kedua skrip ini, layar retina bawaan saya adalah monitor utama saya.

Berikut ini adalah versi naskah yang direvisi yang akan mengatur kecerahan hingga 75% tanpa membawa aplikasi preferensi sistem ke depan. Saya pikir Anda akan menemukan ini menjadi lebih efisien.

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"
wch1zpink
sumber
Saya sebenarnya baru menguji skrip kedua dengan retina built-in display saya yang diatur sebagai monitor utama saya dan lagi dengan airplay display saya diatur sebagai monitor utama saya dan skrip bekerja dua kali.
wch1zpink
Kode 1 tidak berfungsi dan memberi saya kesalahan. Kode ke-2 berfungsi, tetapi harus meluncurkan System Preferences setiap saat.
samseva
1
@samseva Saya menambahkan versi skrip yang tidak akan membawa preferensi sistem ke depan
wch1zpink
Mengapa Anda tidak membuat skrip terakhir itu menjadi dua sekaligus juga? Tidak ada yang ingin melihat System Preferences muncul ketika menggunakan kode ini
theonlygusti
4

Memiliki monitor sekunder bukanlah masalahnya, saya juga membutuhkan keyboard eksternal.

Saat menggunakan keyboard eksternal, kode kunci kecerahan berubah dari 107dan 113ke 145dan 144masing - masing, untuk menurunkan / menaikkan tingkat kecerahan.

Bagi siapa pun yang tertarik, key codeperistiwa yang benar yang bekerja dengan keyboard eksternal (diuji / bekerja dengan keyboard Apple eksternal) adalah:

Untuk menurunkan kecerahan, gunakan:

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

Kode di atas akan menurunkan kecerahan sepenuhnya, terlepas dari di mana pengaturannya saat ini. Jika sudah diatur pada apa pun di bawah 100%, key codeperistiwa tambahan yang lebih rendah , saat masih dieksekusi, dilakukan tanpa membahayakan dan hanya diabaikan ketika kode di atas berjalan.

Untuk menaikkan kecerahan ke, misalnya 75%, gunakan:

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

Perhatikan bahwa jika Anda menginginkan transisi yang lebih baik, tambahkan delay 0.02 perintah ke setiap repeat loop , jika tidak transisi tersebut dapat muncul secara mendadak.

samseva
sumber
FWIW Saya menggunakan MacBooK Pro saya dengan Thunderbolt Display, sebagian besar dalam Mode Clamshell dan dengan keyboard eksternal, namun dalam skenario mana pun, Tampilan MBP dibuka / ditutup, jika keyboard eksternal tidak terpasang maka 107/ 113untuk menurunkan / meningkatkan / meningkatkan kecerahan bekerja. Hanya dengan keyboard eksternal yang terpasang yang harus saya gunakan 145dan 144untuk menurunkan / meningkatkan kecerahan. Omong-omong, ini hanya mengubah kecerahan pada layar eksternal dalam konfigurasi apa pun di sistem saya.
user3439894
1
@ user349894 Anda mengubah 75% dari jawaban saya, Anda memperbaiki kalimat yang sudah benar dan menambahkan 534 karakter untuk menjelaskan hal-hal yang jelas / kode sederhana. Anda harus menghabiskan waktu Anda dengan lebih bijak / untuk hal-hal lain. :)
samseva
2

AppleScript ini akan langsung mengaktifkan semua tampilan.

do shell script "pmset displaysleepnow"
  1. display akan menyala kembali ketika Anda menggerakkan mouse / menyentuh keyboard
  2. berfungsi dengan tampilan internal dan eksternal
  3. tidak ada penundaan di layar yang gelap
spnkr
sumber
Apakah pmsetjuga memungkinkan untuk meredupkan monitor (tidak mematikannya sepenuhnya), seperti yang diminta OP?
nohillside
1

Jawaban di atas untuk Sierra tidak berfungsi di Mojave. Kode yang berfungsi di Mojave untuk mengatur kecerahan ke 75%:

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 1 of tab group 1 to 0.75
end tell
quit application "System Preferences"
Andrew D. Bond
sumber