2020/05/05

tmux 3.1b の window 分割線を ascii character にする

2020/05/04(Mon) に tmux 3.1b がリリースされました
という事で、いつも通り EastAsianAmbiguous を ascii に変更するバージョンを作成します。
過去の作業履歴は 3.0a や 2.9a や 2.8 に、そもそもの問題についてはこのこのポストにまとめています。


環境

  • OS: macOS Mojave 10.14.6
  • tmux: 3.1b-border-ascii 526f000f29abadeef9f804bb9aea5291b913a312
  • Homebrew:  2.2.15-2-gb06a7af
    • Homebrew/homebrew-core (git revision 0058c; last commit 2020-05-04)
  • Font: Ricty 3.2.2


インストール方法

  • $ brew install --HEAD atton/customs/tmux
でインストールできます。


本家との diff : utf8proc を使わない

しかし、 utf8proc は現時点の最新バージョンである 2.5.0 でも EastAsianAmbiguous 対応はされていません。
前回(2.3, 2.2.0)のように utf8proc を変更する選択肢もありました。
ですが、 tmux のソースを読むと utf8proc が無い場合 wcwidth を使うようなので、変更しない選択肢もありそうです。
試しに utf8proc を抜いてビルドした tmux を軽く触っても、特段違和感は無し。
とりあえず YAGNI の精神で、今回は utf8proc を使わない事にしました。


前回との diff : atton/tmux の default branch を master から border-ascii に変更

これは tmux へパッチを当てる運用方法の変更です。

ローカルで設定している remote repository は以下の2つ。
  • origin: atton/tmux
  • upstream: tmux/tmux
upstream を fetch して origin に反映させつつ、リリースがあれば対応するパッチを当てる、という運用でした。

ここで面倒だったのが、両方の master の使い分け。
例えば upstream/master の変更を origin/master に適用する時は
  • $ git fetch upstream
  • $ git checkout origin/master
  • $ git rebase upstream/master
と、prefix を指定する必要があります。それに加えて、紛らわしいのも改善したい。

そこで、atton/tmux の master は削除して default branch を border-ascii に変更
そしてローカルの tmux は master の remote tracking branch を upstrem/master に指定。具体的には以下のような感じ
  • $ git checkout master
  • $ git branch -u upstream/master
これにより master は tmux/tmux に追従し、他のブランチは atton/tmux に反映される、という状態にできました。


前回との diff : GitHub Actions の追加

GitHub Actions を2ヶ所で利用しています。

1ヶ所目は atton/tmux で、centos 環境で make 可能かチェックしています。
2ヶ所目は atton/homebrew-customs で、macOS 環境で make 可能かチェックしています。

GitHub Actions では mac と docker が使えるので、様々な環境下でテストできる点が良いですね。