2014年9月11日木曜日

HexChat:ZNCへ接続する設定と、クメール文字チャットに適した設定

備忘録。
HexChat 2.9.4 x86版です。

日本語インタフェースへ切り替えも可能です。
が、僕は、社員機への導入に備えて勉強のため、英語インタフェースのまま作業しています。
ですので説明も申し訳ありませんが英語版インタフェースで。
画面キャプチャなるべく載せますので、ウィンドウ内の位置で照らし合わせることができるでしょう。

○ZNCへ接続する設定

ZNCを介してIRCdにつなぐ場合、サーバ設定は、次のようにします:




  • Servers:ZNCがあるサーバのアドレスと、ZNCがlistenしているportを、/で接続します。
  • User name:ZNCのUsername
  • Server password:ZNCのPassword
  • Nick name:ZNCが覚えているので入力要らないようなものですが、入力しておかないと、なぜか、入っているチャンネルのタブが生成されてくれません。
  • Use SSL for all the servers on the network:ZNCがSSL接続を受け付けているならチェック
  • Accept invalid SSL certificate:ZNCのSSL装備がナンチャッテな貴方に
  • Character set:UTF-8(Unicode)をおすすめします。21世紀にもなってSJIS使ってる悪い子いねが!


○stickychan

HexChatって、ウィンドウの右下に、すごく押しやすい所に、×印があります。
押すなよ! 絶対押すなよ!
と言わんばかりです。
僕、期待に応えてうっかり押してしまい、チャンネルから抜けてしまいました。
チャンネル作った人間が、独裁権力を握ったままチャンネルからお亡くなりになられてしまうと、とくにZNC使ってる場合、国民皆殺しにせねばならなくなり、面倒です。
ZNCのstickychanモジュールの利用をおすすめします。

○スクロールバック


PreferencesのLoggingで、Scrollback linesを500から100000に。

HexChatには、スクロールバック機能があります。
デフォルトでオンになっています。
HexChatから入ったひとには、べつに感動するようなことでもないとおもいます。
ところがなんとLimeChatには、この機能がないっぽいのです。

この機能がないと、たとえ自分が使うクライアントが1個であっても(パソコンから入ったりケータイとかから入ったりしない)、ZNCのAuto Clear Chan Bufferをオフにしないといけなくなります。
クライアントがローカルにログを取る機能を持っているのに、それを使わずに、接続するたびにサーバから大量のログを転送させるというのは、非常に馬鹿げています。
あまりにも、当然あってしかるべきと感じる機能なので、無いというのはちょっと信じがたかったです。
たぶん本当はLimeChatにもスクロールバック機能があるんじゃないかとおもいますが、僕は見つけられませんでした。
ネット上でも使ってるひと見つけられませんでした。

スクロールバックの行数は、デフォルトは500になっています。
100000より大きい値を入れると、勝手に100000になります。

○クメール文字チャットに適した設定



PreferencesのAppearanceで、Main fontをConsolas 10からKH Content 14に変更。



Advancedで、Alternative fontsを「MS PGothic,Arial Unicode MS,Lucida Sans Unicode,Unifont」に変更。

このように、メインのフォントをクメールフォントにしておき、代替フォントを和文フォントにします。すると、クメール文字が上下の高さを取る分、行送りが自動的に広くなります。
もし、逆に、メインのフォントを和文フォントとし、代替フォントをクメールフォントとすると、行送りが狭いままとなり、クメール文字の上下が切れてしまいます。

文字サイズを10 ptから14 ptに上げたのは、僕が老眼なので、こちょこちょしたクメール文字を10 ptで見るのがつらいからです。お好みで…。

○和文インライン入力



入力欄で右クリックしてInput MethodsからWindows IMEを選択すると、和文がインライン入力できるようになります。



和文とクメール文字の混ぜ打ちもフツーにできます。
文字の大きさも相対的に同じに見え、自然です。
別にHexChatから入ったひとにとっては「だから?」ってカンジだとおもいますが。
Skypeチャットから来た人間にとっては感動的です。

Input Methodsは、HexChatを起動するたびに、System (Simple)に戻ってしまいます。
これのままだと、和文はインライン入力になりません。

HexChat 2.9.4で和文インライン入力またはクメール文字入力を可能にする

あえて最新版でなく、しかもserver-time対応になったのは2.9.6なのに、なぜ2.9.4などをインストールしたのか、理由を明かすと叩かれるので特に秘す。
2.9.5 released – HexChat
http://hexchat.github.io/news/2.9.5.html
を見て察してください。

