En casa tengo una pantalla grande y bonita que, lamentablemente, no tiene la misma resolución que mi retina macbook.
Me gustaría usar una fuente de píxeles en la pantalla de baja resolución y una suave y agradable en la pantalla retina. Para hacer esto, configuré un script que escucha un evento cuando la pantalla está conectada.
Configuré dos perfiles en Terminal.app, uno para la pantalla de baja resolución y otro para la pantalla retina.
¿Hay alguna manera de hacer que un perfil sea el perfil "predeterminado" (por ejemplo, usando applescript) sin reiniciar Terminal.app (de lo contrario defaults com.apple.terminal ...
lo habría hecho)
El siguiente script funciona cambiando el perfil predeterminado actual (por lo que no es exactamente lo que necesito, pero podría funcionar si encuentro los nombres de todas las configuraciones que quiero cambiar):
#!/usr/bin/env osascript -l JavaScript
function run (argv) {
var terminal = Application('Terminal');
terminal.defaultSettings.fontName = 'creep';
terminal.defaultSettings.fontSize = 16;
// these don't seem to work
// because I do not know their names, and it's hard to debug guessing them
// terminal.defaultSettings.fontAntialiasing = false;
// terminal.defaultSettings.fontHeigthSpacing = 0.8;
}
Tendría que escribir un script para revertir los cambios.
De acuerdo, después de jugar un poco en el editor de AppleScript (tiene una cosa agradable llamada diccionario que muestra todos los comandos disponibles para una aplicación determinada), me conformé con este script:
#!/usr/bin/env osascript
on run {name}
tell application "Terminal"
set default settings to settings set name
set current settings of tabs of windows to settings set name
end tell
end run
Hazlo ejecutable ( chmod u+x change.applescript
) y ejecútalo, pasando el nombre del perfil a activar:
./change.applescript creep
Esta voluntad:
Fobox
romeovs
IOUSBDevice
. Alternativamente, puede simplemente ejecutar un script que verifique si la pantalla está conectada cada 2 segundos más o menos (por ejemplo, usandoioreg -p IODisplayConnect
).