8月 042011
 

okular というのは KDE をインストールすると利用できる PDF を閲覧するためのソフトです。Acroread よりも軽いので僕は Acroread をインストールせずにこればっかり利用しているのですが、時々日本語が表示できない PDF ファイルが存在するのでちょっとコマリモノなのでありました。

最初はほっといてそー言う PDF ファイルはあきらめることにしていたのですが「まぁ。いっちょ調べてみるか。」と言う気になったのでありました。

あ。今回は多分、FreeBSD に特化したネタになると思います。 ubuntu には多分、まぁるで関係の無いお話だと思います。

で、調査を開始したのですが、まずは「敵」つまり PDF ファイルを知るところから始めます。 okular で日本語が表示できない PDF ファイルを Windows 版の Acroread10 で表示させ色々情報を取得するのですが、大体以下のようなことが解ってきました。

o. iText と言う PDF プリンタを利用した PDF ファイル。
o. どうやら PDF 自体にフォントが無いようだ。
o. Windows 版 Acroread では代替フォントで表示してくれるねぇ。
o. PDF ファイル自体のフォントは HeiseiKakuGo-W5 と言う名前ですねぇ。

iText というのは今回ちゃんと調べてないんですけども、Java ベースの Acrobat4,5 互換の PDF プリンターってイメージです。出力された PDF ファイル自体にはフォントは埋め込まずビューワのほうでフォントをマッチさせるみたいですね。

さてと。以上が日本語表示できない PDF ファイル自体の調査ですが、ここからは okular の調査の開始です。

そもそも、okular が代替フォントに日本語を含むフォントを指定できないのが問題でないの?と思うわけです。[設定]のところに「代替フォント」とか項目があれば簡単に話は済んでしまうんですけどもそんなのはありはせんのです・・。orz。

で、 okular の調査は更に続くのですが、PDF ファイルの表示には poppler というのが深く絡んできていてこいつは fontconfig とも密接に絡んでくる。ということが解りました。 poppler というのは xpdf からの派生と言うか発展形のモノらしいです。こいつは graphics/poppler や graphics/poppler-data とからみ合って日本語を表示してくれるらしいんですな。

けれど、その poppler が okular とどこで結びついているのか全く解らない。okular のコード見ると Qt と絡んでいるは伺えるんだけどもね。あー。Qt 的には graphics/poppler-qt4 というのもありますねぇ。

okular を起動して [ファイル]→[プロパティ]から表示されるダイアログの「フォント」タブに現在利用しているフォントが表示されます。

このキャプチャは日本語が表示できないときのフォント。

Okular_font1.png

HeiseiKakuGo-W5 に対応するフォントとしては Bitstream Vera が選択されたことが解ります。この Bitstream Vera は日本語を持ってないので日本語が表示できない。ある意味納得。けど、そしたらどうしてそのフォントが選択されるんだろう?と悩むわけです。

そーこーしている間に「これはどうやらまじめに ~/.fonts.conf を書かなければならない。」と思えるようになってくるわけです。

色々調べて書きましたよ。fontconfig の設定は /usr/local/etc/fonts/ になるんですけども、この中に conf.avail/50-user.conf と言うファイルがあるんですね。このファイルの中を見ると、参照先が書かれているのでそこにファイルを一個用意してあげます。

僕の場合、 mkdir ~/.fonts.conf.d/ したあとにこのディレクトリの中に以下のフアイルを置きました。ファイル名は 51-HeiseiKakuGo-W5.conf にしました。 50-user.conf の次の番号ということで 51 にしました。そのあとの HeiseiKakuGo-W5 の部分は好きな文字列を指定できます。数値と .conf は変更することができません。

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <dir>/usr/local/lib/X11/fonts/sitefont</dir>
    <alias>
        <family>HeiseiKakuGo</family>
        <prefer>
            <family>MS ゴシック</family>
        </prefer>
    </alias>
</fontconfig>

 
さてと。設定が終わったので再度 okular を起動します。どうだっ!! あやや・・。orz

実は family の部分ですが、 HeiseiKakuGo-W5 と書いてもダメでした。上のように HeiseiKakuGo と書いたら Bold フォントは MS ゴシックになったのですが Regular フォントは相変わらず日本語が表示されない。

上記のダイアログはこんな感じ・・。そんなバナナ・・。orz。

Okular_font2.png

上二個のフォントは MS ゴシックを利用できるようになりましたが、下の二個のフォントは今まで通り Bitstream Vera を参照しているようです。orz。ダメだこりゃ (c)いかりや長介。

もう一度仕切り直し。各種設定を眺めます。また、ウェブで探し回ります。で、思ったのが、ubuntu のほうは日本語環境ちゃんとできているのねぇ。ってこと。それなら ubuntu の設定をちょっとパクってしまえ。ってんで、 /usr/local/etc/fonts/conf.d/ 辺りを眺めます。

ubuntu 的に言うと「default のフォントの設定を削除するパッチ」ってのがあるので「あれ? FreeBSD 的だと default が Bitstream Vera の設定なので、それを削除すれば良いんじゃね?」と思いつくわけです。それが解ればあとは簡単。 /usr/local/etc/fonts/conf.d/ で grep “Bitstream Vera” * します。で、その結果、 60-latin.conf を改修すれば良いわけねー。というのが解りました。

以下の URL に /usr/local/etc/fonts/conf.avail/60-latin.conf に適用すべきパッチを置いておきました。

