Определение типа терминала на старте шелла
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 29.07.20 03:20
Оценка:
В файле .zshrc имеется код следующего содержания для автоматической инициализации нужной мне структуры tmux окон.

if command -v tmux &> /dev/null && [ -z "$TMUX" ]; then
    tmux attach-session -t "dev" || 
        tmux new-session -s "dev" \; split-window -h \; split-window -v \; attach
fi


Проблема возникает когда я, к примеру, открываю вкладку Terminal в какой-либо из IDE от JB. IDE берет шелл по умолчанию и запускает его в своем эмуляторе, но там никаких окон tmux просто не надо, т.к. он довольно мелкий и делить его дальше некуда.

Запускать в терминале IDE что-то отличное от Zsh можно, но мне такая идея не нравится и хотелось бы как-то распознавать в каком из терминалов стартует Zsh и выполнять или не выполнять запуск tmux. Такое как-то можно реализовать?
Re: Определение типа терминала на старте шелла
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 29.07.20 06:48
Оценка:
Здравствуйте, kaa.python, Вы писали:

Очень странная манера (я на такой вариант не ленюсь явно сказать какой-то алиас подключиться, окна могут быть разного смысла), но если так, то различать session login и просто interactive login?
The God is real, unless declared integer.
Re[2]: Определение типа терминала на старте шелла
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 29.07.20 10:15
Оценка:
Здравствуйте, netch80, Вы писали:

N>Очень странная манера (я на такой вариант не ленюсь явно сказать какой-то алиас подключиться, окна могут быть разного смысла), но если так, то различать session login и просто interactive login?


Спасибо, навел меня на мысль что проблема в другом. Сессия которую открывает IDE как раз interactive login и у меня дублируется структура и вывод окон tmux-а. Открывать новый session login + выставлять какой-то флаг что бы не поднимался tmux? хм...
Re[3]: Определение типа терминала на старте шелла
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 29.07.20 11:19
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, netch80, Вы писали:


N>>Очень странная манера (я на такой вариант не ленюсь явно сказать какой-то алиас подключиться, окна могут быть разного смысла), но если так, то различать session login и просто interactive login?


KP>Спасибо, навел меня на мысль что проблема в другом. Сессия которую открывает IDE как раз interactive login и у меня дублируется структура и вывод окон tmux-а. Открывать новый session login + выставлять какой-то флаг что бы не поднимался tmux? хм...


Из IDE будет интерактивный по любому. Я имел в виду как раз подымать tmux только если session login, пользуясь возможностью, как xterm -ls запускает сессионный, а не просто интерактивный.
Тогда tmux будет запускаться уже из ~/.zsh_profile (или как он там зовётся), а не ~/.zshrc (ну или явно проверять сессионность).
The God is real, unless declared integer.
Re[4]: Определение типа терминала на старте шелла
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 29.07.20 11:35
Оценка:
Здравствуйте, netch80, Вы писали:

N>Из IDE будет интерактивный по любому. Я имел в виду как раз подымать tmux только если session login, пользуясь возможностью, как xterm -ls запускает сессионный, а не просто интерактивный.

N>Тогда tmux будет запускаться уже из ~/.zsh_profile (или как он там зовётся), а не ~/.zshrc (ну или явно проверять сессионность).

Мне кажется проблема в другом, но я не уверен. После того как поднимается терминал в IDE вывод между терминалом IDE и Terminal синхронизируются. То есть ты делаешь ls в одном из них и получаешь список файлов в обоих

UPD. хотя, у меня же tmux подсоеденяеися к сессии. Да, надо твой вариант попробовать.

UPD.1. нет, так что-то не работает. Перенес запуск tmux в .zprofile и теперь у меня tmux вообще перестал стартовать
Отредактировано 29.07.2020 14:15 kaa.python . Предыдущая версия . Еще …
Отредактировано 29.07.2020 12:07 kaa.python . Предыдущая версия .
Re: TERMINAL_EMULATOR=JetBrains-JediTerm?
От: VladCore  
Дата: 29.07.20 20:27
Оценка: 27 (1)
Здравствуйте, kaa.python, Вы писали:

KP>В файле .zshrc имеется код следующего содержания для автоматической инициализации нужной мне структуры tmux окон.


KP>
KP>if command -v tmux &> /dev/null && [ -z "$TMUX" ]; then
KP>    tmux attach-session -t "dev" || 
KP>        tmux new-session -s "dev" \; split-window -h \; split-window -v \; attach
KP>fi
KP>


KP>Проблема возникает когда я, к примеру, открываю вкладку Terminal в какой-либо из IDE от JB. IDE берет шелл по умолчанию и запускает его в своем эмуляторе, но там никаких окон tmux просто не надо, т.к. он довольно мелкий и делить его дальше некуда.


KP>Запускать в терминале IDE что-то отличное от Zsh можно, но мне такая идея не нравится и хотелось бы как-то распознавать в каком из терминалов стартует Zsh и выполнять или не выполнять запуск tmux. Такое как-то можно реализовать?


Не совсем понял что нужно, но в rc-скрипте можно проверять переменную TERMINAL_EMULATOR,

if [[ ! "$TERMINAL_EMULATOR" == "JetBrains"* ]]; then echo "It is not an IDE"; fi
Re[2]: TERMINAL_EMULATOR=JetBrains-JediTerm?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 30.07.20 01:44
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>Не совсем понял что нужно, но в rc-скрипте можно проверять переменную TERMINAL_EMULATOR,


VC>
VC>if [[ ! "$TERMINAL_EMULATOR" == "JetBrains"* ]]; then echo "It is not an IDE"; fi
VC>


Оно!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.