HexChat 2.9.4 x86版をインストールして使ってみたところ、和文入力がインラインにならないという現象に直面した。

  • MS-IMEでも
  • Google日本語入力でも

どちらでもダメ。

ぐぐったところ、
Microsoft IME keyboard input does not render in textbox · Issue #1124 · hexchat/hexchat · GitHub
https://github.com/hexchat/hexchat/issues/1124
にヒントを得た。
古いGTKによるテキストボックスは和文インライン入力に対応していないようだ。

たぶん最近のバージョンのHexChatには、GTKも新しいバージョンのが入っていて、したがってこういう問題ももう起こらなくなっているのだろうなぁ~。

適当メモ - maple4estry - >> Pidgin for Windows でいろいろなメッセンジャーを便利に使う
http://www.geocities.jp/maple4estry/gaim.html
を参考に、やってみたら、うまくいった。

しかし、これをやると、Khmer Unicode Keyboard (NIDA 1.0)によるクメール文字入力がまったくできなくなってしまうという問題に直面した。

和文インライン入力もでき、かつクメール文字も可能になる設定方法が、どうしても見つからなかった。

  • 和文インライン入力を可能に(クメール文字入力はできない)
  • クメール文字入力を可能に(打てないキー5種あり。和文入力はインラインにならない)

のどちらかになってしまう。

タイトルが「または」になってるのはそういうことです。

以下、方法を記しておく。
HexChatはデフォルトパスにインストールされているものとする。


  1. C:\Program Files\HexChat\lib\gtk-2.0\2.10.0\内にimmodulesフォルダを作成し、imime 0.1.2のim-ime.dllをその中へコピー。
  2. C:\Program Files\HexChat\etc\gtk-2.0\内にgtk.immodulesファイルを作成し、中身を次のとおりにする:


○和文インライン入力を可能にしたい場合(クメール文字入力はできない)


"C:/Program Files/HexChat/lib/gtk-2.0/2.10.0/immodules/im-ime.dll"
"win32ime" "Windows IME" "gtk20" "" "*"


○クメール文字入力を可能にしたい場合(打てないキー5種あり。和文入力はインラインにならない)

"C:/Program Files/HexChat/lib/gtk-2.0/2.10.0/immodules/im-ime.dll"
"win32ime" "Windows IME" "gtk20" "" "a"


和文インライン入力が可能になるほうのgtk.immodulesの中身は先人の丸パクり。

クメール文字入力が可能になるほうのgtk.immodulesの中身は、最後の*を*以外にしてみただけ。
どういう原理かはわからない。
そもそもこのファイルの記述規則を見つけることができなかった。
なので、まったくむやみやたらにいろいろ内容を変えてみた。
が、やってみた限り、どうやっても、和文インライン入力もでき、かつクメール文字も可能になるようにすることができなかった。

しかもクメール文字入力では、

  • 「Shift-A」(アム、オアム、エア)= a + Shift-M、
  • 「Shift-:」(オッ、ウッ) = o + Shift-H、
  • 「Shift-V」(エッ) = e + Shift-H、
  • 「,」(オム、ウム) = u + Shift-M、
  • 「Shift-,」(オッ、ウッ) = u + Shift-H

の5種のキーが正しく打てない。
キーによって、Shiftを押してないときの入力結果になってしまったり、無反応だったりする。
Issue 656 - ibus - Typing in Khmer unicode misses 5 letters - IBus - Intelligent Input Bus - Google Project Hosting
https://code.google.com/p/ibus/issues/detail?id=656
に書かれてるとおり。
ただし幸い、5種いずれも、それぞれ右辺に示した2ストロークの短縮入力である。
なので、右辺の2ストロークによる入力へフォールバックできる。
したがって、この不具合により一部のクメール文字が打てなくなってしまっているということはない。

これらの問題について答えがないかぐぐってみた。
が、GTKに対して、Pangoのクメール文字対応はまだですかと聞いてる方はいるが、IMのクメール文字対応はまだですかと聞いてる方は見当たらなかった。
余談だがPangoでググると同名のタイの美少女がひっかかりすぎて
PIC : คุณยังจำ 'แป้งโกะ' ได้ไหม =) - Dek-D.com > มีรูปเด็ด > รูปคนน่ารัก
http://www.dek-d.com/board/view/2216523/
まったくもって捗らない。
もゑ~

とりあえず自分の環境は、クメール文字入力が可能なほうの設定にしておきます。
和文がインライン入力じゃないのは、まあ慣れます。

  • とくにGoogle日本語入力の場合、未確定内容は画面左下端に表示されるので、入力欄からそう遠くないし。
  • MS-IMEは画面左上端なので、入力欄から遠いけど。