http://icmpv6.org/Prog/KDE/okular_ja-60-latin.conf.patch

まぁ、パッチなんてたいそうなものは必要無いとは思うのですが、簡単に説明すると、60-latin.conf では一番最初に利用されるフォントが Bitstream Vera になります。こいつは日本語を持たないフォントですね。それならば、それよりも上の行に ume フォントを追加してしまえーっ!! って感じです。

なので、上記パッチを適用した場合には japanese/font-ume をインストールする必要があります。自分の好みのフォントに設定したい場合には “Ume Gothic” の部分を好きな文字列に変更すればそれで OK です。

で、このパッチを適用したフォントのダイアログはと言うと、

Okular_font3.png

んー。ちゃんと ume フォントが利用されていますね。そして okular でも日本語がバッチリ表示できるようになりました。いやー。良かった良かった。

もしかしたら /usr/local/etc/fonts/conf.avail/60-latin.conf はそのままで、パッチ適用後の 60-latin.conf を ~/.fonts.conf.d/ の下に置いても同じ動作をするかもしれません。が、私は試していません。

それにしてもこれで okular が無事にちゃんと利用できるようになりました。良かった。

7月 202011
 

KDE4 のアプリケーションの中で Twitter を表示できるヤツなんかないかなぁ。と探し回っていたら Choqok というのが見つかりました。ports 的には www/choqok になります。Makefile を見てみると KDE micro-blogging client と書いてありますね。

で、実際に make して起動すると、ふむ。Twitter クライアントとして利用できるようです。なので KDE4 を利用している場合には、これを使うことにしましょうかねぇ。となるのであります。

あ。今回は Choqok の設定方法とか使い方については一切書かないです。直感的に利用できるので頑張って設定してください;-)。

で、しばらく使い続けていると、どうも日本語がしっくり来ない部分があるのであります。

Choqok_orig.png

こちらが default の日本語表示。LANG が ja だと ja.po を利用するので日本語表示してくれるようになります。

ただ、MacOSX や Windows、iPhone アプリなどで数々の Twitter クライアントを利用して、それと日本語の表示を比べてみてもしっくり来ない。なのでちょっと po ファイルをいじって見ました。ソースファイル的には choqok-1.0/po/ja/choqok.po ですかねぇ。

改修した後の表示はこんな感じ。あと、キャプチャでは見えない部分の直訳ぎみのヤツもそれらしく直しました。

Choqok_new.png

タブの部分は「タイムライン」とか書くと長くなってしまうので「Timeline」にしました。これとかは他のアプリ作っている人も苦労しているんだろうなぁ。というのが実際にやってみるとわかりますね。なので半角英数字で 「Timeline」て書いた方が短いタブで済む。みたいな。

それにしても「返信」ってのはやっぱり Twitter 的にはちょっと変で「Mentions」かなぁ。みたいな。もとの英文は以下のように “Reply” ってなっているんですが、最近の Twitter では “Mentions” だよなぁ。みたいな。

#: helperlibs/twitterapihelper/twitterapimicroblog.cpp:110
msgctxt "Timeline Name"
msgid "Reply"
msgstr "Mentions"

 
今回改修した po ファイルは以下の URL に置いたので、試してみたいと言う方いましたらちょっとお願いできませんでしょうか。

http://icmpv6.org/Prog/ja.po/choqok-20110613.po

感想やパッチなどを頂ければと思います;-)。

あるタイミングで本家のほうに送ろうかと思っております。 JKUG のほうでもその方向で話が進んでいる感じですねぇ。

4月 102011
 

こないだ ports-current に kde-4.6.1 が登場したばっかりなのに約一週間で 4.6.2 にバージョンアップされてしまったのでまたまた make し直し。けども今回は Qt のバージョンアップは無かったのでほぼ一晩で完了。って感じでしょうか;-)。

さてさて。ここ最近は KDE4 のこと、しかも kdepim4 のことを色々書いているのですが、今回ももう一回 kdepim4 関連のネタになります。すみません。

今回登場するのは KAddressBook と言うアプリケーションです。簡単に言うと「アドレス管理用アプリケーション」になります。

僕はデスクトップ環境としては MacOSX も利用していて、iPhone4 も持っているのでアドレス管理は MacOSX の アドレスブックアプリ (Address Book.app) で行っています。 iPhone4 から電話するときやメールを送信する時に利用しているので、”アドレスブック” で管理している情報はメールアドレスの他に電話番号なども含まれます。

登録している情報はメールアドレスだけの人とか電話番号のみの人があるわけですけども、一個のアプリで全てを管理できるのでそれはそれで嬉しいのであります。また、アドレスブックに登録しているユーザに写真などを設定していると登録してある人からメールが届くと Mail.app では写真が表示されたり、iPhone4 に電話がかかってくるとその写真が表示されたりしてくれて中々楽しいのであります;-)。

さて、この MacOSX のアドレスブックアプリ、中に入っているデータは vCard 形式で出力することが可能です。登録されている写真の情報なども vCard 形式の PHOTO;BASE64 タグで保持してくれるので写真ファイルをたくさん持つ必要も無いんですね。

さてさて。ここので MacOSX の アドレスブックアプリ について長々と書きましたが、こいつから出力した vCard 形式を KDE の kdepim に含まれている KAddressBook でインポートできるんですな。

kaddressbook_1.jpg

