Commande OS X Terminal pour changer les thèmes des couleurs

Existe-t-il une commande qui peut être utilisée pour modifier le schéma de couleurs du terminal Mac OS X? J'aime l'idée de pouvoir changer les couleurs selon les scripts que je cours. Jusqu'à présent, je modifie la couleur de l'invite bash avec PS1, ce qui est correct, mais pas aussi perceptible que je le souhaite.

    Selon ce que vous voulez accomplir exactement , voici quelques idées dans AppleScript en utilisant vos styles Terminal. Ceux-ci sont plus robustes que tput , car cela est réinitialisé par des invites colorées. Etc (au moins pour moi).

    Cela définit tous les onglets exécutant Python (aucun serveur SSH disponible pour le test en ce moment) à Homebrew, les autres à Ocean:

     tell application "Terminal" repeat with w from 1 to count windows repeat with t from 1 to count tabs of window w if processes of tab t of window w contains "Python" then set current settings of tab t of window w to (first settings set whose name is "Homebrew") else set current settings of tab t of window w to (first settings set whose name is "Ocean") end if end repeat end repeat end tell 

    Enregistrez comme script et exécutez comme osascript Name.scpt chaque fois que vous souhaitez refaites vos shells (bien sûr, vous pouvez l'envelopper comme un script shell ou quelque chose).

    Si vous souhaitez afficher de manière différente tous les processus longs, utilisez la condition suivante:

    if busy of tab t of window w is true then


    Ou, vous pouvez définir le style d'un seul onglet, sélectionné manuellement:

     on run argv tell application "Terminal" to set current settings of tab (item 1 of argv as number) of front window to first settings set whose name is (item 2 of argv) end run 

    Exécutez-le comme ceci:

     osascript StyleTerm.scpt 3 Homebrew 

    -> Le troisième onglet de la fenêtre du terminal frontal devient le style Homebrew!

    Si vous souhaitez modifier les fenêtres d'arrière-plan, remplacez la "fenêtre avant" par une expression parenthostée juste après "onglet". Si vous souhaitez toujours modifier l'onglet actuel sélectionné, utilisez l' selected tab place de l' tab (item 1 of argv as number) .


    Ajoutez ce qui suit à votre .bash_profile si la première solution est trop manuelle pour vous:

    PROMPT_COMMAND='osascript "/path/to/Name.scpt"'

    Maintenant, il est exécuté avant chaque invite (seul problème: pas après le lancement de quelque chose, c.-à-d. ssh . Mais ce sujet ne concerne pas toujours les astuces de fantaisie. Ce n'est qu'un pointeur.)

    Vos scripts peuvent utiliser la commande tput pour définir des couleurs de manière portable. Essayez le script suivant et vous verrez le terminal clair dans un fond cyan sombre avec un texte cyan clair.

     #!/bin/bash tput setab 6 tput clear tput setaf 14 echo Hello World 

    Vous pouvez voir plus d'informations à ce sujet dans man 5 terminfo dans la section intitulée «Manipulation des couleurs».

    Vous pouvez faire les mêmes choses en faisant écho aux séquences d'échappement que votre terminal reconnaît directement. Ce sera plus rapide, mais cela ne fonctionnera peut-être pas à l'aide d'un autre programme de terminal. Beaucoup d'entre eux reconnaissent les séquences xterm et voici ce que le script ci-dessus ressemblerait à leur utilisation.

     #!/bin/bash printf "\033[48;5;6m" # or "\033[46m" printf "\033[H\033[2J" # your system's clear command does something similar printf "\033[38;5;14m" # or "\033[96m" echo Hello World 

    Il y a plus d'informations sur les séquences de contrôle xterm ici .

    Vous pouvez utiliser applescript pour donner à chaque nouveau terminal un thème aléatoire.

    Modifiez votre .bash_profile et ajoutez cette commande

    osascript -e "tell application \"Terminal\" to set current settings of front window to some settings set"

    Si vous obtenez le même terminal à thème aléatoire, vous pouvez toujours toucher ⌘I et le configurer manuellement.

    Ceci est plus utile si vous obtenez beaucoup de thèmes terminaux différents. Il existe de nombreux sites pour cela, si vous regardez autour.