社員用のIRCクライアントとしてHexChat 2.9.4を採用する場合には、当然そちらも、クメール文字入力が可能なほうの設定にしておきます。
ほとんどのカンボジア人社員は日本語できませんので、和文打つことありませんので。

---
(2014.9.11 21:32追記)
上記のgtk.immodulesもimimeも入れない状態で、入力欄で右クリックしてInput MethodsからWindows IMEを選択したら、和文インライン入力もできて、かつクメール文字入力もできるという状態になりました。
この記事でさんざん書いた苦労と懊悩はいったい何だったのでしょうか。
Input MethodsがSystem (Simple)のままだと、クメール文字入力はできるけど、和文はインライン入力になりません。
ただ、Input Methodsのデフォルトの選択肢を設定しておく方法は見つからないです。
なので、HexChatを立ち上げるたびに、毎回、和文入力をインラインでやりたい気分になってしまったら、Windows IMEを選択する必要があるっぽいです。

エスキモーに氷を売る カンボジア人にコメを売る

「エスキモーに氷を売れ!」
というのは田山敏雄のオリジナルかと思っていた。

本にはちゃんと、エスキモーに氷を売る具体的な方法の一例も書いてある。
ここには書かないので上記の本を見てください。

が、ときたま英語圏でSell Ice to Eskimosというそのまんまの表現が出てくる。
意味も同じである。
どうやれば売れるかを考える。
上記の記事では、地球温暖化をガンガン進行させればよいと提唱している。
んなアホな、というのは簡単である。
んなアホな、というアイデアを気軽に出す雰囲気づくりが大切なのだとおもう。
でなければ
「エスキモーにアイスなんか売れるわけないだろ馬鹿」
で終わってしまう。

僕も何か解決を皆で考えるときには、極力、なるべくアホなアイデアを出すようにしている。
そうすると、他のひとも、割とアウトオブザボックスなアイデアが出しやすくなる。
もしかしたらそのうちのひとつがいい感じに当たるかもしれない。
たまに、自分がそういう考えで呼び水用に出したアイデアがそのまんまとおってしまうこともある。
焦る。
しかしとおってしまったからにはやらねばならない。
補習校の保護者会長だった2年間にもそういうことが何度かあった。
具体的にどの施策かは特に秘す。

そのものズバリのタイトルの英語圏の本もあるらしい。
が、レビューによれば、そちらにはエスキモーに氷を売る具体的な方法の例は書いてないらしい。

カンボジアならさしずめ
「カンボジア人にコメを売る」
といったところだろうか。

アイデアを実践した者のみが、勝利者となりすべてを奪う。




Gmailアドレス500万個とパスワード文字列の対が流出

という記事を読みました\(^o^)/

LimeChatで接続した際にZNCから来るbuffer playbackのtimestampが接続時刻になってしまう問題



これが解決されるには、IRCクライアントがserver-timeという機能に対応してないといけない。

LimeChatのMac版では、更新履歴によれば、対応済みのようだ。
http://limechat.net/mac/ja.html

しかし、LimeChatのWindows版では、対応していないようだ。
ググっても対応したという形跡がないし、設定あちこち見てもできそうな箇所がない。

Use Irc Server-Time capabilities with znc and hexchat/weechat
http://blog.alteroot.org/articles/2013-09-03/irc-server-time.html
によれば、hexchat (>2.9.5), weechat (>0.4.0)は対応済みのようだ。
WeeChatってのはWindowsでは要Cygwinだけど…。

また、
Using ZNC with Textual
http://www.codeux.com/textual/wiki/Connecting-to-ZNC-Bouncer.wiki
によれば、Textualも対応済みのようだ(Mac版しかないけど)。

ほかにCommuni Desktop
https://github.com/communi/communi-desktop
というのがあるが、まだぜんぜん開発中っぽいので当面却下。

IRCクライアントがLimeChatである必然性はない。
単に日本で人気があるからとりあえず入れてみただけ。
英語版もないようだ。
社員に使わせるのは、できれば日本語版でなく、英語版のあるクライアントのほうがいい。

ZNCの公式Wikiのクライアント別解説
http://wiki.znc.in/Category:Clients
にも、LimeChatは掲載されていない。
掲載されているのは、

  • Eggdrop
  • HexChat
  • Irssi
  • MIRC
  • Pidgin
  • Weechat

の6つのクライアントだ。

どれがいいんでしょうね…。