KAddressBook のキャプチャはこんな感じなんですが、[ファイル] から 「インポート」を選択して vCard 形式のファイルを指定するとおぉっ!! MacOSX 上で管理している情報そのままが KDE 上で再現されるのであります。上でも書いたように vCard 形式なので PHOTO;BASE64 タグがあるため写真もばっちり表示してくれるようになります。

その他に KAddressBook は LDAP とも同期してくれます。まぁ「LDAP と同期」と言ってはアレなんですが Microsoft の Active Directory と同期してくれる。と言えば良いかな。オフィスなどでユーザ情報の管理を Active Directory で行っている場合、 KAddressBook の LDAP の設定時に Active Directory の情報を指定してあげるだけでオッケー。みたいな感じです。後は「LDAP を検索」して、検索結果をインポートすればそれでグー。みたいな。

まぁ、それはある意味 Microsoft の Active Directory がちゃんと LDAP に準拠した作りになっているのがすばらしいのでありますが;-)。

vCard ファイルがインポートできて、LDAP とも連携できてインポートできる。すげーじゃないですか;-)。

もう一個だけ機能を書きましょうかね。今度登場するのは Thunderbird です。こいつも単体でアドレス帳を持っています。でもって Active Directory (LDAP) とも連携が取れます。が、vCard には対応していないんですね。 MacOSX のアドレスブックからのデータを Thunderbird にインポートできないんですよ・・。これは悲しい・・。

kaddressbook_2.jpg

これが Thunderbird のインポートの時のキャプチャ画面です。 vCard 形式には対応していないみたいですね。

そこで KAddressBook の登場です。KAddressBook は vCard 形式でインポートした情報を Thunderbird で利用できる形式である LDIF 形式にエクスポートできるのであります。おー。パチパチパチ。

と、言うことで、LDIF 形式でエクスポートしたファイルを今度は Thunderbird のアドレス帳に読み込んであげることで全てのアドレス帳のデータは同期できるようになるのであります。

ただ、一個だけ欠点があって、vCard 形式では写真まで情報を持っていってくれるのですが LDIF 形式 への変更時に写真データがバッサリと落とされてしまいます。それがちょっと悲しいところかな。などとちょっと思いますが。

以上、アドレスデータの変換機能として KAddressBook を利用するのであります。これはこれで非常に良い感じです。

ちょっと前までは携帯の情報は携帯上で、メールの情報はメーラで管理。って感じでしたが、iPhone が手元に来てから、また MacOSX を使うようになってからはすっかりとその二つのデータは統合される方向に進んで行ってしまいました。なので、アドレス帳の管理って実は簡単にやりたいなぁ。などと、最近は思うのであります。

そしてそんなときには KAddressBook が役に立つのであります;-)。

4月 012011
 

以前のエントリーで「kdepim4 を日本語化する。」と言うのを書きました。このとき書いた内容としては

・KDE-4.6.1 が出ました。
・しかし、kdepim は 4.4.10 です。
・なので、ja-kde-l10n-4.6.1 の ports/packages では kdepim4 は日本語が表示できません。
・それならは古い packages から「ポ・ファイル」 を持ってきてインストールしてしまいましょう。

って感じだったのであります。

現在 JKUG のサーバは計画停電と、言うか、電気をなるべく使わないようにしましょう。キャンペーン展開中で電源断しているので ML も動作していません。なのでメンバとは、少数の人々と Twitter で話しただけでまだ真剣には議論されていません。

と、言うことで、僕が先行して ja-kde-l10n-4.6.1 の ports を作ってみました。この ports は ja-kde-l10n-4.4.5 の kdepim の日本語テキストを抜き出して 4.6.1 にパッチとして組み込んだものになります。

現在の kidepim は 4.4.10 なのでちょっと古いとは思うのですが、 JKUG の ML が止まっているので、kdepim4 の最新の日本語テキストが手に入らないためです。

後、ja-kde-l10n-4.4.5 は kdepim の日本語「ポ・ファイル」が含まれている、KDE からリリースされた最後のものになるのでそこから引っこ抜いています。あ。kdepim の「ポ・ファイル」だけで、全部で 55 個あります。akonadi 関係のファイルもたくさんあります;-)。

以下の URL に ports を置きました。

http://icmpv6.org/Prog/FreeBSD_ports/ports-ja-kde4-l10n-20110331.tgz

これを /usr/ports/japanense/ 辺りで展開して make install してください。 kdepim4 を含めて KDE-4.6.1 が日本語で表示できるようになります。

今回のこの ports を作成するに辺り、kdepim4 の日本語化には二段回あると思ってます。

1. KDE 側でリリースしている kde-l10n-ja-4.6.1.tar.bz2 で kdepim4 を日本語化する。
2. FreeBSD の ports 側で kdepim4 を日本語化する。

1. に付いては上でも書きましたが ML が止まっている状態なので、現在議論することができていません。なので、2. として僕が先に ports としてリリースした状態になっています。

JKUG で話をして KDE 本家に取り込んでもらうか、Linux 方面の人とかどうしているの?とか話す必要があると当然思っています。 1. で無理そうだったら、今回僕が作成した ports のパッチを kde@freebsd.org に投げる予定でいます。

kdepim4 は楽しいのよー。日本語化されると嬉しいのよー。と、言うことで、ちょっと頑張ってみます。
今すぐに日本語化したい方は上記 URL から ports をダウンロードしてインストールしてください。

3月 312011
 

