Diary?::2007-01-21

12:54

gxine で DVD を再生しようとすると強制終了を食らうという意味不明な事態に陥っていたので、今までは ogle と mplayer でなんとかしていたが、 ogle には音量調節機能がなく、 mplayer は DVD メニュー未対応というのはお前それどうなのて感じなので、なんとかもっとまともな DVD 再生環境にするべくちと調べてみた。そしたらテメー、 gxine で設定変えればいいだけの話じゃねえか。

やり方は File -> Configure -> Preferences -> video から、 driver を auto ではなく xshm にするだけ。こんなことで何時間無駄にしたんだ俺は。

20:00 「今まで特にタイトルを付けてなかったのは、ただ単純に考えるのが面倒だったからなんだけど」

日記の一行目 (あるいはその部分文字列) をタイトルにすれば全然手間がかからないので今日からはそうしようかな。不評だったら止める。

どーでもいいけど、俺は日記の中でコロコロ話題を変えるから、タイトルだけじゃあ本当は何について書かれているのかわかんねーのが嬉しくないかなあ。全文配信してるからそれで勘弁してくれないかなあ。

ちなみに過去には本の感想はそれとわかるタイトルを付けていたけど、途中で一回つけ忘れてからは付けなくなった。なのでこのスタイルもふとしたきっかけでやらなくなるかも。

20:38 「俺は俺だから俺の事が他の人よりはよくわかるので宣言すると、近いうちに間違いなくタイトル芸に走るぞ俺は」

ほらね。

22:10 「テキストエディタはタブの入力とインデントを完全に別物として実装した方がいいんじゃなかろうか」

Scribes を使っていて思うのだけど、例えば Makefile を書くときみたいにどうしてもタブ文字が必要なケースってのはあるもので、そういうときにインデントをスペースで入れるようにしているとどうしても嬉しくない。なので俺が考える嬉しいテキストエディタの実装ってのは大体次のような感じ。

決してそんなに頻繁に起こる問題ではないけれど、その時が来たときに非常に苛つくんだよな、これ。

追記@23:00 Scribes 0.3 のソースを読んだ限り、簡単に改造ってわけにはいかないっぽいな。適当なクラスにキー入力を受け付けるイベントハンドラを書いてごまかすって手もあるが、ちとそれはリスクがありすぎるか?

23:51 「Scribes 0.3 で Tab, Shift + Tab でインデント、アンインデントを行う方法」

ネタが割れたら案外簡単だった。

Scribes では各種のキーイベントへのアクションの割り当てを actions.py で行い、実際のキーイベントがあったときにアクションを呼び出すのは triggermanager.py で行っているようだ。ということは、 actions.py で Tab をインデントに、 Shift + Tab をアンインデントに割り当てればうまくいくはず。なので、 actions.py の次の箇所を修正する。

# actions.py の 841 行目以降
indent_line_trigger = ("indent_line", "ctrl - t", indent_line_cb)
unindent_line_trigger = ("unindent_line", "ctrl - T", unindent_line_cb)
indent_line_trigger = ("indent_line", "Tab", indent_line_cb)
unindent_line_trigger = ("unindent_line", "ISO_Left_Tab", unindent_line_cb)

こうすればいい。 Shift + Tab が ISO_Left_Tab になって返ってくるのに気がつかなくてちょっとはまった。

Written by Kuwata Chikara
Creative Commons