it-swarm.com.de

iTerm 2 Profile

Ich habe kürzlich auf iTerm2 umgestellt und liebe es. Ich frage mich jedoch, ob es eine Möglichkeit gibt, Profile zu verwenden, um der Umgebung/bestimmten Maschine zu entsprechen, auf der Sie sich befinden. 

Sagen Sie, wenn ich Aufgaben in einem Fenster auf meinem Mac erledige, wird das Profil standardmäßig angezeigt. Wenn ich jedoch in eine Maschine ssh (z. B. dev0), wird das Profil auf iTerm auf Profil dev0 aktualisiert. Sobald ich mit dev0 und call exit fertig bin, wird das Profil wieder auf Standard gesetzt. 

Ich bin mir bewusst, dass eine Aufgabe darin besteht, ein bestimmtes Profil zu öffnen, wann immer ich SSH in eine andere Maschine einsetzen möchte und eine Möglichkeit zur Unterscheidung hat. Wenn die Verbindung jedoch geschlossen wird, müssen Sie den Text auf Basis des Texts erkennen, anstatt den Hintergrund des Fensters zu sagen.

Ist das möglich? Wenn nicht, wie kann diese Funktion hinzugefügt werden, und kann ich dazu beitragen?

37

iTerm2 unterstützt einen benutzerdefinierten Escape-Code, der das Profil im laufenden Betrieb ändert. Legen Sie es in Ihre .bashrc oder .bash_profile.

<esc>]50;SetProfile=X^G

wobei X das Profil ist. Um beispielsweise das Profil in "Foo" zu ändern, verwenden Sie dieses Shell-Skript:

#!/bin/bash
echo -e "\033]50;SetProfile=Foo\a"

Um es beim Abmelden wieder zu ändern, geben Sie Code ein, um das Profil auf ~/.bash_logout zurückzusetzen.

50
George

Die neueste iTerm2-Nacht (Build 2.9.20150329-Nacht zum Zeitpunkt des Schreibens) ermöglicht Ihnen dies ganz einfach. Sie können es hier herunterladen.

Nachdem Sie es installiert und geöffnet haben:

  1. Melden Sie sich über ssh bei Ihrem Remote-Computer an und klicken Sie auf iTerm2 (App-Menü)> Install Shell Integration. Es wird ein Skript mit curl heruntergeladen und installiert. Machen Sie dasselbe auf Ihrem lokalen Rechner.
  2. Gehen Sie zu Voreinstellungen> Profile.
  3. Erstellen Sie ein neues Profil für Ihren lokalen Computer. Passen Sie es an Ihre Bedürfnisse an (ändern Sie die Hintergrundfarbe, den Namen usw.)
  4. Gehen Sie zur Registerkarte Advanced und scrollen Sie nach unten.
  5. Klicken Sie in Automatic Profile Switching auf "+" und fügen Sie den Hostnamen Ihres lokalen Computers hinzu. Der Hostname ist der, den Sie erhalten, wenn Sie echo $Host auf dem Zielcomputer ausführen. Es ist nicht immer das, was Sie in Ihrer Ansage sehen.
  6. Erstellen Sie ein weiteres Profil, diesmal für Ihren Remote-Computer, und passen Sie es an.
  7. Fügen Sie den Hostnamen des Remote-Computers in Automatic Profile Switching hinzu.
  8. Wenn Sie nun ssh in den Remote-Computer einschalten, ändert sich Ihr Profil, und wenn Sie exit aus der ssh-Sitzung entfernt sind, kehren Sie zu Ihrem lokalen Profil zurück.

Sie können diese Lösung nahtlos mit @ esods Antwort kombinieren.
Hinweis: Es hat nicht funktioniert, bis ich ein Profil speziell für den Desktop erstellt habe, anstatt das Standardprofil zu verwenden.

Siehe die Dokumentation für weitere Informationen.

11
Yohaï Berreby

für zsh-Benutzer

nehmen wir an, Sie haben 2 Profile, eines namens mac (für Ihre primäre Maschine) und eines für linux (Ihre entfernte Maschine)

Beim Eintritt in die Sitzung müssen wir zsh anweisen, unser Profil zu laden

  1. verbinden Sie sich mit Remote-Linux 
  2. in ~/.zshrc add echo -e "\033]50;SetProfile=linux\a"
  3. quellen Sie Ihre Dateien ab sofort: source ~/.zshrc
  4. ihr neues Thema sollte in der iterm-Sitzung sichtbar sein.