さてさて。前回のエントリで kdepim4 が日本語対応になりました。そーするともうっ!! すっかりと色々やってみたくなるのであります。

と、言うことで、今回登場するのは KOrganizer です。スケジュール管理のアプリですね。以前に 「Thunderbird+Lightning の日本語化。」というのを書いているのですが、今回は KDE アプリで DAViCal と連携してみたいと思います。

DAViCal についても以前「DAViCal サーバを FreeBSD で。」と「DAViCal サーバを FreeBSD で。そのに。」の二度にわたって書いているので是非参照して頂ければと思います。

なお、KOrganizer と言えば、更に以前に「KOrganizer と google カレンダーの sync。」というのも書いているのですが、そっちともビミョーにリンクしたりしますのでこうご期待;-)。

まず、事の発端は「KOrganizer は iCal サーバと同期できるんかい?」とか思って情報を収集するところからなのであります。
が、しかし、かなかな見つからない。でもって日本語化された KOrganizer で再度カレンダーと言うか akonadi が提供してくれるサービスを調べてみると・・。ふむ。それらしいのがあるじゃーん。となるわけです;-)。
ちなみに akonadi については「KOrganizer と google カレンダーの sync。」のところでチロッと書いているのでそっちを参照してください。

今回利用する API はこれ。「リモートファイルのカレンダー」と言うヤツですね。

korganaizer2_1.png

カレンダーを新規登録する時に指定します。すると次に以下の画面が表示されます。で、ここに DAViCal のカレンダーの URL を指定すれば OK です。多分 MacOSX Server の iCal サーバの URL も指定できると思います。

korganaizer2_2.png

“Download from:” は読み込み用、”Upload to:” は更新用と言う意味ですが、参照して更新するので同じ URL を指定しても全然問題ありません。後はデッドロックが発生しないようにするだけなので、その下のオプションを適意設定してあげれば大丈夫なのであります。

こっちは google カレンダーと連携するよりもずっと簡単に KOrganizer に表示してくれるのでありました。

って・・。ちょっと待てよっ!! 以前、google カレンダーと連携するために「KOrganizer と google カレンダーの sync。」ってネタを書いた時には ports から databases/akonadi-googledata というのをインストールして、それを利用して google カレンダーを読み込むようにしました。

しかし、今の goolge カレンダーって確か iCal でも提供していたよねぇ? っつーことは、ワザワザ akonadi-googledata をインストールせずとも「リモートファイルのカレンダー」を選択すれば登録できるのではないだろうか?などと思い、早速試してみました。

まずは google カレンダー側の情報を確認してみます。google にログインして「カレンダー設定」から以下の情報を取得します。

korganaizer2_3.png

今回利用した google カレンダー側の情報は “限定公開 URL:” の 「ICAL」ってヤツです。この緑のボタン(たぬきではない;-)をクリックして表示される URL を KOrganizer の 「リモートファイルのカレンダー」の設定のところに指定してあげるだけで・・。あぁらぁ・・。いとも簡単に KOrganizer に表示できてしまうのでありました;-)。はい。シューリョーみたいな。そんな感じでサクっと行くのであります。

と、言うことで KOrganizer は DAViCal サーバ(iCal サーバ)にも google カレンダーにも簡単に接続して、そして情報を持ってきてくれてしまうのでありました。すばらしー。と、言うか、akonadi。やるなおまえっ!! って感じなのであります;-)。

これは本当に kdepim4 が日本語表示してくれたからここまでやって、試してみよう。と言う気になるのであります。

ただ、JKUG の人とちろっと話した感じだと、kdepim4 で日本語表示できないのはどうやら FreebSD だけのようですね。この辺り、今後 JKUG 内でも色々話していってみたいと思います。

が、なんせ、日本語表示してくれると色々やってみたくなります。いやぁ。KDE4 はまだまだ楽しいことたくさんありますよー。皆さんも是非使ってみてくださいねー;-)。

3月 292011
 

kde-4.6.1 がリリースされましたなぁ。FreeBSD の ports-current を追いかけていると最新のモノが利用できるようになります。皆さん是非試してみてください。

kde-4.5.5 との違いは・・。まぁ、一言で言うとより安定版。と言う感じでしょうかf(^^;;。

後、気がついた点としては qt が 4.7.2 になりました。IRC クライアントの konversation が新しくなりました。Twitter クライアントの choqok がちょっとおしゃれになりました。日本語訳はちょっと怪しいですけどねぇ;-)。

さてさて。今回のネタは kdepim4 なのであります。 KDE4 における kdepim4 の立場は kde-4.5.0 になったら開発のペースがガタ落ちになったと聞いています。なので kde-4.5.1 がリリースされた段階で kdepim は 4.4.6 とか 4.4.7 とかそんな状態なのであります。

でもって kde-4.6.1 が FreeBSD でリリースされたときの kdepim のバージョンは 4.4.10 になっております。ふむー。もう KDE 本体とのバージョン追随はあきらめた雰囲気が感じられ、koffice みたいに独自バージョンを歩むのか?みたいにさえ思えてきます。

そして、困ったことに kdepim4 の日本語テキストがちぃともリリースされないと言う事態に陥っているのであります。 kaddressbook とか kmail とか kontact、korganizer などは日本語化されてないと全く使えない、使えたとしても利用したくない状態なのであります。困ったなぁ・・。

こちらが日本語を表示してくれない kontact のキャプチャです。

