gnome-terminal で起動するように tmux を設定する方法は次のとおりです。 :
<オール>これらの指示は、Ubuntu 11.04 で機能します。 Linux の任意のフレーバーの gnome-terminal で同等の機能が動作するはずです。
.zshenv
から何でも起動 間違いなく間違ったアプローチです。このファイルは zsh
のすべてのインスタンスによって実行されます 、スクリプトを実行しているときでも。 .zshrc
を使用 対話型シェルで実行する必要があるもの、および .profile
(または .zprofile
、ログイン シェルとして zsh を設定している場合) は、ログイン時に実行する必要があります。
すべての端末で tmux が必要な場合は、端末の直下で tmux を開始します (例:gnome-terminal -e tmux
)。 (これらの引数を渡すように GUI ランチャーを変更してください)。 -e
でも引数を渡すことができます (ただし、引用には注意してください)。 gnome-termminal -e 'tmux -s ~/.alternate.tmux.conf'
.
ssh 経由でログインするときに tmux も開始する場合は、~/.profile
から起動する必要があります。 .これは、ログイン シェルの親プロセスが sshd
の場合にのみ実行します。 :
parent_process_name=$(ps -o comm= -p $PPID`)
case ${parent_process_name##*/} in
sshd) type tmux >/dev/null 2>/dev/null && exec tmux;;
esac
ssh 経由で tmux を開始する別の方法は、環境からセッション名を取得することです。そうすれば、既存のセッションにアタッチできます。最も簡単な方法は、サーバー側で小さなスクリプトを作成することです。 ~/bin/tmux-login-session
:
#!/bin/sh
if tmux has-session -t "$1"; then
exec tmux attach-session -t "$1"
else
. ~/.profile
exec tmux new-session -s "$1"
fi
次に、次のような ssh コマンドを使用します:
ssh -t hostname.example.com bin/tmux-login-session SESSION_NAME
ターミナルで次のコマンドを実行して、tmux を取得します。 gnome-terminal を起動するたびに実行する :
gconftool --type string --set /apps/gnome-terminal/profiles/Default/custom_command "tmux"
gconftool --type bool --set /apps/gnome-terminal/profiles/Default/use_custom_command "true"
これらの一連のコマンドにより、ターミナルの開始時に gnome-terminal が tmux を起動します。
- これにより、tmux を終了すると gnome-terminal も終了します。
- これは gnome-terminal 設定であるため、ssh やログインに干渉することはありません。
- また、デスクトップにピン留めした gnome-terminal のすべてのショートカットを使用して、tmux を実行しているコマンドラインから起動できるため、この動作用のカスタム ショートカットを作成する必要はありません。