kawa-tの日記: ibus-anthyで月配列 8
DebianでもsqueezeからはインプットメソッドがiBusになります。SCIMと比べるとインターフェイスはシンプルになりましたが、カスタマイズがしにくくなりました。例えば、ローマ字入力の変換テーブルを変更する場合は、/usr/share/ibus-anthy/engine/にあるtables.pyというpythonのスクリプトを書き換えることになります。
pythonを知らない人でも、インデントを正確に合わせて、定数文字列は「u"hoge"」であることが分かれば、書き換え自体は難しい話ではありません。
私の場合は、ローマ字入力ではなく、月配列なので、同じファイル内のかな入力に該当する部分を書き換えることになりました。シフト側の文字は、濁点のところに追加していきます。ところが、これだけではシフト側の文字が打てません。中指シフトが正しく動作するようにするためには、kana.pyの_UNFINISHED_HIRAGANAに「dk」を追加します。ここまでやれば、月配列での入力が可能になります。
ただ、もう1つ問題があり、iBus-anthyのかな入力では、濁点や半濁点を1文字として扱うようになっており、中指シフト側の文字を1つ消すのにバックスペースを2回、濁音や半濁音の場合はさらにもう1回押す必要が出てきて、不便です。そのあたりは、romaji.pyをながめつつ、kana.pyの最後の
enchars = list(self._enchars)
del enchars[index]
self._enchars = u"".join(enchars)
self._jachars = kana_typing_rule.get(self._enchars, u"")
を
if self.is_finished():
self._enchars = u""
self._jachars = u""
else:
enchars = list(self._enchars)
del enchars[index]
self._enchars = u"".join(enchars)
self._jachars = kana_typing_rule.get(self._enchars, u"")
とすれば、濁音や半濁音は1回で消えますし、シフト側の文字も、濁点や半濁点が追加可能な文字以外は1回で消せます。
シフト側の濁点や半濁点が追加可能な文字については、そのうち。
うまく行かない (スコア:1)
どうも、私は最近ibusを使い始めた月配列使いです。(以前はscim使ってました)
kawa-t氏の指示に従い、tables.pyとkana.pyを編集してみましたが、編集は効果されていなくて、まだJISカナ配列のままです。
python使いの友達に訊いたら、効果されないのは.pyのソースコードだけを編集しましたからだそうです。.pycと.pyoのファイルを消したら、プログラム発動時に再生して、編集が効果されるであろうと。
妙なことに、tables.pycとtables.pyoを消してみましたが、再生されない上にまだ何故かJISカナ配列になってます。
Archlinux使っておりますので、scriptがうまく発動しないのはシステムのpythonが3.1.3-2版になってることが原因かもしれません。(python3でscriptを発動するとsyntax errorが出ます。)
どうやって月配列できる様になれますか?
お願いします。
Re:うまく行かない (スコア:1)
いろいろやってみました。
ソースコードでのtables.pyのほうを編集して、recompileしてみましたが、プログラムを発動できませんでした。(.py、.pyc、.pyoのファイルはちゃんとできてますのに。)
(そのできた.py、.pyc、.pyoを標準buildに書き換えても効果がでません。)
ためしに、tables.pyに月配列全体ではなく、カナを二つほど編集してみただけでしたら、recompile後にはプログラムを発動できましたが、編集は効果されなくて、何故かデフォルトのカナが出てしまいました。
Re:うまく行かない (スコア:1)
書き忘れていましたが、KDEの場合だとシステムトレーにあるIBusのアイコンを右クリックして、restartを選択する必要があります。おそらく、他のウィンドウマネージャやデスクトップ環境でも同じだとは思います。
Re:うまく行かない (スコア:1)
いや、さすがにそれはないでしょうね。上のコメントにはプログラムの再起動とか再コンパイルしてたって言ってたから…
一応やってみたが、当然結果が出ない。
問題の原因の可能性は多分:
pythonのバージョンの問題か
編集仕方が間違ってる
旧pythonで再コンパイルしてたら、元の.py使った場合はちゃんと出来上がるけど、編集してあった.py使うと壊れるので、後者である可能性はある。
メール・アドレスを公開しましたので、それにkawa-t氏が編集した.py等を送ってくれないでしょうか?
ありがとうございます。
Re:うまく行かない (スコア:1)
個人同士でのやりとりをすると、何かの間違いで第三者に漏れて、コードが一人歩きするのも嫌なので、基本は公開サーバ上でのやり取りでお願いします。
メールアドレスは公開したくないですが、メールアドレスを公開しないと、ライセンスも書けないので、とりあえず、ライセンスを明記する必要がない範囲と言うことで、tables.pyの差分です。Downloads/tables.pyはオリジナルのソースからコピーしたものです。書き換えは自己責任で。
なお、python3は入れてません。python2.6.6が入っています。
Re:うまく行かない (スコア:1)
すみませんでした。登録番号の通りの初心者なのでこう言うのはよくわかりません。
tablesありがとうございます。
Re:うまく行かない (スコア:1)
基本的には、tables.pyの変更箇所が先に書いた通りであることを示したかっただけですので、気にしないでください。
Debianの場合だと、Ubuntuの情報に埋もれていても、Debian系なので、Ubuntuの情報がそのまま使えたりしますが、Arch Linuxだと辛いですよね。
Arch Linuxの場合だと、英語で、しかも、中国語入力の関連も含めて探さないと、辛いかもしれません。私が調べた所ですと、Arch Linuxでは、python3にアップグレードした後は、明示的にpython2を指定することを必要とする場合がある様です。
参考:https://bugs.archlinux.org/task/21591 [archlinux.org]
Re:うまく行かない (スコア:1)