Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > ffbe04469cad43e270e2435265ed0767 > files > 30

ochusha-0.6.0.1-0.9.cvs20100817T0000.fc14.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html40/strict.dtd">
<!-- $Id: customize-more.html.in,v 1.5 2008/12/21 00:02:57 fuyu Exp $ -->
<html lang="ja">
  <head>
    <link rel="stylesheet" href="ochusha-help.css" type="text/css">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="author" content="ふゆ">
    <title>おちゅ〜しゃ version 0.6.0.1 (もっとカスタマイズ)</title>
  </head>

  <body>
    <div class="PageBody">
      <h1>おちゅ〜しゃのマニアックなカスタマイズ方法</h1>

      <p>設定ダイアログでは賄いきれない詳細部分のカスタマイズもできる場合があります。</p>
      <ul>
	<li><a href="#KeyBindings">キーバインディングのカスタマイズ</a></li>
	<li><a href="#UI">メニュー・ツールバーのカスタマイズ</a></li>
	<li><a href="#Scheme">Schemeによるカスタマイズ</a></li>
      </ul>



      <hr>
      <h2><a name="KeyBindings">キーバインディングのカスタマイズ</a></h2>
      <h3><code>gtkrc</code>による設定</h3>
      <p>おちゅ〜しゃのキーバインディングは基本的にGTK+の作法に法った方法でカスタマイズできます。</p>
      <p><code>~/.ochusha/ochusha-gtkrc</code>というファイルが存在する場合、おちゅ〜しゃは起動時にこれを読み込みます。これは対象がおちゅ〜しゃに限定されていることを除けば、GTK+の標準で取り扱われる(?)<code>~/.gtkrc</code>と同等のものです。インストール方法によりファイルの置場所は異なるかもしれないけれど、<code>/usr/share/ochusha/ochusha-gtkrc</code>あるいは<code>/usr/share/doc/ochusha-0.6.0.1/ochusha-gtkrc</code>などがサンプルです。</p>
      <p><code>ochusha-gtkrc</code>の中でユーザはGTK+のGUI部品の単位である<code>GtkWidget</code>とそのサブクラスたちにキーバインディングを設定することができます。</p>
      <p><em>GTK+-2.14.xには特有の不具合(?)があります</em>。GTK+-2.14.xの<code>GtkTextView</code>には「編集不可」の状態で一切のキーバインディングを無視するという不具合があるような気がします。おちゅ〜しゃでは<code>GtkTextView</code>を書き込みエディタの類いやスレ表示に用いています。現在は不具合を回避するために「GTK+標準のキーバインディング」相当のものを別口で実装しているので気付きにくいですが、<code>ochusha-gtkrc</code>では「編集不可」なスレ表示部分やデバッグコンソールの該当部分のキーバインディングを変更できません。</p>
      <p>サンプルだけで分からない点などについては、ソースを参照するか2ちゃんねるのスレで質問してください。</p>

      <h3><a name="GlobalKeyBindings">グローバルキーバインディングの設定</a></h3>
      <p>典型的にはメニューバーのアイテムなどに関係するグローバルなキーバインディングを<code>ochusha-gtkrc</code>で設定する方法が、作者には発見できていないので、それらに関するキーバインディングは別の方法で設定する必要があります。</p>
      <p>起動時に<code>~/.ochusha/ochusha-accel-map.rc</code>というファイルが存在した場合、おちゅ〜しゃは標準のキーバインディング設定の代わりにそれを読み込みます。このファイルが<a href="http://library.gnome.org/devel/gtk/unstable/gtk-Accelerator-Maps.html#gtk-accel-map-load"><code>gtk_accel_map_load()</code></a>によりGTK+に読み込まれます。</p>
      <p>インストール方法によりファイルの置場所は異なるかもしれないけれど、<code>/usr/share/ochusha/ochusha-accel-map.rc.{default,everything}</code>あるいは<code>/usr/share/doc/ochusha-0.6.0.1/ochusha-accel-map.rc.{default.everything}</code>がサンプルです。いずれのサンプルもそのまま用いた場合には標準の設定と同一になります。</p>
      <p>セミコロン(;)以降行末までをコメントと見なす文法です。</p>
      <p><code>ochusha-accel-map.rc</code>内に現れる<code>"<Actions>/〜/OpenURL"</code>の<code>OpenURL</code>などは後述の<a href="#UI">メニュー・ツールバーのカスタマイズ</a>で用いられるXMLによるUI定義の中の<code>"action"</code>に対応しています。詳細は<a href="appendix.html#GtkActions">ヘルプのおまけ</a>を参照してください。</p>
      <p>グローバルなキーバインディングを設定できるけれど、実際にはコンテキスト依存な機能なども存在することに注意してください。</p>
      <p>サンプルだけで分からない点などについては、ソースを参照するか2ちゃんねるのスレで質問してください。</p>

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



      <hr>
      <h2><a name="UI">メニュー・ツールバーのカスタマイズ</a></h2>
      <p>起動時に<code>~/.ochusha/ochusha-ui.xml</code>というファイルが存在した場合、おちゅ〜しゃは標準のメニューやツールバーを作る代わりに<code>~/.ochusha/ochusha-ui.xml</code>を元にしたメニューやツールバーを用意します。</p>
      <p>ファイルは<a href="http://library.gnome.org/devel/gtk/unstable/GtkUIManager.html#gtk-ui-manager-add-ui-from-file"><code>gtk_ui_manager_add_ui_from_file(...)</code></a>によってGTK+に読み込まれます。</p>
      <p>インストール方法によりファイルの置場所は異なるかもしれないけれど、<code>/usr/share/ochusha/ochusha-ui.xml.{default,everything,simple}</code>あるいは<code>/usr/share/doc/ochusha-0.6.0.1/ochusha-ui.xml.{default,everything,simple}</code>がサンプルです。</p>
      <p>このボタン使ったこと無いし邪魔なんだけど? とか思ったら、これを用意すればある程度好き勝手に編集できます。とはいえ、基本的にochusha-ui.xml.everythingから要素を削る方向で編集するのが良いでしょう。コンテキスト依存のメニューやボタンを別のところに配置するなどして遊んでも良い事はないです。</p>
      <p>詳細は<a href="appendix.html#GtkActions">ヘルプのおまけ</a>を参照してください。</p>
      <p>色々実験的な要素があるので、現時点ではバージョンアップに弱いという欠点があることに注意してください。</p>
      <p>サンプルだけで分からない点などについては、ソースを参照するか2ちゃんねるのスレで質問してください。</p>



      <hr>
      <h2><a name="Scheme">Scheme手続きによるカスタマイズ</a></h2>
      <p>起動時に<code>~/.ochusha/ochusha-init.scm</code>というファイルが存在した場合、おちゅ〜しゃは起動時にそのファイルを読み、評価します。</p>
      <p>おちゅ〜しゃは各種の操作にScheme手続きを用いており、<code>~/.ochusha/ochusha-init.scm</code>に記述することでそれらを上書きすることができます。</p>
      <p>インストール方法によりファイルの置場所は異なるかもしれないけれど、<code>/usr/share/ochusha/ochusha-init.scm.default</code>あるいは<code>/usr/share/doc/ochusha-0.6.0.1/ochusha-init.scm.default</code>が標準としておちゅ〜しゃ本体に埋め込まれている内容と同一です。ユーザの<code>~/.ochusha/ochusha-init.scm</code>が存在しない場合にのみ、評価されます(以前は<code>~/.ochusha/ochusha-init.scm</code>が存在する場合にも読み込んでいましたが、最近変更しました)。これがサンプルでもあります。</p>
      <p>Scheme手続きによるカスタマイズを行うことで、スレ一覧における配色の方針設定、スレ一覧表示でのフィルタリング・ソート規則の設定、外部ツールの登録、(リンクでないものをリンク化したりといった)スレ表示の調整などができます。</p>
      <p>詳細は<a href="appendix.html#tscore">ヘルプのおまけ</a>を参照してください。</p>
      <p>おちゅ〜しゃは自前のSchemeインタプリタを用いています。<a href="http://www.schemers.org/Documents/Standards/R5RS/HTML/">R<sup>5</sup>RS</a>準拠を目指して実装されていますが、まだかなーり中途半端なので難しいことはできません。詳しくはソースを参照するか2ちゃんねるのスレで質問してください。</p>


      <hr>
      <p class="right">$Date: 2008/12/21 00:02:57 $</p>
    </div>
  </body>
</html>