tmux의 상태 라인에 마우스 또는 줌 모드의 상태 표시

최근 vim이나 tmux 등 스테이터스 라인의 표시에 이모티콘을 활용하는 것이 마이 붐입니다.

마우스 모드 표시



이전부터, 다음의 엔트리에 있는 것과 같은 설정을 넣어 prefix-m 로 마우스 모드의 ON/OFF를 간단하게 바꿀 수 있도록 하고 있습니다.
tmux로 마우스 모드 ON / OFF를 단일 키로 쉽게 전환 - Qiita

그럼, 전환이 간단하면 모드의 표시를 하고 싶어지지요. 라는 것으로 마우스 모드가 스테이터스 라인에 표시되도록 해 보았습니다.

tmux.conf
# マウスモードを右側に表示 ← NEW!
set -g status-right '#(tmux show-option -g mouse | grep -q on && echo "🐹  ")'

# マウスモードを簡単切り替え(デフォルトはOFFにしておいて、prefix+mで切替える)http://bit.ly/Z8fLmm
set-option -g mouse off
bind-key m if-shell "tmux show-options -g mouse | grep -q off" "set-option -g mouse on" "set-option -g mouse off" \; refresh-client

그래서 ↓ 이런 느낌이되었습니다.


🐹 (쥐의 이모티콘)은 검은 배경으로 상당히 시인성이 좋고 좋은 느낌입니다.

각 창의 탭에 줌 모드 표시



같은 느낌으로 prefix-z 로 현재 pane을 전체화면 표시로 하거나 되돌리거나 하는 기능을 자주 사용하므로 이것도 스테이터스에 확대 모드의 표시를 할 수 있도록 해 보았습니다.

줌 모드의 경우는 tmux 측에서 window_zoomed_flag 라는 플래그를 사용할 수 있으므로 이것을 이용합니다.
구체적으로는 확대 모드를 나타내는 아이콘을 삽입하고 싶은 위치에 #{?window_zoomed_flag,🔍 ,} 를 포함하는 느낌이 됩니다.

파워 라인적인 표시 설정이 있는 탓에 조금 엉망이 되고 있습니다만, 예를 들어 현재의 나의 설정은 이하와 같이 되어 있습니다. 각자의 설정에서는 윈도우명 표시의 #W 의 앞이나 뒤 근처에 더하는 것이 좋다고 생각합니다.

tmux.conf
set -g window-status-format "#[fg=colour244,bg=colour234]  #I #[fg=colour240] #[default]#{?window_zoomed_flag,🔍 ,}#W "
set -g window-status-current-format "#[fg=colour234,bg=colour31]#[fg=colour117,bg=colour31] #I  #[fg=colour231,bold]#{?window_zoomed_flag,🔍 ,}#W #[fg=colour31,bg=colour234,nobold]"
window-status-format 는 현재 윈도우 이외의 탭용, window-status-current-format 는 현재 윈도우용의 설정 부분입니다.

그래서 ↓ 이런 느낌이되었습니다.


🔍 (돋보기 아이콘 이모티콘)은 조금 시인성이 좋지 않기 때문에 다른 문자로 바꿀까 검토 중입니다만, 우선 지금은 이것으로 운용중.

ambiguous width (모호한 문자 폭)에 대해



이모티콘은 대부분의 앱에서는 내부적으로 반각폭으로 취급되는 것 같습니다만, 표시상은 전각폭인 느낌이 되는, 특히 터미널 환경에서는 조금 싫은 느낌의 유니코드 문자입니다.

에서 이 문자를 반각으로 취급할지 전각으로 취급할지 여부의 설정이 iTermvim 등의 각종 앱에 있을 수 있습니다만, 옛날부터 다양한 케이스를 경험한 결과, 모든 앱에서 반각 로서 취급하도록 하고 표시상의 문자가 쓰이는 문제에는 눈을 찌르는 것이 무난하다라고 하는 결론에 침착했습니다. 표시상은 깨끗이라도 외형과 커서 위치가 어긋나 버리는 것으로 옆의 문자를 지워 버리는 사고가 어색하기 때문에…

그래서 이모티콘을 채울 때는 絵文字+半角スペース를 한 세트로 사용하는 것이 매 베스트 프랙티스입니다. 위의 설정도 그렇게합니다.

좋은 웹페이지 즐겨찾기