Skip to content

z80oolong/tmux -- tmux に野良差分ファイルを適用するための Formula 群

License

Notifications You must be signed in to change notification settings

z80oolong/homebrew-tmux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

z80oolong/tmux -- tmux に野良差分ファイルを適用するための Formula 群

概要

Homebrew for Linux とは、Linux の各ディストリビューションにおけるソースコードの取得及びビルドに基づいたパッケージ管理システムです。 Homebrew for Linux の使用により、ソースコードからのビルドに基づいたソフトウェアの導入を単純かつ容易に行うことが出来ます。

また、 tmux とは、 terminal session を効果的に操作できる端末多重化ソフトウェアです。 tmux の使用により、複数の仮想 window や pane を同時に表示し、それらの間を切り替えたり terminal session を分割することが可能となります。そして、これにより単一の terminal window 内で複数の task を同時に実行することが可能となります。

しかし tmux 2.6 以降において、現在のところ以下のような問題が発生しています。

  • Unicode の規格における東アジア圏の各種文字のうち、いわゆる "◎" や "★" 等の記号文字及び罫線文字等、 East_Asian_Width 特性の値が A (Ambiguous) となる文字 (以下、 East Asian Ambiguous Character) が、日本語環境で文字幅を適切に扱うことが出来ずに表示が乱れる問題が発生する。
  • Unicode 上の絵文字の文字幅も適切に扱われない問題が発生する。
  • tmux の pane 分割において、画面分割におけるボーダーラインの罫線文字の文字幅が適切に扱われず、画面表示が乱れる問題が発生する。
  • tmux の新たな HEAD 版より追加された SIXEL による画像表示において、パレット数が 0 となるような画像と表示させようとすると、 tmux の process が異常終了したり、 ORMODE に対応した SIXEL 画像が正常に表示されない問題が発生する。

この Homebrew for Linux 向け Tap リポジトリは、前述の各種問題を修正するための差分ファイルである "tmux 2.6 以降において各種問題を修正する野良差分ファイル" をソースコードに適用した tmux を導入するためのリポジトリです。

また、 powerlinegot 等、本リポジトリで導入される tmux を使用する際に有用となるツールを導入するための Formula も同梱しています。

使用法

まず最初に、以下に示す Qiita の投稿及び Web ページの記述に基づいて、手元の端末に Homebrew for Linux を構築します。

そして、本リポジトリに含まれる Formula を以下のようにインストールします。

 $ brew tap z80oolong/tmux
 $ brew install <formula>

なお、一時的な手法ですが、以下のようにして URL を直接指定してインストールすることも出来ます。

 $ brew install https://raw.githubusercontent.com/z80oolong/homebrew-tmux/master/Formula/<formula>.rb

なお、本リポジトリに含まれる Formula の一覧及びその詳細については、本リポジトリに同梱する FormulaList.md を参照して下さい。

その他詳細について

その他、本リポジトリ及び Homebrew for Linux の使用についての詳細は brew help コマンド及び man brew コマンドの内容、若しくは Homebrew for Linux の公式ページを御覧下さい。

謝辞

まず最初に、 tmux に関する差分ファイルを作成するに当たっては、下記の URL にある、 Markus Kuhn 氏が作成した East Asian Ambiguous Character の扱いを考慮した wcwidth(3) 関数の実装を使用しました。 Markus Kuhn 氏には心より感謝いたします。

http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c

また、本差分ファイルについて、 tmux の画面分割の為のボーダーラインの罫線文字について判別と適切な描画を行う為の修正を作成して頂いた koie-hidetaka 氏に心より感謝致します。 koie-hidetaka 氏におきましては、他にも本差分ファイルに関して有益な指摘も幾つか頂きました。

そして、本リポジトリで導入される tmux を使用するにあたって非常に有用であるツールであり:

  • 端末上で tmux のセッション選択を容易にするツールである got を作成された @gorilla0513 氏に心より感謝致します。
  • tmux のステータスラインを機能的に装飾するツールである Fabrizio Schiavi 氏を始めとする powerline の開発コミュニティの各氏に心より感謝致します。

そして、Homebrew for Linux の導入に関しては、 Homebrew for Linux の公式ページ の他、 thermes 氏による "Linuxbrew のススメ" 及び Homebrew for Linux 関連の各種資料を参考にしました。 Homebrew for Linux の開発コミュニティ及びthermes 氏を始めとする各氏に心より感謝致します。

そして最後に、 tmux の作者である Nicholas Marriott 氏を初め、 tmux に関わる全ての皆様及び、 Homebrew for Linux に関わる全ての皆様に心より感謝致します。

使用条件

本リポジトリは、 Homebrew for Linux の Tap リポジトリの一つとして、 Homebrew for Linux の開発コミュニティ及び Z.OOL. (mailto:zool@zool.jpn.org) が著作権を有し、Homebrew for Linux のライセンスと同様である BSD 2-Clause License に基づいて配布されるものとします。詳細については、本リポジトリに同梱する LICENSE を参照して下さい。