【tmux】 ssh 연결 대상에 따라 자동으로 창의 배경색과 제목을 변경합니다.

8779 단어 SSHmsys2tmux
Windows에서 tmux를 사용하려고 하면 Cygwin 또는 MSYS2 의 2택이 될까 생각합니다.
다음은 MSYS2를 사용하는 경우의 순서입니다만, Cygwin에서도 그렇게 변하지 않을까 생각합니다.

tmux 설치



패키지 매니저의 pacman(apt-cyg같은 것)으로 인스톨 할 수 있는 tmux는 버젼이 낡은? 처럼 페인의 타이틀을 변경할 수 없었습니다.
$ pacman -Sy tmux
$ tmux select-pane -T 'hoge'
# -T オプションの説明がない
usage: select-pane [-DdegLlMmRU] [-P style] [-t target-pane]

그래서 git의 소스 코드에서 빌드하는 형태로 최신 버전을 설치하고 있습니다.
$ pacman -Sy make autoconf pkg-config automake-wrapper gcc mingw-w64-x86_64-ncurses ncurses-devel libtool --noconfirm

$ cd ~/
$ git clone https://github.com/libevent/libevent.git
$ cd libevent
$ sh autogen.sh
$ ./configure
$ make
$ make install

$ cd ~/
$ git clone https://github.com/tmux/tmux
$ cd tmux
$ sh autogen.sh
$ ./configure
$ make
$ make install
$ tmux -S $(find /tmp -name 'tmux*')/default
$ tmux select-pane -T 'hoge'
# -T オプションが使用できる
tmux 커멘드만으로 기동하려고 한다.
htps : // m / shibu_t / ms / 7556 A 075 E 25 bd86 A C3 A

창 제목 표시



창 제목을 변경해도 기본적으로 어디에도 표시되지 않으므로 다음 설정을 추가합니다.

.tmux.conf
# status
set -g pane-border-status bottom
set -g pane-border-format " #{pane_index} : #T "
# border
set -g pane-border-fg green
set -g pane-border-bg black
# アクティブなペインの色
set -g pane-active-border-fg colour14
set -g pane-active-border-bg colour21

구성 파일을 읽으려면 다음 명령을 실행합니다.
$ tmux source-file ~/.tmux.conf \; display "Reloaded!"

이런 느낌.

  • 선택한 창의 테두리 변경
  • 창 번호와 제목을 테두리 밑줄에 표시
  • 제목은 현재 디렉토리를 자동으로 반영합니다

  • 수동으로 패널 제목을 변경해보십시오.
    $ tmux select-pane -T 'hogehogehoge'
    



    ···변화하지 않는다. 화상에서는 전해지지 않지만 커맨드를 실행한 직후, 한순간만 타이틀이 변화한 것처럼 보인다.

    현재 선택 중인 창 이외에 실행해 보기can't create socket: Permission denied


    선택한 창이 이동함과 동시에 제목이 변경되었습니다.
    아무래도 엔터가 입력된 후, 현재 있는 디렉토리 정보가 자동적으로 페인 타이틀에 반영되어 버린 것 같다.
  • 자신의 페인 타이틀을 변경하려고 했을 경우
  • $ tmux select-pane -T 'hogehogehoge' -t 2 에서 ペイン1의 제목을 ペイン1로 변경하는 명령을 입력하고 Enter를 누릅니다.
  • hoge의 제목이 변경되었습니다.
  • 엔터를 눌렀으므로, ペイン1 의 현재의 디렉토리 정보가 자동적으로 타이틀에 덧쓰기된다.

  • 자신 이외의 페인 타이틀을 변경하려고 했을 경우
  • ペイン1 에서 ペイン1의 제목을 ペイン2로 변경하는 명령을 입력하고 Enter를 누릅니다.
  • hoge의 제목이 변경되었습니다. 동시에 선택중 창도 ペイン2 가 된다.
  • 엔터가 밀린 것은 ペイン2 그래서, ペイン1 의 현재 있는 디렉토리 정보가 자동적으로 타이틀에 반영되지만, ペイン1 의 타이틀은 ペイン2 그대로.


  • 나중의 작업에서도 특별히 곤란하지 않기 때문에, 일단 이 문제는 방치해 둔다.

    배경색 변경



    미리 256색 설정을 사용하도록 설정합니다. (다양한 사람이 정리해 주므로 순서는 생략합니다)
    hoge


    ssh 명령 실행시 창 제목, 배경색을 변경합니다.



    ssh의 인수를 어떻게 결정합니까? 어떤 색으로 할까? 자유롭게 변경 가능.

    .bashrc
    function ssh() {
      # tmux起動時
      if [[ -n $(printenv TMUX) ]] ; then
        # 現在のペインIDの退避と背景色の書き換え
        local pane_id=`tmux display -p '#{pane_id}'`
        # 接続先ホスト名に応じて背景色、文字色を切り替え
        if [[ `echo ${!#} | grep -E 'localhost|127\.0\.0\.1'` ]] ; then
            tmux select-pane -P 'fg=colour166,bg=colour233'
        else
            tmux select-pane -P 'fg=colour5,bg=colour233'
        fi
        tmux select-pane -T "${!#}"
    
        # 通常通りコマンド続行
        command ssh $@
        # デフォルトの色設定に戻す
        tmux select-pane -t $pane_id -P 'default'
      else
        command ssh $@
      fi
    }
    

    알맞은 주인에 ssh.$ tmux select-pane -P 'bg=cyan,fg=white'

    좋은 웹페이지 즐겨찾기