Je suis récemment passé sur iTerm2 et je l’adore. Je me demande cependant s’il existe un moyen d’utiliser les profils pour correspondre à l’environnement/à la machine spécifique sur laquelle vous vous trouvez.
Dire que si je fais des tâches dans une fenêtre de mon mac, le profil est affiché par défaut, mais si je ssh dans une machine (disons dev0), le profil sur iTerm sera mis à jour vers le profil dev0. Une fois que j'ai terminé avec dev0 et appelé exit, le profil revient à nouveau par défaut.
Je me rends compte qu'une solution consiste à ouvrir un profil spécifique chaque fois que je veux ssh sur une autre machine et avoir un moyen de faire la distinction, mais si la connexion est fermée, vous devez le remarquer en fonction du texte plutôt que du fond de la fenêtre.
Est-ce possible? Sinon, comment cette fonctionnalité peut-elle être ajoutée et comment puis-je contribuer?
iTerm2 prend en charge un code d'échappement personnalisé qui modifie le profil à la volée. Mettez-le dans votre .bashrc ou .bash_profile.
<esc>]50;SetProfile=X^G
où X est le profil. Par exemple, pour changer le profil en un nommé "Foo", utilisez ce script Shell:
#!/bin/bash
echo -e "\033]50;SetProfile=Foo\a"
Pour le rétablir lorsque vous vous déconnectez, entrez du code pour rétablir le profil par défaut dans ~/.bash_logout.
Le dernier iTerm2 nocturne (version 2.9.20150329-nocturne au moment de la rédaction) vous permet de le faire facilement. Vous pouvez le télécharger ici .
Une fois installé et ouvert:
curl
et l'installer. Faites la même chose sur votre ordinateur local.echo $Host
sur la machine cible. Ce n'est pas toujours celui que vous voyez dans votre invite.exit
en dehors de la session ssh, vous retournerez à votre profil local.Vous pouvez combiner cette solution avec la réponse de @ esod de manière transparente.
Remarque: cela n’a pas fonctionné pour moi tant que je n’ai pas créé de profil spécifique pour le bureau au lieu d’utiliser le profil par défaut.
Voir la documentation pour plus d'informations.
pour les utilisateurs de zsh
disons que vous avez 2 profils, l'un nommé mac (pour votre machine principale) et l'autre pour linux (votre machine distante)
en entrant dans la session , nous devons dire à zsh de charger notre profil
~/.zshrc
ajouter echo -e "\033]50;SetProfile=linux\a"
source ~/.zshrc
à la sortie de la session , nous devons dire à zsh de revenir à notre profil d'origine
~/.zlogout
ajouter ce qui suitif [ "$SHLVL" = 1 ]; then
echo -e "\033]50;SetProfile=mac\a"
clear
fi
maintenant, vous pouvez échanger facilement des profils <3.
si vous utilisez bash, je pense que les étapes sont similaires, mais vous devriez plutôt modifier ~/.bashrc
et ~/.bash_logout
démo
Dans mon cas, je dois combiner la réponse de Yohaï Berreby avec les paramètres de mes hôtes pour implémenter cette fonctionnalité.
- Dans Changement automatique de profil, cliquez sur '+' et ajoutez le nom d'hôte de votre ordinateur local. Le nom d'hôte est celui obtenu lors de l'exécution de echo $ Host sur la machine cible. Ce n'est pas toujours celui que vous voyez dans votre invite.
Mon serveur de transfert ne définit pas $ Host et le nom d'hôte est:
[devel@alveo-staging ~]$ hostname
alveo-staging
Mais je ne peux pas définir la règle avec le nom d'hôte sur alveo-staging
. En fait, alveo-staging est simplement un alias du nom d'hôte réel (alveo-staging.xxx), qui peut être défini dans /etc/hosts
.
La solution rapide consiste donc à utiliser * des caractères génériques, pour définir la règle sur *staging*
.
Alors ça marche.
J'avais le même souhait et constaté que cela pouvait être accompli dans iTerm 2 (version 1.0.0.20130319) dans les préférences de l'application.
Vous pouvez attribuer un profil (par exemple un profil distant) avec un préréglage différent de votre préréglage par défaut en allant à:
Profils -> Ouvrir les profilssélectionnez le profil et cliquez sur Modifier les profils .... Cliquez sur l'onglet Couleurs et choisissez un préréglage pour ce profil dans la liste dans Charger les préréglages ...
De plus, j'ai configuré le raccourci clavier pour différents profils afin que je puisse avoir une fenêtre iTerm différente d'une autre fenêtre. Je l'ai fait par:
Mon profil par défaut a un arrière-plan noir, mais parfois cela m'aide à avoir un arrière-plan blanc. Je duplique mon profil par défaut et nomme le nouveau profil DefaultLight. Sur mon profil par défaut, je vais à l'onglet Clés où je crée une nouvelle clé de raccourci de profil dont le raccourci clavier est ^ + cmd + n, dont l'action est Nouvelle fenêtre avec profil et dont Profil est DefaultLight.
Après avoir enregistré les préférences, cmd + n ouvre une nouvelle fenêtre avec un fond noir et ^ + cmd + n ouvre une nouvelle fenêtre avec un fond blanc.
Il existe également un nouvel onglet avec action Profil dans la préférence Touches de raccourci clavier si vous souhaitez aller encore plus loin.
étape 1:
personnalisez votre profil d'iterm, par exemple dark
, light
étape 2:
ajoutez du code avant à votre profil Shell, par exemple .bashrc or .zshrc
# Change iterm2 profile. Usage it2prof ProfileName (case sensitive)
it2prof() { echo -e "\033]50;SetProfile=$1\a" }
étape 3:
donner un sens à votre profil
exec $Shell -l
étape 4:
basculer votre profil thématique iterm
it2prof dark
it2prof light