Beim Beenden der Sitzung müssen wir zsh anweisen, zu unserem ursprünglichen Profil zurückzukehren

  1. verbinden Sie sich mit Remote-Linux 
  2. in Linux ~/.zlogout fügen Sie Folgendes hinzu
if [ "$SHLVL" = 1 ]; then
  echo -e "\033]50;SetProfile=mac\a"
  clear
fi

jetzt können Sie Profile problemlos austauschen <3. 

wenn Sie Bash verwenden, glaube ich, dass die Schritte ähnlich sind, würden Sie stattdessen ~/.bashrc und ~/.bash_logout ändern.

Demo

demo of session based profiles in iterm2

8
lfender6445

In meinem Fall muss ich Yohaï Berrebys Antwort mit den Einstellungen meiner Gastgeber kombinieren, um diese Funktion zu implementieren.

  1. Klicken Sie unter "Automatic Profile Switching" auf "+" und fügen Sie den Hostnamen Ihres lokalen Computers hinzu. Der Hostname ist der Name, den Sie erhalten, wenn Sie echo $ Host auf dem Zielcomputer ausführen. Es ist nicht immer das, was Sie in Ihrer Ansage sehen.

Mein Staging-Server setzt $ Host nicht und der Host-Name lautet:

[[email protected] ~]$ hostname
alveo-staging

Ich kann die Regel mit hostname jedoch nicht als alveo-staging festlegen. Denn alveo-staging ist eigentlich nur ein Alias ​​des realen Hostnamens (alveo-staging.xxx), der in /etc/hosts gesetzt werden kann.

Die schnelle Lösung hierfür ist also die Verwendung von * Wildcards, um die Regel als *staging* festzulegen.

Dann klappt es.

0
karl li

Ich hatte den gleichen Wunsch und fand, dass dies in iTerm 2 (Build 1.0.0.20130319) in den Voreinstellungen der Anwendung erreicht werden kann. 

Sie können ein Profil (beispielsweise ein Remote-Profil) mit einer anderen Voreinstellung als Ihrer Standardvoreinstellung zuweisen, indem Sie Folgendes aufrufen:

Profile -> Open ProfilesWählen Sie das Profil aus und klicken Sie auf Profile bearbeiten ... Wechseln Sie zur Registerkarte Colors und wählen Sie eine Voreinstellung für dieses Profil aus der Liste in Load Presets ... aus.

Außerdem habe ich die Tastenkombination für verschiedene Profile eingerichtet, sodass ein iTerm-Fenster anders aussehen kann als ein anderes Fenster. Ich habe das gemacht durch:

  1. Ein neues Profil in den Einstellungen erstellen
  2. Erstellen eines neuen Profil-Shortcut-Keys in Preferences-> Keys mit der Aktion Neues Fenster mit Profil

Mein Standardprofil hat einen schwarzen Hintergrund, aber manchmal hilft es mir, einen weißen Hintergrund zu haben. Ich dupliziere mein Standardprofil und benenne das neue Profil als DefaultLight. In meinem Standardprofil gehe ich zur Registerkarte Schlüssel, auf der ich eine neue Profilkürzel mit der Tastenkombination ^ + cmd + n, deren Aktion Neues Fenster mit Profil und deren Profil DefaultLight erstellt.

Nach dem Speichern der Prefrences öffnet cmd + n ein neues Fenster mit schwarzem Hintergrund und ^ + cmd + n öffnet ein neues Fenster mit weißem Hintergrund.

Es gibt auch eine neue Registerkarte mit Profil-Aktion in der Voreinstellung für Tastenkombinationen, wenn Sie daran interessiert sind, dies noch weiter voranzutreiben.

0
esod

schritt 1:

anpassen Ihres iterm-Profils, z. dark, light

schritt 2:

fügen Sie zuvor Code zu Ihrem Shell-Profil hinzu, z. B. .bashrc or .zshrc.

# Change iterm2 profile. Usage it2prof ProfileName (case sensitive)
it2prof() { echo -e "\033]50;SetProfile=$1\a" }

schritt 3:

machen Sie Ihr Profil sinnvoll

exec $Shell -l

schritt 4:

schalte dein iterm-Theme-Profil um

it2prof dark
it2prof light
0
Mark Simon

Für Fishell Benutzer: 1. Erstellen Sie eine Fisch Funktion:

functions it2prof > ~/.config/fish/functions/it2prof.fish

  1. Füge diesen Inhalt zur ~/.config/fish/functions/it2prof.fish - Datei hinzu und speichere:
function it2prof
  echo -e "\033]50;SetProfile=$argv\a"
end
  1. genieße deinen Befehl:

it2prof whatever_profile_you_define

0
CK.Nguyen