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 使ってみてください。色々楽しいですよ;-)。

3月 192010
 

前回の「FontBook ライクなフォント表示ツール。」の続きです。

「GUI が欲しいなぁ。」などと README.txt の中に書いているのですが、考えてみたら pango-view.sh ファイルを走らせるシェルスクリプトにフォント名を付けて、それをファイルマネージャからダブルクリックして実行すれば良いだけじゃん。などと、ヒジョーに安直な考えが頭に浮かびました。で、それを実戦したのがこんな感じ;-)。

from_dolhin.png

僕は KDE 使いなので Dolphin を利用しているワケですが、とあるディレクトリに MS_ゴシック.sh と言うファイルを作ってそれをクリックすると pango-view.sh が動作するようにするだけ;-)。こうすることで自分の環境にインストールされているフォント名とその書体が一目瞭然となる;-)。

え? そんなん必要無いって?(^^;;。 デスクトップとして利用していてフォントをたくさん突っ込んでいると書体を確認したい時ってあるのよー。

で、fc-list からフォント名が付いたシェルスクリプトを吐き出すのは perl で書いてしまいました(^^;;。大体こんな感じ。これを cron とかで定期的に実行すればたえず最新のフォントを閲覧できるってわけですね。ってそんなに頻繁にフォントをインストールしないか;-P。

#!/usr/bin/perl
use strict;
my $fc_list_cmd = "/usr/local/bin/fc-list"; my $sort_cmd = "/usr/bin/sort"; my $sh_cmd = "/PATHTO/pango-view.sh"; my $fontsize = 120;
my $command = $fc_list_cmd . "|" . $sort_cmd; open(CMD,"$command|"); while(<CMD>) { s/\\//g; my (@t1) = split(",",$_); my ($fontname,@t2) = split(":",$t1[0]); my $filename = $fontname; $filename =~ s/ /_/g; # print $fontname . "\n";
my $outfile = "./Fonts/" . $filename . ".sh"; open(OUT,">$outfile"); print OUT "#!/bin/sh\n"; print OUT "$sh_cmd \"$fontname\" $fontsize\n"; close(OUT); chmod(0755,$outfile); } close(CMD);
exit 1;

 
けど、僕の中ではかぁなり、フォントの扱いが楽になったんですけど;-)。

あ。pango-view.sh の中身は相対パスから絶対パスに書き換えています。さむないと Dolphin が認識してくれなかった。

1月 062010
 

この間、ちょっと前の「Thunderbird-3.0 を FreeBSD/amd64 で。」のエントリーのところで FreeBSD/amd64 上の Thunderbird も Firefox もすぐに core dump して使い物にならない。でもって -g したら libpango がどうもおかしい。と言うのを書きました。

このエントリーに添付してある URL にその結末が載っていましたね。要は pango にとあるフォントを食わせると core dump するものがあるので、そのフォントを fontpath から削除すると良いよ。とのことらしいです。

リンク先のスレッドの内容では xlsfonts コマンドで core dump するフォントを特定すると良いよ。と書かれているのですが、日本語フォントの場合、あんまり役に立たないですね。でもって GNOME や KDE を使っている人は特にフォント名が日本語で表示されるのですから。なので、日本語環境の場合は fc-list(1) を使うことにします。

fc-list コマンドで表示されたフォント名を pango-view と言うコマンドに食わせてあげます。その時に pango-view が core dump するとそのフォントは pango で扱えないフォントになるので /usr/local/lib/X11/fonts/ から削除する必要があります。

僕の環境では fc-list | sort -u | wc -l したら 434 個のフォントが利用可能な状態になっていました。うひひ。/usr/local/lib/X11/fonts/ で du -sk したら 1274754 と表示されたのでフォントだけで 1.2GByte のようです;-)。

さてと。fc-list の結果を pango-view に食わせるコマンドは以下でどうでしょう。

$ fc-list | sort -u | awk -F, '{print "echo \"" $1 "\"; ¥
pango-view --font=\"" $1 "\" -t 'TEST,test,テスト' -q"}' > fontcheck.sh
$ /bin/sh ./fontcheck.sh

 
一行目は長いので改行していますが、一行で実行して fontcheck.sh と言うファイルを作成してください。その後、fontcheck.sh を実行すれば pango-view が動作します。 core dump するファイルがあった場合には以下のように出力されます。