kontact_1.png

これじゃ、使う気にもならない・・。orz。

と、言うことで、今回は kdepim4 を日本語化させることにしましょう。

そもそも、最新の ports である japanese/kde4-l10n に kdepim4 周りの日本語テキスト(僕はこれを “ポ・ファイル”と言っていますが)が入ってないのがいけない。以前はちゃんと日本語を表示していたので、以前の ports/packages を持ってきてインストールすればええやん。となるのであります。

で、ウェブ上を探し回ったら以下の URL にありました。

http://ftp.riken.go.jp/pub/FreeBSD/ports/i386/packages-9-current/kde/ja-kde-l10n-4.4.5.tbz

このファイルをお取り寄せします。あ、早く取ってこないと無くなってしまうかもしれません。いつ無くなるかについては僕にはわかりません。
基本的には “ポ・ファイル” なのでアーキテクチャは特に問題ありません。僕は FreeBSD/amd64 8.2-STABLE を利用しているのですが、上記の packages を持ってきました。

以下はインストール方法です。

# cd /usr/local/src
# mkdir kde4
# cd kde4
# ftp -a http://ftp.riken.go.jp/pub/FreeBSD/ports/i386/packages-9-current/kde/ja-kde-l10n-4.4.5.tbz
# tar xvzfp ja-kde-l10n-4.4.5.tbz
# cd share/locale/ja/LC_MESSAGES
# cp kontact.mo /usr/local/kde4/share/locale/ja/LC_MESSAGES/kontact.mo
#

 
とりあえず kontact.mo フアイルだけをコピーしてみました。

その後、kontact を起動してみました。

kontact_2.png

おー。日本語が無事に表示できるようになりました。こんな感じで、自分が必要と思われるファイルをどんどんコピーしてあげれば良いだけですねぇー。

注意点としては既に /usr/local/kde4/share/locale/ja/LC_MESSAGES/ にあるものを上書きしてしまっては悲しいので cp -i とかでコピーしたほうが良いでしょうかね。kaddressbook.mo korganizer.mo kmail.mo (kmail* はいっぱいあるので確認しながらコピーしたほうが良いですね) などなど、自分が本当は利用する必要のある kdepim4 のアプリの日本語ファイルをコピーしてあげると無事に、順番に日本語を表示してくれるようになります。

ちなみに、”ポ・ファイル” が “モ・ファイル” になるので、 FreeBSD の pakcages を Linux に持って行ってインストールしても多分無事に表示できると思います。なので kubuntu や Vine を利用している人も多分そのままコピーしても大丈夫だと思います。

とわいえですよ。これってやっぱり JKUG でなんとかしないとダメだと思う。KDE の各リリースごとに kde-l10n-ja-4.6.1.tar.bz2 と言うのを作成しているんだけど、ここに kdepim の古いバージョンでも messages の中に kdepim のファイルを入れる必要が絶対にあると思う。

僕も JKUG の一員なので、この点についてはしっかりと対応して行きたいと思います。それまでの手段として、まぁ、今回の手がありますよ。と、言うことでf(^^;;。

8月 202010
 

ちょっと前のエントリーに「SCIM 動かなくなったよー。環境変数変えてみた。」みたいなこと書いたのですが、そもそも、IME 自体を変えてみることにしました。

僕は最近 MacOSX で ことえり を利用しています。正確に言うと ATOK for Mac 使っていてキーバインドを ことえり で利用しています。はたまた、Windows では「google 日本語入力」を利用してキーバインドはやはり ことえり を利用しています。

するっていと、FreeBSD でもそろそろ Canna のキーバインドを卒業して ことえり キーバインドに統一したいなぁ。と思うのが人情です;-)。

で、いろいろ調べてみたら uim には ローマ字->日本語 や ローマ字->カタカナ 変換のためのショートカットキーが用意されているんですね。で、試しにかな入力時のこのショートカットを ことえり 風に設定してみたら・・。あぁら・・。かな入力時には設定したショートカットキーが有効にならないのね。と、言うことでちょっとアングリ。orz。

それならば。と言うことで探していたら、IRC で教えてもらったのですが MacOSX や Windows 用には 「google 日本語入力」と呼ばれているものが Linux や FreeBSD では ibus-mozc(iBUS 経由で利用できる「もづく」) としてリリースされているのですねぇ。

ports 的には japanese/ibus-mozc になります。これを make install したあと pkg-message で表示される環境変数を設定して、再度 X にログインし直せばもうばっちり mozc が利用できるのであります。

iBUS と言うのは僕も良く知らないのですが、インプットメソッドとの通信をやりとりする規格みたいなものです。例えば Canna は cannaserver と port 5680 でやり取りしますが、これを iBUS 経由に置き換えると ibus-canna とか言う名前になるんだろうなぁ。と思います;-)。

で、本題に戻ってと。まずは iBUS で mozc を利用する設定をします。 KDE4 を利用している場合、kickoff メニューの「設定」に “iBus の設定” と言うメニューがあるのでそれを起動します。python で書かれた ibus-el-agent と言うのが多分プログラム名だと思います。

ibus-mozc_1.png

これで mozc を指定してあげます。これで iBUS は mozc と接続するようになります。ちなみに、KDE4 を利用しているとシステムトレイに iBUS のアイコンが表示されるようになると思います。

