Bir süre önce aynı problemle karşılaştım ve işte yaptığım işte:
İlk önce, daha önce önerildiği gibi ekranları yansıtdım. Bunu yaptıktan kısa bir süre sonra, macbook'un ekranımın gözlerimin köşesinde durmasının çok rahatsız edici olduğunu anladım. Bu, macbookun ekranındaki parlaklığı öldürmemi gerektiriyordu. Ama tembel olduğum adam olarak, harici bir monitörü her taktığımda / taktığımda parlaklığı elle ayarlamak zorunda kalmaktan nefret ediyordum. Bu yüzden süreci otomatikleştirmenin bir yolu olup olmadığını merak ettim. Belirli aygıtların (monitörlerin, sabit disklerin, vb.) Takılı olup olmadığına, belirli wi-fi ağlarının kapsama alanında olup olmadığına göre "bağlamlar" ayarlayabilen Kontrol Düzlemi adı verilen bu ücretsiz uygulamayı buldum ; ve bu bağlamlara dayanarak, belirli kabuk komut dosyalarını çalıştırın. Tek yapmam gereken bir el yazması yazmaktı (killBrightness.scpt
) Macbookun ekranındaki parlaklığı ve aranacak bir kabuk betiğini öldürmek killBrightness.scpt
; ve bu kabuk betiğini istenen bağlamda çağırınız.
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
Kabuk betiği
#!/bin/sh
osascript /path/to/killBrightness.scpt
Macbook'uma birçok farklı monitör taktığım için, farklı bir en boy oranına sahip bir fiş takıldığında pencerelerimin ekranın kenarından sarktığını fark ettim. Bunun çözümü, pencereleri yeniden boyutlandırmak olacaktır, ancak benim gibi bir ton uygulamayı ve pencereyi kullanırken bu oldukça verimsizdir; Ayrıca, benim kadar tembel olmam da bu çözümü sevmedi. Böylece, Over Overflow'taki güzel kişilerin yardımı ile, bu AppleScript (çağrılan resizer.scpt
) ile tüm uygulamaların tüm pencerelerini otomatik olarak yeniden boyutlandırmak için geldiğimde (bazı uygulamaların doğru kullanmamasıdır) UI framework kancaları, bu yüzden onları yeniden boyutlandırmak oldukça zor):
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
Şimdi, tek yapmam gereken, çağrı yapmak resizer.scpt
ve ControlPlane'e koymak için benzer bir kabuk betiği yazmaktı ve ben hep tekrar tembel olmaya hazırdım!
Bu yardımcı olur umarım
Not: Bütün bunların Lion'da çalışan 15 inç MacBook Pro'mda yapıldığını söylemeyi unuttum.