Cambia carattere di Terminale programmaticamente senza riavviare

6

A casa ho un bel display grande che sfortunatamente non ha la stessa risoluzione del mio macbook retina.

Mi piacerebbe usare un carattere pixel sullo schermo a bassa risoluzione e uno bello liscio sullo schermo retina. Per fare questo ho impostato uno script che ascolta un evento quando il display è collegato.

Ho impostato due profili in Terminal.app, uno per lo schermo a bassa risoluzione e uno per lo schermo retina.

C'è un modo per rendere un profilo il profilo "predefinito" (ad esempio usando applecript) senza riavviare Terminal.app (altrimenti defaults com.apple.terminal ... lo avrebbe fatto)

Il seguente script funziona cambiando il profilo predefinito corrente (quindi non è interamente quello di cui ho bisogno, ma potrebbe funzionare se trovo i nomi di tutte le impostazioni che voglio modificare):

#!/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;
}

Dovrei scrivere uno script per annullare le modifiche

    
posta romeovs 27.02.2016 - 14:13
fonte

1 risposta

5

Ok, dopo qualche scherzo nell'editor di AppleScript (ha questa bella cosa chiamata dizionario che mostra tutti i comandi disponibili per una determinata app) Ho scelto questo 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

Rendilo eseguibile ( chmod u+x change.applescript ) ed eseguilo, passando il nome del profilo da attivare:

./change.applescript creep

Questo sarà:

  • cambia il profilo predefinito, quindi tutte le nuove finestre lo useranno
  • cambia il profilo di tutte le schede di tutte le finestre sul nuovo profilo, in modo che anche i terminali aperti possano usarlo!
risposta data 27.02.2016 - 17:17
fonte

Leggi altre domande sui tag