Как запустить tmux - автоматически - при запуске konsole/yakuake?

Я узнал tmux возможность в последнее время, и я использую его внутри yakuake / konsole (терминал, похожий на землетрясение). Тем не менее, я должен запустить tmux вручную каждый раз, когда я запускаю свой ноутбук или перезагружаюсь yakuake,

Как запустить tmux - автоматически - когда yakuake / konsole начать?

5 ответов

Решение

На основании Start tmux в каждой статье входа в оболочку из Archlinux wiki вы можете запустить tmux на вашей оболочке с помощью следующего кода на

Zsh или же Bash

Добавьте в свой zsh или же bash конфигурация (обычно ~/.zshrc или же ~/.bashrc) следующий код и перезапустите сеанс:

function start_tmux() {
    if type tmux &> /dev/null; then
        #if not inside a tmux session, and if no session is started, start a new session
        if [[ $HOST == "laptop" && -z "$TMUX" && -z $TERMINAL_CONTEXT ]]; then
            (tmux -2 attach || tmux -2 new-session)
        fi
    fi
}
start_tmux

Fish

Добавьте в свой fish конфигурация (обычно ~/.config/fish/config.fish) следующий код и перезапустите сеанс:

function start_tmux
    if type tmux > /dev/null
        #if not inside a tmux session, and if no session is started, start a new session
        if test -z "$TMUX" ; and test -z $TERMINAL_CONTEXT
            tmux -2 attach; or tmux -2 new-session
        end
    end
end

start_tmux

Друг совет, чтобы использовать <terminal_emulator> -e tmux,

Konsole

Работает с konsole,

Я изменил свойство в меню, чтобы:

konsole -e tmux

Yakuake

Однако это не работает сyakuake,

Я решил это, создав профиль Konsole/Yakuake (это одно и то же) + сделал его профилем по умолчанию, в котором я настроил Commandк:

      /usr/bin/sh -ilc "tmux attach || tmux new"

Управление профилями + где находится профиль, если Yakuake/Konsole больше не запускается:

Когда якуаке работает:

qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal 0 "tmux"

Я не пробовал с Yakuake, но у меня есть подход к написанию сценариев оболочки с одним вкладышем, чтобы он работал с эмулятором терминала Konsole.

Набор эмуляторов консоли KONSOLE_<something>переменная среды при запуске.

Зная этот факт, мы можем добавить это к .zshrcфайл

      [ -z "$KONSOLE_VERSION" ] || tmux

И это запустит все окна KONSOLE, подключенные к активному сеансу tmux, или создаст его, если это первое окно.

Другие вопросы по тегам