Tôi đã gặp vấn đề tương tự một lúc trước, và đây là những gì tôi đã làm:
Đầu tiên, tôi nhân đôi màn hình, như đã được đề xuất. Ngay sau khi làm điều này, tôi nhận ra rằng thật là mất tập trung khi màn hình sáng của macbook tắt ở khóe mắt. Điều này đòi hỏi tôi phải tiêu diệt độ sáng trên màn hình của macbook. Nhưng tôi là kẻ lười biếng, tôi ghét phải tự điều chỉnh độ sáng mỗi khi tôi không cắm / cắm màn hình ngoài. Vì vậy, tôi tự hỏi nếu có một cách để tự động hóa quá trình. Tôi đã tìm thấy ứng dụng miễn phí này có tên Control Plane , cho phép tôi đặt "bối cảnh" dựa trên việc một số thiết bị (màn hình, ổ cứng, v.v.) có được cắm hay không, cho dù các mạng wi-fi nhất định có nằm trong phạm vi hay không, v.v; và dựa trên các bối cảnh này, chạy các kịch bản shell nhất định. Vì vậy, tất cả những gì tôi phải làm là viết một applescript (được gọi làkillBrightness.scpt
) để giảm độ sáng trên màn hình của macbook và tập lệnh shell để gọi killBrightness.scpt
; và gọi kịch bản shell này trong ngữ cảnh bắt buộc.
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
Kịch bản shell
#!/bin/sh
osascript /path/to/killBrightness.scpt
Vì tôi cắm nhiều màn hình khác nhau vào macbook của mình, tôi nhận thấy rằng khi một màn hình có tỷ lệ khung hình khác được cắm vào, các cửa sổ của tôi sẽ treo ngoài rìa màn hình. Giải pháp cho vấn đề này là thay đổi kích thước các cửa sổ, nhưng điều đó rất kém hiệu quả khi bạn sử dụng rất nhiều ứng dụng và cửa sổ như tôi làm; Ngoài ra, tôi lười biếng như tôi, không thích giải pháp đó. Vì vậy, với sự giúp đỡ của những người tốt bụng tại Stack Overflow, tôi đã có thể đưa ra AppleScript (được gọi resizer.scpt
) này để tự động thay đổi kích thước tất cả các cửa sổ của (gần như) tất cả các ứng dụng (điều đáng nói là một số ứng dụng không sử dụng đúng Móc khung UI, vì vậy rất khó để thay đổi kích thước chúng):
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
Bây giờ, tất cả những gì tôi phải làm là viết một kịch bản shell tương tự để gọi resizer.scpt
và đưa nó vào ControlPlane và tôi đã sẵn sàng trở lại lười biếng!
Hi vọng điêu nay co ich
PS: Tôi đã quên đề cập trước đó rằng tất cả những điều này đã được thực hiện trên MacBook Pro 15 inch của tôi, chạy Lion