Cambiar la fuente de la Terminal programáticamente sin reiniciar

5

En casa tengo una pantalla grande y bonita que desafortunadamente no tiene la misma resolución que mi macbook de retina.

Me gustaría usar una fuente de píxeles en la pantalla de baja resolución y una suave y agradable en la pantalla de retina. Para hacer esto, he configurado un script que escucha un evento cuando la pantalla está conectada.

He configurado dos perfiles en Terminal.app, uno para la pantalla de baja resolución y otro para la pantalla de retina.

¿Hay alguna manera de hacer que un perfil sea el perfil "predeterminado" (p. ej., utilizando applecript) sin reiniciar Terminal.app (de lo contrario, defaults com.apple.terminal ... lo habría hecho)

La siguiente secuencia de comandos funciona al cambiar el perfil predeterminado actual (por lo que no es del todo 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

    
pregunta romeovs 27.02.2016 - 14:13

1 respuesta

4

De acuerdo, después de algunos errores en el editor de AppleScript (tiene una cosa bonita 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 para activar:

./change.applescript creep

Esto hará:

  • cambia el perfil predeterminado, por lo que todas las ventanas nuevas lo usarán
  • cambie el perfil de todas las pestañas de todas las ventanas al nuevo perfil, ¡así que las terminales abiertas también pueden usarlo!
respondido por el romeovs 27.02.2016 - 17:17

Lea otras preguntas en las etiquetas