続いて mozc の設定をします。 MacOSX や Windows の「google 日本語入力」でよく見る設定画面ですね。コンソールから mozc_tool_config とタタきます。表示されたウィンドウで自分の好きな設定をします。

ibus-mozc_2.png

これで設定は完了。あとは [半角/全角] キーを押してベコベコ日本語を入力するだけなのであります;-)。僕は ことえり キーバインドのかな入力にしました。これで MacOSX、Windows、そして FreeBSD においてはすべて同じキーバインドになりました。やったーっ!!

なお、mozc の変換効率は少なくとも Canna よりは賢いと思います;-)。まだ使い込みがちょっと足りないですが・・。

あ。「google 日本語入力」にはいつまで経っても治らないバグが一個あります。文字を確定する前に漢字が表示されるプルダウンメニュー(これを「サジェスト」と言うのかな)が表示されますが、この「サジェスト」がマウスカーソルの上に表示されるとその段階で文字が勝手に確定されてしまいます。なので、文字を打つときにはマウスカーソルは画面上の全然関係ない場所に置いておくことをオススメしますX-(。

あと、かな入力時の “ー” 問題ががありますね。 Shift+| でないと “ー” が打てない。そんな場合は xmodmap で設定します。以下の設定で Shift キーなしで “ー” が打てるようになります。

keycode 133 = bar bar bar bar

 
ただしっ!! そーすると今度は “\” キーが打てなくなるのですが、これは “ろ” キーのところで打てます。 \rm * とか打つときに |rm * になってしまいますが、どっちが良いかは自分で判断してみてください。

さて。まだ一点残っております。 emacs23 ですね。こいつの IME はどうすんべ。とか思うのであります。僕自身は emacs23 用に Canna パッチを書いたので Canna を利用していたのですが、そもそも emacs23 だけが Canna キーバインドだと大変だぁ・・。と言うことになるのですが、ちなみに umeさん が ibus.el を ports にしてくださっているのでそれを利用することにします。ports 的には textproc/ibus-el になります。

あとは、~/.emacs の編集になりますが、ibus.elのぺえじ を参照すればその設定方法が分かります。でもって比較的容易に emacs23 を ibus 対応にすることができるのであります;-)。

つい最近 0.2.0 と言う最新版がリリースされました。これを利用すると良いでしょう;-)。

僕が利用している ~/.emacs は dot.emacs.fontSetUp として置いとくのでよかったら参考にしてみてください。 emacs23 がアンチエイリアスを利用しても遅くならないフォントの設定も一緒に描いておきました;-)。

これで本当にすべて、キーバンドの統一が出来ました。嬉しいですねぇ;-)。でもってemacs23 用の Canna パッチは書いたんだけども、emacs24 用のパッチは多分書かないと思います。けど、それはそれでしかたがないことなのかなー。と、自分では思っていますが・・。

8月 182010
 

MacOSX には Spotlight というのがありますが、これは利用している Mac のファイルの情報をデータベースに突っ込んで、それを後から検索できるようにしたものです。

これと似たようなことが、最近の KDE4 では利用することができます。strigi と言うものですね。ports 的には deskutils/strigi です。こいつは KDE4 をインストールすると比較的容易に利用可能で、KDE のスタートメニューの検索や、システム設定での検索などで利用されています。

strigi 自体は FreeBSD 中のファイルの情報を収集してデータベースにほーりこんで検索できるようにしてくれますが、その時に NEPOMUK を利用して、検索しやすい索引情報を付加します。ちなみに NEPOMUK は ports ではなく、KDE4 の一部として、ports では x11/kdebase4-runtime に含まれています。

しかし、KDE4 をインストールして早速 Spotlight みたいにデータベース作って検索可能にするぜぃ。と思ってみても FreeBSD の ports では KDE4 を全部まるまるインストールしても、データを格納するデータベースがインストールされないので default で strigi を利用することはできません。

KDE4 のシステムトレイの 丸 “i” マークの所に「virtuoso がインストールされてないので strigi は利用できないよん。」とメッセージが表示されます。つまり ports 的には databases/virtuoso をインストールして初めて利用することが可能になります。

それはつまり、KDE4 の ports と virtuoso は関連性が切られていると言うことですね。ワザと切っているのかたまたま忘れただけなのかはビミョーですね。関連性を付けてしまうと「デスクトップ検索なんざいらねーぜ。」って人の環境でも動作してしまう。と言うことななるので・・。

自分から進んで databases/virtuoso をインストールしたら一旦ログアウトして再度ログインしましょう。これで strigi を利用する準備が整いました;-)。

既にバックグラウンドで strigidaemon と nepomukserver が動き出したかもしれません。データ収集開始ですね。

どこのディレクトリ、どのファイルを収集するかは「システム設定」の [詳細] タブの「詳細なユーザ設定」の中にある「デスクトップ検索」で設定することが可能です。

strigi_1.png

[基本設定] タブでは両方にチェックを付けます。検索を止めたい時はこのタブのチェックを外します。 [ファイルのインデックス作成] タブではディレクトリとかファイルの設定を行います。左側のメニューでどのディレクトリを検索対象とするか、右側でどのファイルを検索対象とするかを指定します。

後はひたすら待つばかりです。システムトレイに時々情報が表示されるのでまぁ、気がついた時に確認してみましょう。

