2011の13日目です。xmodem転送でした。今日はtmuxのマウスまわりの設定について紹介してみます。tmuxにはマウスで操作するための機能がいくつか提供されています。portから入れたtmuxでは動かなかったのでソースから最新版をいれることをおすすめします。macでソースから入れる方法は初日にmatsuuさんが紹介してくれているのでそちらを参考にしてください。tmux-1.5の時点で使えるマウス関連の設定項目は以下の通りです。mode-mouseonにすると、マウスで画面をドラッグしたときにコピーモードに入ります。マウスホイールでスクロールすることもできます。mouse-select-paneマウスクリックでpaneを選択できるようになります。mouse-select-windowstatusを有効にしているときに、window名の部分をクリックすることでwindowを切り替えられます。mouse-utf8マウスの入力をutf-8として扱うための設定だそうです。効果はよくわかりませんでした。shiftを押しながらターミナルをクリックすれば、本来のマウスの動作になります。ubuntuのgnome-terminalで動作確認できました。画面が乱れることがありますが、再描画すると直ります。まとめ以下を.tmux.confにコピペするとtmuxでマウスがつかえます。on本当は、set-clipboardという機能も紹介したかったのですが、ちゃんと動かすことができなかったのでまたの機会にします。以上非常に簡単でしたがマウスサポート機能の紹介でした。2011の6日目7日目です。(netmark.jpさん,matsuuさん、すいません、出遅れました。Screenを使ってみようでした。screenをもうちょっとだけ便利に使おう!でした。この記事ではtmuxのいじり方を簡単に紹介してみます。はじめにtmuxは比較的若いプロジェクトなこともあってか、かゆいところに手が届かないシチュエーションがたまにあります。個人的に不満だったのはバッファの挙動です。tmuxでバッファに文字列をコピーした場合、list-buffersに新しいものほど前方になるように格納されていきます。choose-bufferコマンドを使えばある程度簡単に過去のものもさかのぼれますがしばらくすると埋もれてしまいます。場所が固定されていないといちいち探さなくてはならず不便に感じていました。なんとかできないかと思ってソースをいじってみたら、意外と簡単だったので簡単な解説をまじえつつ手順を紹介してみます。準備ソースをとってくる依存パッケージを入れるビルドソース構成いじってみるまとめ準備ソースをとってくる本家サイトからソースをおとします。現在の最新版(1.5)でいいと思います。tmuxはlibeventとnlcursesに依存しているのでビルドするにはライブラリのヘッダも必要です。ubuntuだと以下パッケージを入れとけばたぶん大丈夫です。makeここまでできたら準備OKです。ファイルがありますが、ファイル名を見れば大体雰囲気がつかめると思います。何か機能を追加したいだけなら、いじる必要のあるファイルはごく一部です。tmux.hほとんどのコマンドは全部ここに宣言がまとめられてるのでほぼ必ずいじります。options-table.cオプション追加する場合はここに追加します。値の肩などを定義するテーブルが宣言されているので、中身を見れば大体わかると思います。いじる必要はないですがarray.hはいろんなところでつかわれてるので目を通しとくとよいと思います。Cでリストが使いたい場合は他のとこでも流用できそうな便利なヘッダです。あとは必要に応じて関係しそうなところをみていけばよいです。いじってみるバッファまわりを改造したいので、paste.cというファイルが主な対象になります。細かい解説は省略しますが、paste_stackという構造体がグローバルで共有しているリストの本体で、array.hで宣言されているマクロで値がとりだせるようになっています。本来の動作であるpaste_addを参考にしつつpaste_add_tailなんて関数を追加します。後に追加した文字列ほど後ろにいってほしいですが、直前のものだけは先頭にあったほうが便利なのでちょっと変則的な感じになってますが、やっていることはシンプルです。size_t);また、今回の機能は設定ファイルでon/offを切り替えられるようにしておきたいので、options-table.cも編集します。0,実際にバッファの制御関数を呼び出しているのはwindow-copy.cなので、さっき追加したオプションの値をみて切り替えられるようにします。}あとは設定ファイルに以下を追加してmakeしたtmuxを起動してみます。onバッファにコピーした文字列がlist-buffersの後ろに追加されていけば成功です。簡単ですよね?まとめ以上、tmuxにreverse-bufferというオプションを追加して、バッファの挙動を変更できるようにしてみました。端末制御のプログラムは普段あまり触れる機会がないし複雑そうなイメージがあって敬遠しがちですが、ちょっとした機能を追加するだけだったら意外と簡単だったりするのでどんどんいじってみるといいと思います。