web-dev-qa-db-ja.com

Tmuxはウィンドウの自動名前変更を停止しません

Tmuxに関する問題-.tmux.confファイルで、名前を設定した後にウィンドウの名前を変更しないように彼に言いましたが、「権限を尊重」していないようです:)。

私のシステム:

  • OSX El Capitan
  • Tmux 2.1(Brew経由でインストール)
  • Zshell

ここに私の〜/ .tmux.confコンテンツがあります(私はそれが非常に長いことをお詫び申し上げます):

# set correct term
set -g default-terminal screen-256color

# set prefix key to ctrl+a
#unbind C-b
set -g prefix C-a 

# reload config without killing server
bind R source-file /users/edchigliak/.tmux.conf 

# enable wm window titles
set -g set-titles on

# disable auto renaming
set -g automatic-rename off

# border colour
set -g pane-border-fg blue
set -g pane-border-bg default
set -g pane-active-border-fg blue
set -g pane-active-border-bg default

# wm window title string (uses statusbar variables)
set -g set-titles-string "tmux:#I [ #W ]"

# initialize sessions
bind S source-file ~/.tmux.conf 
bind I source-file ~/.tmux.conf

# environment
set -g update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY"

# statusbar --------------------------------------------------------------
set -g window-status-format "#I:#W"
set -g window-status-current-format "#I:#W"

set -g status-keys vi
bind-key -t vi-edit Up history-up
bind-key -t vi-edit Down history-down

set -g status-interval 1
set -g status-justify centre # center align window list

# default statusbar colors
# wm window title string (uses statusbar variables)
set -g set-titles-string "tmux:#I [ #W ]"

# initialize sessions
bind S source-file ~/.tmux.conf 
bind I source-file ~/.tmux.conf

# environment
set -g update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY"

# statusbar --------------------------------------------------------------
set -g window-status-format "#I:#W"
set -g window-status-current-format "#I:#W"

set -g status-keys vi
bind-key -t vi-edit Up history-up
bind-key -t vi-edit Down history-down

set -g status-interval 1
set -g status-justify centre # center align window list

# default statusbar colors
set -g status-fg white
set -g status-bg default

# default window title colors
set-window-option -g window-status-fg black
set-window-option -g window-status-bg default
set-window-option -g window-status-attr dim

# active window title colors
set-window-option -g window-status-current-fg white
set-window-option -g window-status-current-bg default
set-window-option -g window-status-current-attr dim

# command/message line colors
set -g message-fg white
set -g message-bg black
set -g message-attr bright

# Statusbar starting in X or not
# if '[ -n "$DISPLAY" ]' 'source-file ~/.tmux/inx'
# if '[ -z "$DISPLAY" ]' 'source-file ~/.tmux/xless'

私が試した場合:

〜> $ TERMをエコー

私は正しいです:

画面256色

これにより、正しい.confファイルが読み込まれていると思います。また、コントロールキーバインディングはCtrl+bからCtrl+aに変更されます。ただし、Ctrl + aおよび,simplyを使用して変更したウィンドウ名はそのまま残りません。

何が起こっているのですか?ありがとう!

16

この原因として考えられるのは、プログラムの起動時またはプロンプトの発行時にウィンドウタイトルを更新するようにzshが構成されていることです。これは、ターミナルエスケープシーケンス\ek<TEXT>\e\\を使用して行われます。ここで、<TEXT>はウィンドウタイトルです。

これを防ぐには、2つのオプションがあります。

  • tmux構成でのウィンドウ名の変更を禁止します。

    追加するだけ

    set allow-rename off
    

    あなたの~/.tmux.confに。これにより、前述のターミナルエスケープシーケンスを使用してプログラムがウィンドウタイトルを変更することを防ぎます。

  • zsh構成の設定を追跡し、無効にします。

    oh-my-zshを使用している場合は、設定するだけで十分です

    DISABLE_AUTO_TITLE="true"
    

    ~/.zshrc内(またはoh-my-zshのデフォルトの.zshrcテンプレートを使用している場合は、コメントを解除します)。

    独自の構成またはその他の構成フレームワークを使用している場合は、\ekを検索することで追跡できます(検索ツールで必要な場合は、バックスラッシュを引用符で囲むことを忘れないでください)。

34
Adaephon

この結果にbashを実行して着陸する人々にとって、タイトルを設定するのはPrompt_COMMAND環境変数。一部の共有システムがうっとうしく設定しました。あなたはそれをunset Prompt_COMMAND(例:.bashrc

4
Davide