インデックスの作成はけっこうこまめに起動しています。救いなのが一個の CPU しか使わないのでマルチコアの PC の場合にはそんなに苦痛は感じないのではないかと思われます。あ。けど、ディスクアクセスが気になる場合もあるかなー。 1Core な CPU や回転数の遅い HDD を利用している場合には stringi 自体は利用しないほうが良いですね。databases/virtuoso をサクっと pkg_delete するのが良いかと思われます;-)。

さてと。strigi と nepomukserver で集めたデータは $HOME/.strigi/ に格納されます。 clucene/ と言うディレクトリの中に入ります。雰囲気的には qdbm みたいな感じでしょうかね。ただ、サイズが気になるところではありますが。

データ収集はこんな感じで、続いて実際に検索結果を表示したい所ですが KDE4 を利用していない人は strigiclient と言うコマンドがあるのでそれを利用してみてください。検索結果が表示できるかと思います(後、検索パスも指定できます)。

KDE4 を利用している人は K メニューから「ファイル/フォルダを検索」を指定して起動してください。 kfind と言うコマンドが起動されます。後は [名前/場所] や [内容] のタブでそれぞれ検索すれば結果が表示されるようになります。

strigi_2.png

これでデスクトップ検索ができるようになりました;-)。

もし、検索しても何も表示してくれない場合にはもしかしたら kfind を以前に起動したことがあるからなのかもしれません。$HOME/.kde4/share/config/kfindrc を削除して kfind を再実行してみてください。

パッと思いつくのは Thunderbird や mew などのメーラ(MUA) で、こいつらは独自の検索システムを持っていてそれぞれ個別にデータベースにその情報を突っ込んだりしていますが、それも必要ないかなー。デスクトップ検索でメールの情報もパスに入れてしまえばデータを保持する場所は一個で済むし。みたいな感じでしょぅか・・。

とは言いつつやはり、デスクトップ検索のデータ収集中(インデックス作成中)はそれなりに CPU とメモリを持っていかれるのでちょっと贅沢なマシン環境で実行するのが良いかなぁ。と、僕も思うのであります;-)。

まぁ、あるものは使ってみた。と言う感じでしょうか;-)。

ちょっと前に書いた「KOrganizer と google カレンダーの sync。」の記事もそうなのですが、今まで X と言うのはマルチウィンドウでターミナルと emacs を利用する。みたいな感じだったのですが、最近はコッテリとした “統合デスクトップ環境” の各機能を使いこなしても面白いなぁ。などと思うようになってきました。

KDE4 の アドレスブック(kaddressbook) と AdtiveDirectry を連携させてみたり、MacOSX 上のアドレスブックの情報を vCard で出力して KDE4 の アドレスブックに食わせたりとか。

なんか、ようやっと “統合デスクトップ環境” を使いこなせてきたぞぉ。みたいな感じがしてきました;-)。これからもちょくちょく書いていきたいです;-)。

7月 142010
 

FreeBSD の最新の ports-current を追いかけていたら KDE4 は kde4-4.4.5 に、 qt4 は qt-4.6.3 になったのだけど、あるときから scim-bridge で日本語の入力ができなくなってしまった。それ以前のバージョンではちゃんと動作していたのになぜなんだよぉ・・。orz

GTK アプリの Firefox とか Thunderbird には日本語が入力できるので KDE4 か QT4 がちょっとあやすぃ。などと思い textproc/scim-bridge や textproc/scim-bridge-qt4 などを再インストールするのだけど、ちぃとも復旧しない。おかしい・・。orz。入力できないのは KDE のアプリと、後 Java アプリで日本語入力ができない状態となっていました。

そして、色々環境変数を見直した所以下の設定で kde4-4.4.5+qt-4.6.3 でも scim-1.4.7 で入力できることが解りました。

o. 動作しない今まで設定していた内容

export QT_IM_MODULE=scim-bridge
export GTK_IM_MODULE=scim
export XMODIFIERS="@im=SCIM"
exec /usr/local/bin/scim -d &

 
この内容を ~/.xsession に書いていたわけですね。あ。僕は KDE4 の利用時に ~/.xsession を利用するってのは以前書いているのでそちらを参考にしてください。

さてと。この設定では scim で KDE4 アプリに文字入力できない。なので設定を見直してみました。

o. 見直した新しい設定

export QT_IM_MODULE=scim-bridge
export GTK_IM_MODULE=SCIM
export XMODIFIERS="@im=SCIM"
export XIM=SCIM
export XIM_PROGRAM="scim -d"

 
「scim」と小文字で設定したのを大文字で「SCIM」と記述し、新たに XIM な環境変数を追加してみました。

そして、今までは ~/.xsession で起動していたものを 「KDE システム設定」の [詳細] タブにある「自動起動」に登録して KDE4 側で自動起動するように設定してみました。そしたらなんとっ!! 無事に復活して KDE4 アプリでも scim で文字入力できるようになりました。良かった良かった。

ちなみに ports が scim のインストールに必要なものは textproc/scim textproc/scim-bridge textproc/scim-bridge-qt4 と、後、僕は Canna 使いなので japanese/scim-canna をインストールしています。

それにしても復活して良かった。このためにまるまる二日を費やしてしまったではないか・・。orz。

5月 122010
 

KDE4 を普段からデスクトップで利用していると、kdepim-4.3.5 なんてのがインストールされることがあります。”PIM” と言うのはそもそも Personal Information Manager/Management の略で利用者個人の情報を管理しています。 kdepim-4.3.5 をインストールすると KMail や KNotes (ポップアップメモ)、KJots (メモ帳) などかインストールされますが、それと一緒に KOrganizer と言うスケジュール管理ツールもインストールされます。

