おちゅ〜しゃのマニアックなカスタマイズ方法

設定ダイアログでは賄いきれない詳細部分のカスタマイズもできる場合があります。


キーバインディングのカスタマイズ

gtkrcによる設定

おちゅ〜しゃのキーバインディングは基本的にGTK+の作法に法った方法でカスタマイズできます。

~/.ochusha/ochusha-gtkrcというファイルが存在する場合、おちゅ〜しゃは起動時にこれを読み込みます。これは対象がおちゅ〜しゃに限定されていることを除けば、GTK+の標準で取り扱われる(?)~/.gtkrcと同等のものです。インストール方法によりファイルの置場所は異なるかもしれないけれど、/usr/share/ochusha/ochusha-gtkrcあるいは/usr/share/doc/ochusha-0.6/ochusha-gtkrcなどがサンプルです。

ochusha-gtkrcの中でユーザはGTK+のGUI部品の単位であるGtkWidgetとそのサブクラスたちにキーバインディングを設定することができます。

GTK+-2.14.xには特有の不具合(?)があります。GTK+-2.14.xのGtkTextViewには「編集不可」の状態で一切のキーバインディングを無視するという不具合があるような気がします。おちゅ〜しゃではGtkTextViewを書き込みエディタの類いやスレ表示に用いています。現在は不具合を回避するために「GTK+標準のキーバインディング」相当のものを別口で実装しているので気付きにくいですが、ochusha-gtkrcでは「編集不可」なスレ表示部分やデバッグコンソールの該当部分のキーバインディングを変更できません。

サンプルだけで分からない点などについては、ソースを参照するか2ちゃんねるのスレで質問してください。

グローバルキーバインディングの設定

典型的にはメニューバーのアイテムなどに関係するグローバルなキーバインディングをochusha-gtkrcで設定する方法が、作者には発見できていないので、それらに関するキーバインディングは別の方法で設定する必要があります。

起動時に~/.ochusha/ochusha-accel-map.rcというファイルが存在した場合、おちゅ〜しゃは標準のキーバインディング設定の代わりにそれを読み込みます。このファイルがgtk_accel_map_load()によりGTK+に読み込まれます。

インストール方法によりファイルの置場所は異なるかもしれないけれど、/usr/share/ochusha/ochusha-accel-map.rc.{default,everything}あるいは/usr/share/doc/ochusha-0.6/ochusha-accel-map.rc.{default.everything}がサンプルです。いずれのサンプルもそのまま用いた場合には標準の設定と同一になります。

セミコロン(;)以降行末までをコメントと見なす文法です。

ochusha-accel-map.rc内に現れる"/〜/OpenURL"OpenURLなどは後述のメニュー・ツールバーのカスタマイズで用いられるXMLによるUI定義の中の"action"に対応しています。詳細はヘルプのおまけを参照してください。

グローバルなキーバインディングを設定できるけれど、実際にはコンテキスト依存な機能なども存在することに注意してください。

サンプルだけで分からない点などについては、ソースを参照するか2ちゃんねるのスレで質問してください。

Scheme手続きによるキーバインディング設定

ochusha-gtkrcochusha-accel-map.rcでは極単純な設定しかできない上に自由度もかなり低く、そのくせ設定を分散して記述する必要があるという面倒がかかるのはイクナイので、現在Scheme手続きによるキーバインディングの設定機能の実装を考えています。前二つの方法に満足できない場合、おちゅ〜しゃの実装の今後の進展を待つ必要があります。


メニュー・ツールバーのカスタマイズ

起動時に~/.ochusha/ochusha-ui.xmlというファイルが存在した場合、おちゅ〜しゃは標準のメニューやツールバーを作る代わりに~/.ochusha/ochusha-ui.xmlを元にしたメニューやツールバーを用意します。

ファイルはgtk_ui_manager_add_ui_from_file(...)によってGTK+に読み込まれます。

インストール方法によりファイルの置場所は異なるかもしれないけれど、/usr/share/ochusha/ochusha-ui.xml.{default,everything,simple}あるいは/usr/share/doc/ochusha-0.6/ochusha-ui.xml.{default,everything,simple}がサンプルです。

このボタン使ったこと無いし邪魔なんだけど? とか思ったら、これを用意すればある程度好き勝手に編集できます。とはいえ、基本的にochusha-ui.xml.everythingから要素を削る方向で編集するのが良いでしょう。コンテキスト依存のメニューやボタンを別のところに配置するなどして遊んでも良い事はないです。

詳細はヘルプのおまけを参照してください。

色々実験的な要素があるので、現時点ではバージョンアップに弱いという欠点があることに注意してください。

サンプルだけで分からない点などについては、ソースを参照するか2ちゃんねるのスレで質問してください。


Scheme手続きによるカスタマイズ

起動時に~/.ochusha/ochusha-init.scmというファイルが存在した場合、おちゅ〜しゃは起動時にそのファイルを読み、評価します。

おちゅ〜しゃは各種の操作にScheme手続きを用いており、~/.ochusha/ochusha-init.scmに記述することでそれらを上書きすることができます。

インストール方法によりファイルの置場所は異なるかもしれないけれど、/usr/share/ochusha/ochusha-init.scm.defaultあるいは/usr/share/doc/ochusha-0.6/ochusha-init.scm.defaultが標準としておちゅ〜しゃ本体に埋め込まれている内容と同一です。ユーザの~/.ochusha/ochusha-init.scmが存在しない場合にのみ、評価されます(以前は~/.ochusha/ochusha-init.scmが存在する場合にも読み込んでいましたが、最近変更しました)。これがサンプルでもあります。

Scheme手続きによるカスタマイズを行うことで、スレ一覧における配色の方針設定、スレ一覧表示でのフィルタリング・ソート規則の設定、外部ツールの登録、(リンクでないものをリンク化したりといった)スレ表示の調整などができます。

詳細はヘルプのおまけを参照してください。

おちゅ〜しゃは自前のSchemeインタプリタを用いています。R5RS準拠を目指して実装されていますが、まだかなーり中途半端なので難しいことはできません。詳しくはソースを参照するか2ちゃんねるのスレで質問してください。


謝辞

おちゅ〜しゃは現在SourceForge.jpのロゴのサービスを使って開発されています。

おちゅ〜しゃは正規表現ライブラリとして鬼車を用いています。


$Date: 2008/12/23 18:03:55 $