В файле .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. Такое как-то можно реализовать?
Очень странная манера (я на такой вариант не ленюсь явно сказать какой-то алиас подключиться, окна могут быть разного смысла), но если так, то различать session login и просто interactive login?
Здравствуйте, netch80, Вы писали:
N>Очень странная манера (я на такой вариант не ленюсь явно сказать какой-то алиас подключиться, окна могут быть разного смысла), но если так, то различать session login и просто interactive login?
Спасибо, навел меня на мысль что проблема в другом. Сессия которую открывает IDE как раз interactive login и у меня дублируется структура и вывод окон tmux-а. Открывать новый session login + выставлять какой-то флаг что бы не поднимался tmux? хм...
Здравствуйте, 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 (ну или явно проверять сессионность).
Здравствуйте, netch80, Вы писали:
N>Из IDE будет интерактивный по любому. Я имел в виду как раз подымать tmux только если session login, пользуясь возможностью, как xterm -ls запускает сессионный, а не просто интерактивный. N>Тогда tmux будет запускаться уже из ~/.zsh_profile (или как он там зовётся), а не ~/.zshrc (ну или явно проверять сессионность).
Мне кажется проблема в другом, но я не уверен. После того как поднимается терминал в IDE вывод между терминалом IDE и Terminal синхронизируются. То есть ты делаешь ls в одном из них и получаешь список файлов в обоих
UPD. хотя, у меня же tmux подсоеденяеися к сессии. Да, надо твой вариант попробовать.
UPD.1. нет, так что-то не работает. Перенес запуск tmux в .zprofile и теперь у меня tmux вообще перестал стартовать
Здравствуйте, kaa.python, Вы писали:
KP>В файле .zshrc имеется код следующего содержания для автоматической инициализации нужной мне структуры tmux окон.
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