Me encontré con el mismo problema hace un tiempo, y esto es lo que hice:
Primero, reflejé las pantallas, como ya se ha sugerido. Poco después de hacer esto, me di cuenta de que era muy molesto tener la pantalla iluminada del Macbook en el rabillo del ojo. Esto requería que matara el brillo en la pantalla del macbook. Pero como soy el tipo perezoso que soy, odiaba tener que ajustar manualmente el brillo cada vez que desenchufaba un monitor externo. Así que me pregunté si había una manera de automatizar el proceso. Encontré esta aplicación gratuita llamada Control Plane que me permite configurar "contextos" según si ciertos dispositivos (monitores, discos duros, etc.) son enchufado, si ciertas redes wi-fi están dentro del alcance, etc .; y en función de estos contextos, ejecute ciertos scripts de shell. Así que todo lo que tenía que hacer era escribir un applecript (llamado killBrightness.scpt
) para matar el brillo en la pantalla del macbook y un script de shell para llamar a killBrightness.scpt
; y llame a este script de shell en el contexto requerido.
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
El script de shell
#!/bin/sh
osascript /path/to/killBrightness.scpt
Como conecto muchos monitores diferentes en mi macbook, noté que cuando uno de ellos tiene una relación de aspecto diferente enchufada, mis ventanas cuelgan del borde de la pantalla. La solución a esto sería cambiar el tamaño de las ventanas, pero eso es altamente ineficiente cuando usas una tonelada de aplicaciones y ventanas como yo; Además, al ser tan perezoso como soy, no me gustaba esa solución. Así que, con la ayuda de la buena gente que está en Stack Overflow, pude encontrar este AppleScript (llamado resizer.scpt
) para cambiar automáticamente el tamaño de todas las ventanas de (casi) todas las aplicaciones (la advertencia es que algunas aplicaciones no lo hacen). use los enganches correctos de UI framework, por lo que es bastante difícil cambiarles el tamaño):
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
Ahora, todo lo que tenía que hacer era escribir un script de shell similar para llamar a resizer.scpt
y ponerlo en ControlPlane, ¡y estaba todo listo para ser perezoso de nuevo!
Espero que esto ayude
PD: olvidé mencionar antes que todo esto se hizo en mi MacBook Pro de 15 pulgadas, ejecutando Lion