iTerm 2 профиля - PullRequest
       24

iTerm 2 профиля

38 голосов
/ 22 декабря 2011

Я недавно перешел на iTerm2 и мне это нравится. Мне интересно, хотя, есть ли способ использовать профили, чтобы соответствовать, какой среде / конкретной машине вы находитесь.

Скажем, если я выполняю задачи в одном окне на моем Mac, профиль отображается по умолчанию, но если я ssh подключусь к машине (скажем, dev0), профиль на iTerm обновится до профиля dev0. Как только я закончу с dev0 и вызовом exit, профиль снова переключится на значение по умолчанию.

Я понимаю, что одним из обходных путей является открытие определенного профиля всякий раз, когда я хочу подключиться по ssh к другому компьютеру, и у меня есть способ его различить, но если соединение закрыто, требуется, чтобы вы обращали внимание на текст, а не на фон окно.

Возможно ли это? Если нет, то как я могу добавить эту функцию и могу ли я внести свой вклад?

Ответы [ 7 ]

52 голосов
/ 22 декабря 2011

iTerm2 поддерживает пользовательский код перехода, который меняет профиль на лету. Поместите его в свой .bashrc или .bash_profile.

<esc>]50;SetProfile=X^G

где X - профиль. Например, чтобы изменить профиль на «Foo», используйте этот сценарий оболочки:

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

Чтобы вернуть его обратно, когда вы выйдете из системы, введите код для изменения профиля по умолчанию в ~ / .bash_logout.

11 голосов
/ 29 марта 2015

Новейшая ночная версия iTerm2 (сборка 2.9.20150329-ночная на момент написания) позволяет легко это сделать. Вы можете скачать его здесь .

После установки и открытия:

  1. Войдите на удаленный компьютер через ssh и нажмите iTerm2 (меню приложения)> Установить Shell Integration . Он загрузит скрипт с curl и установит его. Сделайте то же самое на вашем локальном компьютере .
  2. Перейти к Настройки > Профили .
  3. Создайте новый профиль для вашего локального компьютера. Настройте его в соответствии со своими потребностями (измените цвет фона, имя и т. Д.)
  4. Перейдите на вкладку Advanced и прокрутите вниз.
  5. В Автоматическое переключение профилей , нажмите «+» и добавьте имя хоста вашего локального компьютера. Имя хоста - это имя, которое вы получаете при запуске echo $HOST на целевой машине. Это не всегда тот, который вы видите в приглашении.
  6. Создайте другой профиль, на этот раз для удаленного компьютера, и настройте его.
  7. Добавить имя хоста удаленного компьютера в Автоматическое переключение профилей .
  8. Теперь, если вы подключитесь по ssh к удаленной машине, ваш профиль изменится, и если вы exit выйдете из сеанса ssh, вы вернетесь к локальному профилю.

Вы можете объединить это решение с @ ответом esod без проблем.
Примечание: у меня не получалось, пока я не создал профиль специально для рабочего стола вместо использования профиля по умолчанию.

См. документацию для получения дополнительной информации.

11 голосов
/ 07 января 2015

для пользователей zsh

Допустим, у вас есть 2 профиля, один с именем mac (для вашего основного компьютера) и один для linux (ваш удаленный компьютер)

при входе в сессию , мы должны указать zsh загрузить наш профиль

  1. подключиться к удаленному linux
  2. в ~/.zshrc добавить echo -e "\033]50;SetProfile=linux\a"
  3. источник ваших файлов для немедленного эффекта: source ~/.zshrc
  4. ваша новая тема должна быть видна в сеансе iterm.

при выходе из сеанса , мы должны указать zsh переключиться обратно на наш первоначальный профиль

  1. подключиться к удаленному linux
  2. в linux ~/.zlogout добавить следующее
if [ "$SHLVL" = 1 ]; then
  echo -e "\033]50;SetProfile=mac\a"
  clear
fi

теперь вы можете легко менять профили <3. </p>

если вы используете bash, я думаю, что шаги аналогичны, но вместо этого вы бы изменили ~/.bashrc и ~/.bash_logout

демо

demo of session based profiles in iterm2

0 голосов
/ 30 марта 2019

Для Fishell пользователь: 1. Создайте функцию fish :

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

Добавьте это содержимое в файл ~/.config/fish/functions/it2prof.fish и сохраните:
function it2prof
  echo -e "\033]50;SetProfile=$argv\a"
end
наслаждайся своей командой:

it2prof whatever_profile_you_define

0 голосов
/ 08 декабря 2018

шаг 1:

настроить свой профиль iterm, например, dark, light

шаг 2:

добавить код в свой профиль оболочки, например .bashrc or .zshrc

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

шаг 3:

имеет смысл ваш профиль

exec $SHELL -l

шаг 4:

переключение профиля вашей темы iterm

it2prof dark
it2prof light
0 голосов
/ 09 октября 2017

В моем случае мне нужно объединить ответ Йохая Берреби с настройкой моих хостов для реализации этой функции.

  1. В разделе «Автоматическое переключение профилей» нажмите «+» и добавьте имя хоста вашего локального компьютера. Имя хоста - это то, которое вы получаете при запуске echo $ HOST на целевой машине. Это не всегда тот, который вы видите в приглашении.

Мой промежуточный сервер не устанавливает $ HOST, а имя хоста:

[devel@alveo-staging ~]$ hostname
alveo-staging

Но я не могу установить правило с именем хоста alveo-staging. Потому что на самом деле alveo-staging - это просто псевдоним реального имени хоста (alveo-staging.xxx), который можно установить в /etc/hosts.

Таким образом, быстрое решение этой проблемы заключается в использовании * подстановочных знаков, чтобы установить правило как *staging*.

Тогда это работает.

0 голосов
/ 01 апреля 2013

У меня было то же самое желание, и я обнаружил, что это можно выполнить в iTerm 2 (сборка 1.0.0.20130319) в настройках приложения.

Вы можете назначить профиль (скажем, удаленный профиль) с другой предустановкой, отличной от предустановки по умолчанию, перейдя по адресу:

Профили -> Открыть профили, выберите профиль и нажмите Редактировать профили ...Перейдите на вкладку «Цвета» и выберите пресет для этого профиля из списка в «Загрузка предустановок» ...

Далее я настроил сочетание клавиш для разных профилей, чтобы одно окно iTerm могло выглядеть иначе, чем другое.окно.Я сделал это следующим образом:

  1. Создание нового профиля в настройках
  2. Создание нового сочетания клавиш профиля в настройках-> Ключи, действие которых - Новое окно с профилем

Мой профиль по умолчанию имеет черный фон, но иногда он помогает мне иметь белый фон.Я дублирую свой профиль по умолчанию и называю новый профиль DefaultLight.В моем профиле по умолчанию я перехожу на вкладку «Ключи», где я создаю новую комбинацию клавиш профиля, комбинация клавиш которой - ^ + cmd + n, действие - «Новое окно с профилем», а профиль - «DefaultLight».

После сохраненияв настройках, cmd + n открывает новое окно с черным фоном, а ^ + cmd + n открывает новое окно с белым фоном.

В настройках сочетания клавиш есть также вкладка «Создать вкладку с профилем», еслиВы заинтересованы в том, чтобы пойти еще дальше.

...