ヒラギノ丸ゴ Pro
Segmentation fault (core dumped)
ヒラギノ丸ゴ ProN
Segmentation fault (core dumped)
ヒラギノ明朝 Pro
Segmentation fault (core dumped)

 
表示されたフォント名を持つファイルを /usr/local/lib/X11/fonts/ の中から削除して fc-cache -fv を実行すると core dump するフォントが無くなると思います。

ちなみに僕の環境では MacoSX から持ってきたヒラギノの丸ゴ・角ゴ・明朝の各フォントと平成の明朝・角ゴシックの計 16 個のフォントで core dump が発生したので、これらのフォントを削除しました。

削除した後に Thunderbird3 や Firefox35 を起動すると、おおぉぉっ!! 無事に起動できたのでありました。パチパチパチ。

と、言うことで Thunderbird3 や Firefox35 が libpango で core dump するなんてのはその人の環境によって全然変わる。と言うことですね。僕みたいに(と言い切って良いのか?)たくさんのフォントをインストールしている人はその確率が高くなるわけですが、google で検索しても日本国内でこの現象を書いているのは僕だけみたいなので、もしかして、僕だけが陥った現象なのから?

この問題はオイオイ pango 側で吸収されていくのかなぁ?今回は pango のバージョンは 1.26.2 で特にダウングレードもしていないです。

それにしても復活して良かったです;-)。

そー言えば、MacOSX にフォントをインストールするときに「このフォントは危険です」みたいにアラートが上がってインストールしないこともあるのですが、FreeBSD の場合 fc-cache を実行した時点では何もアラートは上がらないのでインストール前(それはつまり fc-cache コマンドを叩く前と言うことかな)には pango-view を実行するのが良いのかな?

8月 112009
 

FreeBSD の ports-current を csup したら KDE4 が 4.3.0 になりましたなぁ。後、QT4 が 4.5.2 に。

実際に使用してみた感じを書いてみたいと思います。

まず、ports からのインストールですが、portupgrade したときに phonon 回りでバタバタするので /usr/ports/UPDATING を参考にして問題点をクリアにする所からはじめましょう。

そして、実際に qt4 と kde4 の make とインストールが始まります。まず、qmake ですが、これは qt4 と kde4 を make するときに利用されます。でもってこれは SMP に対応しているので qt4 や kde4 を make する時に c++ が CPU の数だけ起動します。これはすごい。KDE4 フルパッケージの make 時間は make buildworld より遙かに長かったのですが、随分と時間短縮できます。

例えば AthlonX2 では c++ が二つ、Atom330 では c++ が四つ起動して make を並列に行います。すばらしいですね。

無事にインストールが終わって、実際の使用感なのですが・・。

1. 等幅フォントが・・。
等幅フォントが結構ヒサンです。半角バイトの文字は全角バイトのスペースに表示されるので、”t a k a c h a n ” と言う感じで表示されてしまいます。
konsole で任意のフォントを利用したい場合には $HOME/.kde4/share/apps/konsole/ の下にできるプロファイルに以下のように記述してみましょう。

[Appearance]
ColorScheme=BlackOnLightYellow
Font=MS ゴシック,10,-1,5,50,0,0,0,0,0
以下略

 
フォント名を直接書いてしまう。と言うことですね。これで好きなフォントが利用できるようになります。

2. konsole でもう一点。
例えば K メニューやパネル上のショートカットから konsole を起動した場合、もとのプロセスの子プロセス(と、言うかスレッド)として起動します。これは後で書く「入力のコピー」などで結構ウザかったり、親プロセスが落ちると全ての子プロセス(と、言うかスレッド)が凍り付くと言う結構ヒサンな状態になります。僕はこれを避けるために以下のシェルスクリプトを用意しました。

#!/bin/sh
cp $HOME/.konsolerc $HOME/.kde4/share/config/konsolerc
/usr/local/kde4/bin/konsole

 
KDE4 の konsole は起動すると前回のサイズで起動してまう。それがイヤなので、毎回 80×24 のサイズで起動するように $HOME/.konsolerc を作成します。これは $HOME/.kde4/share/config/konsolerc を $HOME に .konsolerc としてコピーしただけです。その後で konsole をフルパスで実行すると新規のプロセスとして起動してくれるようになります。