KOrganizer と言うのは MacOSX で言うところの iCal、Windows で言うところのなんだろ? みたいなものです。普段、スケジュールを利用している人は「google カレンダー」を利用している人が多いのではないでしょうか。

僕は MacOSX 使いでもあるのでスケジュールは iCal で管理して iPhone3G と sync しているので特に困ったりはしないのですが、 KDE4 を利用していて google カレンダーを利用している人は「KOrganizer が google カレンダーと同期できたらいいなぁ。」と思ったことのある方、いるのではないでしょうか。

今回は KOrganizer と google カレンダーを同期させてみたいと思います。 gppgle カレンダー側で書いたものを KOrganizer へ、 KOrganizer 側で書いた情報を google カレンダーに反映できるようになります。

さて、それを実現する前に kdepim4 についてちょっと書いておきましょう。kdepim4 をインストールすると、こいつはなんとデータを MySQL で管理するようになります。個人情報を管理するためだけに mysqld が、ログイン直後から起動していると言う、なんかスゲー信じられない現象が、今の KDE4 では起きています。邪道だ・・。orz。

ドキュメントを読んでみると「sqlite3 ではマルチタスクマルチスレッドの動作時にデータの保証ができないので MySQL 使うよ。」みたいなことが書いて有りました。ふむむむ。

さて、話を本題に戻しますが kdepim4 が利用しているデータは MySQL の中に入っていることがこれで解ったかと思うのですが、 google カレンダーの情報も google から取ってきて MySQL の中に突っ込んだら KOrganizer から見えるんでないかい?となります。

kdepim4 で MySQL との窓口(API って言って良いのかなぁ?)となっているのが akonadi というものです。こいつが一手に引き受けていてくれるんですね。でもってこいつについて、もちっと踏み込んで調べてみると FreeBSD の ports として databases/akonadi-googledata と言うのがある。ふむ。なんか名前からして怪しいじゃん;-)。とりあえずこいつを packages/ports からインストールしてしまいましょう;-)。

インストールが完了した時点で準備完了です。それでは設定に移ってみましょうか;-)。まず、akonadi の設定をします。ターミナルから akonadiconsole とコマンドを叩いてみましょう。

akonadi_1.png

そーするとこんな感じのウインドが表示されたと思います。そしたら [+ADD] ボタンを押すともう一個画面が現れます。この画面から Akonadi Google Calendar Resource と Akonadi Google Contacts Resource の二つを追加します。追加すると一覧に表示されるようになるのでそこでクリックすると google カレンダーの ID とパスワードを入力するよに急かされるので入力します。

後は Akonadi を再起動して Akonadi 自体への設定は完了です。

動作は(ソースコードを追ってないので)良く分からないのですが、MySQL と情報をやり取りする Akonadi が 今回インストールした二つのリソースで横から google カレンダーをつついてデータを取りに行ったり、データを更新したりするんだ。と言う感じでしょうか。 KOrganizer 的には「おめー、バックグラウンドでやっているんだからエレーよ。」となるんでしょうなぁ;-)。

続いて KOrganizer 側での設定です。こいつは簡単です;-)。KOrganizer を起動すると左下に「カレンダー」と言うメニューがあるかと思います。これの [+] ボタンを押します。

korganizer_1.png

するっていとこんなのが現れるとかと思います。

korganizer_2.png

KOrganizer ってのは色々な所からカレンダーデータを持ってくるモジュールが用意されているのねぇ。などと関心させられますが、使い方はどれもイマイチ解らなかったりしますf(^^;;。その中で「Akonadi (Akonadi のカレンダーフォルダに保存されているカレンダーへのアクセスを提供します)」を選択して OK を押します。そうすると「カレンダー」のメニューに google カレンダーへのアクセスが登録されます。

表示されたら真ん中のボタン「カレンダーの設定を編集」ボタンですね。を押して設定画面を表示します。白枠の中に akonadi_gcal_resource_0 などとあったらそれを選択して [Manage Calendar Sources] ボタンを押します。そこでメニューが出てくるので [追加] ボタンで 先ほど akonadiconsole コマンドで登録した二つのリソースを追加し、編集して google カレンダーの ID とパスワードを設定します。

korganizer_3.png

一応これで作業は完了です。一旦 KOrganizer を再起動してみましょう。再起動後に google カレンダーの情報が表示されるようになりましたか? もしされたら新規にイベントを書き込んでみましょう。約 10 分位後に google カレンダー側に反映されたか確認してみましょう。

もし、ダメな時ですが、先ほどの [Manage Calendar Sources] ボタンを押した時に表示されるウィンドで 緑の丸いののが表示されその横に “Online” と表示されているか何も表示されていない場合には OK です。 “Offline” と表示されている場合には [編集] ボタンを押して再度 ID とパスワードを入力してあげるとオンラインになったりする場合があります。

この辺り、何回も追加・削除・編集をしていたら僕の akonadi_gcal_resource_? は 7 まで行ってしまいましたf(^^;;。

とまぁ、こんな感じで KOrganizer は google カレンダーと同期が取れるようになりました。しかし、本当に使えるかはまだまだ良く分からないです。しばらく使い込んでみたいとですかねぇ。

ってか。皆さんも KDE4 使ってみてください。色々楽しいですよ;-)。