Nautilus: открывать папку в терминале при использовании tmux

Думаю, вам не повезло с s_client . Вам следует попробовать socat , который на порядок мощнее:

socat stdin,icanon=0 ssl:IP:PORT

См. Также этот вопрос о SuperUser .

5
20.02.2017, 23:29
3 ответа

Я давно не использовал Linux в качестве основного драйвера, но для этого использовалась программа nautilus-open-terminal , хотя я не уверен, поддерживается ли она в Fedora. Кроме того, хотя я не знаю, можно ли установить его в системах, отличных от Ubuntu / Debian, в Unity DE Canonical встроена эта функция, вы, вероятно, могли бы воспроизвести метод, использованный там, в Gnome.

РЕДАКТИРОВАТЬ: В свете вашего комментария вы можете добавить строки в свой .profile , чтобы всегда открывать tmux в текущем рабочем каталоге gnome-terminal как запрещенный процесс (например, tmux. /; disown -r && killall gnome-terminal ), чтобы при щелчке правой кнопкой мыши и открытии терминала в каталоге он открывал gnome-terminal и сразу же открывал независимые окна tmux, передавая рабочий каталог, полученный nautilus в качестве аргумента. .

ОБНОВЛЕНИЕ: Хорошо, я нашел два метода. Теперь у каждого из них есть свои проблемы, но, надеюсь, одна из них подойдет вам. Эти методы были протестированы на установке Debian 8.7 с использованием Bash в качестве оболочки и программы nautilus-open-terminal для запуска окна терминала в текущем каталоге Nautilus / Nemo.

Метод 1.) Просто добавьте tmux в самый конец вашего файла .bashrc (или в вашем случае .zshrc .). Теперь любое открываемое вами окно терминала немедленно откроет tmux как процесс в рабочем каталоге.

Плюс к этому методу в том, что он прост и открывает только одно окно.

Основным недостатком этого метода является то, что он всегда будет запускаться как вложенный процесс в текущей оболочке, поэтому, если это проблема, вы можете вместо этого использовать другой метод.

Метод 2.) Добавьте строку gnome-terminal -e tmux ./ (на этот раз без кавычек вокруг имени процесса) в ваш .bashrc или .zshrc файл. Это откроет новое окно терминала, содержащее tmux в качестве основного процесса.

Плюсы этого метода в том, что окно tmux будет отдельным процессом и будет по-прежнему открываться с текущим рабочим каталогом, установленным в каталог окна Nautilus / Nemo.

Недостаток в том, что при открытии выделенного окна tmux exit нельзя добавить в файл .bashrc , иначе он также закроет окно tmux. При этом gnome-terminal, который используется для создания окна tmux, все еще можно закрыть вручную, щелкнув x в окне или запустив exit непосредственно в gnome-terminal один раз. tmux открылся.

Второй способ менее удобен тем, что приходится вручную закрывать лишнее окно терминала; при выборе пункта контекстного меню Открыть в терминале в текущем каталоге откроется специальное окно tmux.

3
27.01.2020, 20:41

Я добавил:

# Start tmux if tmux is not already running
pgrep tmux >/dev/null 2>&1 || exec tmux

в конце моего.bashrc, и мне кажется, что все работает нормально. Когда я запускаю терминал gnome -вручную (в первый раз ), запускается tmux. Если я открою другие терминалы, у них не будет tmux (, а это почти то, что мне нужно ). И открытие терминала из любой папки в Nautilus (с помощью «Открыть в терминале» )также работает должным образом.

0
27.01.2020, 20:41

С помощью переменной среды TMUXмы можем использовать exitдля автоматического уничтожения исходного терминала при выходе из сеанса tmux.

if [[ "$TMUX" == "" ]]  # if not on tmux
then
    tmux
    exit
fi

Это также предотвращает сообщение «sessions should be nested with care, unset $TMUX to force», вызванное вызовом tmuxв рамках сеанса tmux.

0
10.04.2020, 04:41

Теги

Похожие вопросы