3. konsole で二点目。
konsole を起動してタブを利用するとそのタブは親 konsole の子プロセス(何回も書きますがスレッドですね)として動作します。例えば一台のサーバに対して三個の端末をログインしたいとき、おのおのの端末で入力せずとも一個の端末で入力した内容、例えばユーザ名・パスワードを他の端末で入力したように見せかけることが可能です。[編集]->[入力をコピー]でキーボード入力の情報を他の konsole に送ることができます。ただ、konsole のタブ名は結構ヘボなので、どの konsole がどれなのかちっとも解らないんですね。

そんな時は上記のスクリプトを実行して、あるサーバにログインする端末は一個のプロセスとして起動し、タブを複数生成した後に「入力をコピー」の編集画面で [全てを選択]とか[すべて選択解除]ボタンを押せば OK です。

後、kde-4.2.4 の頃の konsole では C-s がフロー制御に取られてしまう。と言う事態が発生していました。[設定]->[現在のプロファイルを編集]で表示される画面の「詳細」タブの「Ctrl+S と Qtrl+Q によるフロー制御を有効にする」のチェックが外せなかったんですね。

しかし、kde-4.3.0 ではこのチェックが外せるようになりました。嬉しいですねぇ。ただ、僕の場合、以下のようにしないと外すことができませんでした。

% cd $HOME/.kde4/share/apps
% mv konsole konsole_

 
つまり、以前のバージョンで利用していた konsole の設定を一旦飛ばして、新たに設定しなおせばチェックを外すことができるようになるんですね。

4. マウスによるカットアンドペースト
これがまたヒサンなんです・・。ふつう、X 上では他のウィンドからクリックして保存した情報は他のウィンドにペーストできるはずなんですが、こいつがまともに動かない・・。非常に頭に来ると言うか、愕然としましたね。「全然使えねー・・。orz」って感じで。

で、色々やってみた所、パネルのシステムトレイにクリップボードツール(/usr/local/kde4/bin/klipper) が動作していて、こいつが悪さをしているようです。このプロセスを kill するとともにログイン時に起動しないようにすると ウィンド間のマウスによるカットアンドペーストが可能になります。ふぅ。良かったよぉ。

5. konqueror には konq-plugins。
konqueror を使う人はぜひとも /usr/ports/misc/konq-plugins をインストールすることをおすすめします。検索バーとか増えるし、「ウェブペー時を翻訳」なんてボタンも表示することができるようになります。他にもツールバーが色々表示できるようになります。

6. 安定したかもしんない。
以前のバージョンよりは安定して来ている感は強いです。パネルの設定で plasma が落ちなくなったし、(使いたいもの無いけど)ウィジェットの登録時に落ちるようなことは無くなったし。

一番使うのは結局のところ konsole が多いのでネタ的には konsole が多くなってしまいますかねぇ。まぁ、裏を返せば、他のアプリケーションなどは既に完成の域に達していたと言うことでしょうか。

実は僕は kde-4.2.4 を利用していた頃は KDE3 の konsole と skim をインストールしたままとしていました。 KDE4 の konsole が不安定な場合には KDE3 の konsole を利用する。と言う感じです。

また、KDE4 で scim-bridge-qt4 を利用していると、konsole がキー入力を受け付けない状態になる場合があり、それを回避するために skim を利用していました。ちなみに scim-bridge-qt4 でキー入力を受けつなくなるのは konsole の [設定]->[プロファイルを変更]した場合です。僕の場合 EUC-JP と UTF-8 のプロファイルを作っていました。ショートカットでプロファイルをタブに起動した時は問題無かったですが。これは KDE な ML で聞いた所、scim-1.4.7 に問題があるそうです。文字入力できなくなった場合は scim の全てを kill すると文字入力が復活します。

とまぁ、今回のバージョンアップですっかりと KDE3 関係を全て消して、KDE4 の環境に移行できたと言う感じでしょうか。

他にも何か気がついたことがあったら書いていきたいと思います。