2013-02-01 2 views
1

Я пытаюсь настроить свою рабочую станцию ​​таким образом, чтобы для каждого терминала запускался tmux (, gnome-terminal, ...). Я думал добавить tmux в .bashrc; проблема в том, что если я запускаю bash дважды по какой-либо причине, он запускает второй tmux внутри текущего tmux.запускает tmux автоматически при запуске xterm: что является самым элегантным/правильным решением?

Итак:

  • есть способ обнаружения, может быть, из .bashrc, что ток Баш является «первым» один, а не второй один запущенный в том же терминале?
  • любые другие хорошие идеи/лучшие практики/шаблоны проектирования bash?

ответ

0

Как насчет наложения псевдонимов xterm на xterm tmux?

Просто добавьте следующую строку в .bashrc:

alias xterm='xterm tmux' 
+0

спасибо, но это не похоже на правильное решение, потому что я могу использовать xterm для целей, отличных от запуска оболочки. Например, 'xterm top'. Таким образом, моя цель, вероятно, заключается в использовании tmux в качестве оболочки xterm по умолчанию. – fstab

+1

@francescostablum: Итак, создайте другой псевдоним, например. 'Xtt'. – choroba

+0

Да, это действительно может быть решением, но я должен определить несколько псевдонимов для всех типов терминалов, которые я хочу использовать с помощью 'tmux'. – fstab

1

Вы можете добавить следующие строки в ваш .bash_profile:

SHELL=tmux 

Это первое место xterm проверяет наличие команды, если ни для запуска задается в командной строке.

+0

К сожалению, он не работает. Вы знаете, почему? Я добавил его как '.bashrc', так и' .bash_profile'. – fstab

+0

Хмм, на самом деле это работает, только если xterm запущен из оболочки, которая определила $ SHELL как tmux. Интересно ... – fstab

+1

Тогда, наверное, пора упомянуть оговорку. Если вы входите в систему с помощью графического входа в систему, то, вероятно, у вас нет оболочки bash в качестве конечного предка всех ваших процессов. Это было время для меня; есть что-то вроде '.xinitrc' или эквивалента Gnome/KDE, к которому вы можете добавить настройку' SHELL = tmux'? – chepner

1

Объединить два предыдущих ответов:

alias xterm='SHELL=tmux xterm' 

Вы получите желаемое поведение при запуске только xterm, но вы все еще можете использовать Xterm для других операций, таких как xterm top.