平衡点


2017/02/03

_ tmux 2.3 での East Asian Ambiguous Character

tmux が 2.3 に上がってから,emacs -nw で SKK 使って文字を入れていくとズレズレになって悲しくなっていた. 状況としては,半角分ズレた所に確定した文字が入力されて,どんどんズレていく,といった所. ロケール弄ったし,wcwidth の値も Emacs 側での文字幅の設定もあっている筈なのに,ぐぬぬ.

...とかやっていた訳ですが.

ようやくすっりした,というか

tmux 2.2 からは wcwidth(1) を使うようになり、独自テーブルをやめてロケールの情報から文字幅を得るようになった https://github.com/tmux/tmux/commit/26945d7956bf1f160fba72677082e1a9c6968e0c 。 が、このコミットをよく見ると setlocale(LC_CTYPE, "en_US.UTF-8") で固定されており、LC_ALL や LC_CTYPE に関係なく en_US.UTF-8 が使われる。 tmux は UTF-8 を前提としており、そこを固定したい気持ちは分からなくもないが……

[from:tmux 2.2 以降で East Asian Ambiguous Width Character を正しく表示させる方法]

というわけで,

  • 曖昧文字幅を二文字幅にする.← wcwidth-cjk や locale の直接修正で
  • tmux.c での setlocale(LC_CTYPE, "en_US.UTF-8") を止め,setlocale(LC_CTYPE , "") とする

としたところ,状況が改善.あとは pane border.

aptitude なんかだと checker board なんかも使われるので,思いきって ACS エントリ全部 ASCII で書き変えてみたら,良い感じに.曖昧じゃない一文字幅の ACS entry に入れられる罫線文字種ってないかな....

(追記) 単に ACS 全部使うだけなら,それはそれで良いんだけれど,最近の VTE ベースの端末は ACS を Unicode の Box Line Drawing char で表示するので問題が元に戻ります.rxvt-unicode なんかだと,幅は locale を見てくれるし,ACS はそのまま表示してくれるので,辻褄が合って大変良い状況なのですが...


連絡先など
最近の日記
  • 2024/10/09
    • 1. Mastodon でのメール通知, というか Exim4 と Apparmor
  • 2024/06/19
    • 1. WSL2 での gpg-agent, ssh-agent
  • 2024/06/18
    • 1. WSL で Windows 側のフォントを利用する
  • 2024/06/17
    • 1. WSLとWindowsの時刻同期
  • 2024/06/12
    • 1. wsl2 で systemd
    • 2. wslg の設定
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|10|
Back to Top ▲