Saya mengalami masalah yang sama beberapa waktu lalu, dan inilah yang saya lakukan:
Pertama, saya mirroring display, seperti yang sudah disarankan. Segera setelah melakukan ini, saya menyadari bahwa sangat mengganggu untuk mematikan layar macbook di sudut mata saya. Ini mengharuskan saya mematikan kecerahan di layar macbook. Tapi karena saya orang yang malas, saya benci harus menyesuaikan kecerahan secara manual setiap kali saya melepas monitor eksternal. Jadi saya bertanya-tanya apakah ada cara untuk mengotomatiskan proses. Saya menemukan aplikasi gratis ini disebut Control Plane yang memungkinkan saya mengatur "konteks" berdasarkan apakah perangkat tertentu (monitor, hard drive, dll) dicolokkan, apakah jaringan wi-fi tertentu dalam jangkauan, dll; dan berdasarkan konteks ini, jalankan skrip shell tertentu. Jadi yang harus saya lakukan adalah menulis applescript (dipanggilkillBrightness.scpt
) untuk mematikan kecerahan di layar macbook dan skrip shell untuk dipanggil killBrightness.scpt
; dan panggil skrip shell ini dalam konteks yang diperlukan.
killBrightness.scpt
tell application "System Preferences" to set current pane to pane "Displays"
tell application "System Events"
tell process "System Preferences"
repeat with theWindow in windows
if title of theWindow as string is "Color LCD" then
tell tab group 1 of theWindow
tell slider 1 of group 2
set value to 0
end tell
end tell
end if
end repeat
end tell
end tell
tell application "System Preferences" to quit
Script shell
#!/bin/sh
osascript /path/to/killBrightness.scpt
Karena saya pasang banyak monitor yang berbeda ke macbook saya, saya perhatikan bahwa ketika seseorang dengan rasio aspek yang berbeda dicolokkan, windows saya menggantung di tepi layar. Solusi untuk ini adalah dengan mengubah ukuran windows, tapi itu sangat tidak efisien ketika Anda menggunakan banyak aplikasi dan windows seperti yang saya lakukan; juga, saya menjadi malas seperti saya, tidak suka solusi itu. Jadi, dengan bantuan orang-orang baik di Stack Overflow, saya dapat membuat AppleScript ini (dipanggil resizer.scpt
) untuk secara otomatis mengubah ukuran semua jendela (hampir) semua aplikasi (peringatannya adalah beberapa aplikasi tidak menggunakan yang benar Kerangka kerja UI kait, jadi cukup sulit untuk mengubah ukurannya):
resizer.scpt
:
property blacklist : {"Finder", "Preview", "Console", "AppleScript Editor", "Spotify", "TaskCoach", "Skype", "VirtualBox"}
property buttonApps : {"LyX", "Eclipse"}
property buttonMaps : {{name:"LyX", Button:1, pname:"lyx"}, {name:"Eclipse", Button:2, pname:"eclipse"}, {name:"Spotify", Button:3, pname:"Spotify"}, {name:"TaskCoach", Button:3, pname:"TaskCoach"}}
tell application "Finder" to set theBounds to bounds of window of desktop
tell application "System Events"
set bids to bundle identifier of processes where background only is false
end tell
repeat with bid in bids
tell application id bid
if name is not in blacklist then
set appName to name as string
if name is "Terminal" then
set newBounds to {0, 0, (item 3 of theBounds) - 10, item 4 of theBounds}
repeat with theWindow in windows
if visible of theWindow is true then
set bounds of theWindow to newBounds
end if
end repeat
else if name is not in buttonApps then
try
repeat with theWindow in windows
if visible of theWindow is true then
set bounds of theWindow to theBounds
end if
end repeat
end try
else if name is in buttonApps then
-- get the buttonNumber
repeat with buttonApp in buttonMaps
if (name of buttonApp as string) is appName then
set theButton to Button of buttonApp
end if
end repeat
tell application "System Events"
repeat with theProcess in (processes where bundle identifier is bid)
try
tell theProcess to tell window 1 to click button theButton
end try
end repeat
end tell
end if
end if
end tell
end repeat
Sekarang, yang harus saya lakukan adalah menulis skrip shell yang sama untuk memanggil resizer.scpt
dan memasukkannya ke ControlPlane dan saya siap untuk menjadi malas lagi!
Semoga ini membantu
PS: Saya lupa menyebutkan sebelumnya bahwa semua ini dilakukan pada MacBook Pro 15 inci saya, menjalankan Lion