Ich bin vor einiger Zeit auf dasselbe Problem gestoßen und habe Folgendes getan:
Zuerst habe ich die Displays gespiegelt, wie schon vorgeschlagen. Kurz darauf bemerkte ich, dass es sehr störend war, den beleuchteten Bildschirm des Macbooks im Augenwinkel auszuschalten. Dies erforderte, dass ich die Helligkeit auf dem Bildschirm des Macbooks abschaltete. Aber da ich der faule Typ bin, hasste ich es, die Helligkeit jedes Mal manuell einstellen zu müssen, wenn ich einen externen Monitor aus / einsteckte. Also habe ich mich gefragt, ob es eine Möglichkeit gibt, den Prozess zu automatisieren. Ich habe diese kostenlose App namens Control Plane gefunden , mit der ich "Kontexte" festlegen kann, basierend darauf, ob bestimmte Geräte (Monitore, Festplatten usw.) angeschlossen sind, ob bestimmte Wi-Fi-Netzwerke in Reichweite sind usw. Führen Sie basierend auf diesen Kontexten bestimmte Shell-Skripte aus. Also musste ich nur ein Apfelskript schreiben (genanntkillBrightness.scpt
) um die Helligkeit auf dem Bildschirm des Macbooks zu beenden und ein Shell-Skript aufzurufen killBrightness.scpt
; und rufen Sie dieses Shell-Skript im gewünschten Kontext auf.
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
Das Shell-Skript
#!/bin/sh
osascript /path/to/killBrightness.scpt
Da ich viele verschiedene Monitore an mein Macbook anschließe, ist mir aufgefallen, dass meine Fenster beim Anschließen eines Monitors mit einem anderen Seitenverhältnis am Bildschirmrand hängen. Die Lösung hierfür wäre, die Größe der Fenster zu ändern. Dies ist jedoch äußerst ineffizient, wenn Sie wie ich eine Vielzahl von Apps und Fenstern verwenden. Außerdem gefiel mir diese Lösung nicht, weil ich so faul war wie ich. Mit Hilfe der netten Leute von Stack Overflow konnte ich dieses AppleScript (aufgerufen resizer.scpt
) entwickeln, um die Größe aller Fenster (fast) aller Apps automatisch zu ändern (der Vorbehalt ist, dass einige Anwendungen nicht die richtige Größe verwenden UI-Framework-Hooks (daher ist es ziemlich schwierig, die Größe zu ändern):
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
Jetzt musste ich nur noch ein ähnliches Shell-Skript schreiben, um es aufzurufen resizer.scpt
und in ControlPlane zu platzieren, und schon war ich bereit, wieder faul zu sein!
Hoffe das hilft
PS: Ich habe vergessen zu erwähnen, dass all dies auf meinem 15-Zoll-MacBook Pro mit Lion gemacht wurde