2月 242014
 

本題に入る前、一点。
FreeBSD の ports の KDE4 が kde-4.12.2 になりましたなぁ。今までは /usr/local/kde4/ にインストールされていたのですが、このバージョンからは /usr/local/ にインストールされるようになりました。僕の環境では 130 個弱の ports の再インストールが発生しまた。けど、これでようやっと、独自ディレクトリから開放されるぞぉー。って感じです。

と、いうことで本題。

KDE4 をインストールすると default のブラウザに konqueror がインストールされます。それとは別に他のブラウザをインストール、例えば rekonq をインストールするとします。

konqueror も rekonq もユーザエージェントを偽装できる機能を持っています。例えば FreeBSD のこれらのブラウザでアクセスすると「あんたのブラウザでは全部の機能が動作しない。」とか「最新のブラウザではないので利用できない。」などと蹴られる場合があり、以降の表示を止めてしまうウェブサイトがあったりします。

まぁ、仮に表示されたとしても確かに正しく動作しない場合なんかもあったりするんですけどねf(^^;;。

https://profile.microsoft.com なんかは UserAgent を IE11 に偽装したとしても正しく表示できなかったりしますが、それは konqueror や rekonq などのブラウザが対応していないので正常動作しない。と、いうことですね。

 
さてさて。それにしもブラウザでユーザエージェントが選べるのに表示される情報がどれもこれも古いバージョンで困ってしまいます。

konqueror_ua_1

これを最新のバージョンに変更できないのかなぁ? とか思いソースコードを眺めるのですが、ふむ。ブラウザは KDE コンポーネントを見ているようで、ブラウザのソースコードには無いようです。

KDE 的には konqueror も rekonq はコテコテの KDE・Qt アプリなので、共通な機能については共通コンポーネントを使うようになっており、一個のパーツを色々なアプリで利用するってが仕様のようです。例えば Proxy とか キャッシュなども KDE4 の複数のアプリで共有するコンポーネントです。

ブラウザの UserAgent 偽装機能も一緒で konqueror も rekonq もユーザエージェントの設定はコンポーネントが一緒です。
では、その場合ソースコードがどこにあるのか? ですが、見つけました。 FreeBSD の ports 的には以下になります。

x11/kde4-baseapps/work/kde-baseapps-4.10.5/konqueror/settings/kio/uasproviders/

ここに *.desktop というファイルがたくさんあり、ブラウザのバージョンごとの情報を持っているフアイルが複数あります。
これらはインストールすると以下のディレクトリにインストールされることが解りました。

/usr/local/share/kde4/services/useragentstrings/

ここに最新のブラウザに対応した .desktop ファイルを置いてあげると次回起動時にはそのファイルを読み込んで最新のバージョンのユーザエージェントが利用できるようになります。

せっかくですので firefox-24.0 と MSIE-11.0 の .desktop ファイルを作成したので、利用してみたいと思う方は以下の URL から持って行ってください。

http://icmpv6.org/Prog/KDE/firefox240oncurrent.desktop
http://icmpv6.org/Prog/KDE/ie110onwinnt61.desktop

これで konqueror や rekonq では最新の他のブラウザとして動作することができるようになりました。パチパチパチ。ただ、ユーザエージェントの情報が変わっただけで、上にも書いている通り、正しく表示・機能しないウェブサイトがたくさんあることに違いが無いのでご注意ください;-)。

 
さてさて。ここからは付録に近いのですが、 Qt 系ブラウザとして arora というブラウザがあります。 ports 的には www/arora になるんですけども。こいつのユーザエージェントが更新されてないのでソースコードも眺めてみました。すると arora の場合は独自にソースコード中に書いているようですね。以下の xml なファイルで定義しているようです。

arora-0.11.0/src/useragent/useragents.xml

もし、 arora を利用している人でユーザエージェントを最新のブラウザに偽装したい場合には上記のファイルを編集してコンパイルし直せば良いと思われます。

arora は Qt を利用しているけど、 KDE にベッタリ。ってことは無い独自路線のウェブブラウザ。ってことなんですねぇ。

今回はちろっと KDE4 の構成的な説明と、ブラウザのユーザエージェント偽装のためのネタでした。

2月 062014
 

僕はデスクトップに KDE4 を利用しているのですが、 JKUG の日本語化チームとは別に自分で利用する KDE アプリで、日本語化されていないものをコツコツと個別に翻訳しています。

例えば rekonq という konqueror を再定義し直した KDE・Qt ライクなブラウザがあるのですが、こいつはソースに日本語 po ファイルが付いてこないのでメニューなどが英語で表示されます。

まぁ、 konqueror を再定義しただけのことはあって konqueror よりは rekonq のほうが使いやすいかなぁ。とは思う点が多々あるので僕は利用しているんですけども、いかんせん日本語化されてないので、しょーがねぇなぁ。自分で po ファイル書くかぁ。などと思いコツコツと日本語化しているのであります。

僕が今まで日本語化した po ファイルは以下の URL に置いてあるので良かったら持って行ってください。

http://icmpv6.org/Prog/ja.po/

rekonq-2.4.2 に対応した po ファイルの最新版は rekonq-2.4.2-20140205_1.po になります。

 
さてさて。翻訳していて一番大変なのはバージョンアップした時ですね。
新規に po ファイルの翻訳をするのであれば、とある言語の po フアイルを引っ張ってきて Language: とか を ja に変更して、翻訳を開始していけば良いのですが、バージョンアップが発生したときはどうするの?とかになるわけです。

以下、作業手順。あ。僕が個別にどの翻訳グループにも属していないのでこのような手順を踏んているだけで、もしかしたらちゃんとしたもっと効率の良いやり方というのがあるのかもしれませんが・・。その場合は、教えて頂ければ幸いです。

1). 新しいバージョンの po ファイルを取得
2). 以前に翻訳した po ファイルをエディタで開く
3). 新しいバージョンの po ファイルをエディタで開く
4). 新しいバージョンの po ファイルの msgid に以前翻訳した msgstr をペースト
5). 新規に出てきた未翻訳の msgid を翻訳
6). やっと完成。ふぅ・・

なんていう、クラクラするような作業をしなければならずほんとにイヤになる・・。もっと効率的なやり方は無いんかな?

 
と、いうことで考えた技は以下の通り。 UNIX コマンド使いまくりだぁ;-)。 効率よく po ファイルをバージョンアップする技を考えてみました。

・新しい po ファイル: rekonq-2.4.2.po
・古い po ファイル: rekonq-2.3.2.po

ソースコードに日本語の po ファイルが無い場合には他の言語の po ファイルを日本語として使いまわします。 rekonq の場合は po/sv/rekonq.po を利用して rekonq-2.4.2.po としました。

1). msgid の抜き出し

$ cat rekonq-2.3.2.po | grep ^msgid > rekonq-2.3.2.po_msgid
$ cat rekonq-2.4.2.po | grep ^msgid > rekonq-2.4.2.po_msgid
$ diff -ur rekonq-2.3.2.po_msgid rekonq-2.4.2.po_msgid > msgid.diff

 
これで新規に追加になったメッセージと削除されたメッセージの差分が出てきます。
diff ファイルで “+” の部分は新しく登録された msgid で “-” の部分は削除された msgid です。

 
2). diff 結果の取り込み

$ cp rekonq-2.3.2.po rekonq-2.4.2_New.po
$ mule rekonq-2.4.2_New.po

 
rekonq-2.3.2.po は以前に翻訳したファイルなのでそれを最新版にします。そのために msgid.diff の差分を新しく用意した rekonq-2.4.2_New.po に反映して行きます。
“+” で表示されている msgid とその関連する部分は追加し “-” の部分の関連する情報は削除していきます。ガシガシしていきます;-)。 po ファイルには「ソースコードの何行目」なんていうコメント行がありますが、とりあえずそんなのは無視していきます;-)。

以上はエディタで編集する必要がありますが、これで新旧の情報がマージされた po ファイルが完成です。ちっこいバージョンアップだと差分が少ないので po ファイルの更新も楽ちんです;-)。

 
3). 翻訳者支援アプリ
テキストエディタで直接 po ファイルを更新しても良いとは思うのですが、何か支援 AI ではなく、支援ソフトは無いんかなぁ? とか思って調べてみると ports に editors/poedit というのがありますね。 GTK アプリで GUI で利用できそうです。こいつをインストールして起動してみます。

起動したら rekonq-2.4.2_New.po ファイルを読み込みます。すると翻訳可能な状態になります。キャプチャはありませんが、左側が msgid で、右側が msgstr です。 msgstr が空白な部分が翻訳されていない文字列になるのでそれをベコベコ打ち込んでいけば良いかと思われます。
日本語文字入力時に emacs キーバインドが利用できないのが痛いんだけど、GTK2 の emacs キーバインドの設定すれば良いんかなぁ?今度試してみよう。

 
GUI 的なモノで msgid を google 翻訳で翻訳してその結果を msgstr に表示するヤツとかあるんかなぁ? google の textproc/translate-toolkit なんかはその類なのかな? python のコマンドラインツールなんてのは使いたく無いんだけど;-P。

 
poedit は Windows 版 Mac 版もあるようです。編集した po ファイルを保存すると msgfmt も実行してくれるのでいきなり mo ファイルが生成されます。あとはそれを share/locale/ja/LC_MESSAGES/ 辺りにほーりこんで rekonq を再起動すると確認ができます。

 
翻訳用の po ファイルに対する新旧二つの情報のマージって、もっと他に何か画期的な方法・手段ってあるのかなぁ? google で探したけど見当たらなくて、結局 diff してその差分を古いバージョンの po フアイルにマージって方法にしたんだけど・・。

もしかして、本家にマージされた po ファイルは既に差分が吸収された状態でリリースされるとか?そんな便利な世の中ならドンドン本家にマージしたほうが良いなぁ。

それにしても翻訳の方法はこれで良いのかな?

9月 102013
 

以前のエントリで「xmodmap と setxkbmap。」というのを書いているのですが、そのときに xmodmap -pke というコマンドを打ってみて、このコマンドが出力した情報をじっくりと眺めてみると何やら色々な設定があるようなので試してみることにしました。

色々な設定というのは、例えば NotePC において Fn キー + テンキー同時押しでボリューム調整を行う、であるとか画面の明るさを変更する、であるとか suspend/resume であるとかその辺りのことができるようなんですね。

IMG_5632_NotePC_Fn+10Key

通常この辺りの制御は ACPI のほうでやっていて、以前であれば、僕の場合、今回は ThinkPad X100e で試してみましたが、 acpi_ibm.ko というのを kldload して /usr/local/sbin/acpi_oem_exec.sh とかを作成して呪文のような文字列と数値を書いて devd に対応させる。というのが一般的だったんですけども。
まぁ、その辺りは man acpi_ibm してみて、その内容でスクリプトを書くんですけど、なんか大変そうで「動かなくてもいやー。」となっていたんですね。

今までは ACPI で制御していた Fn キー + テンキー同時押しの機能がどうやら xmodmap でできるらしいんですね。と、いうことで早速設定してみましょう。
まずは xmodmap -pke でどんなオプションが指定できるのかを探してみます。

$ xmodmap -pke | grep XF
keycode  63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab
keycode  67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1
keycode  68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2
keycode  69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3
keycode  70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4
keycode  71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5
keycode  72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6
keycode  73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7
keycode  74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8
keycode  75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9
keycode  76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10
keycode  82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode
keycode  86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode
keycode  95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11
keycode  96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12
keycode 112 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab
keycode 214 = XF86Display NoSymbol XF86Display
keycode 215 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff
keycode 216 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown
keycode 217 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp

 
なるほど。この中にキーボード配列に合いそうな XF86 なオプションを ~/.xmodmaprc に記述していけば良いんですね。などということが解りました。

上にキーボードの写真を掲載しましたがちっこくて見えないですかねf(^^;;。それに合わせて今回 ThinkPad X100e に設定したのは以下の通り。

keycode 140 = XF86AudioStop
keycode 176 = XF86AudioRaiseVolume
keycode 174 = XF86AudioLowerVolume
!
keycode 162 = XF86AudioPlay
keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext
!
keycode 115 = XF86KbdBrightnessUp
keycode 109 = XF86KbdBrightnessDown

 
以前から Fn+F4 で suspend/resume は動作していたので今回は設定しません。

ボリュームの停止・大きく・小さくは動作しました。まぁ、KDE4 のパネルにボリュームウィジェットを表示しているのでそれで調整することも可能ですが、新たに Fn+ESC ・ Fn+F1 ・ Fn+F2 キーでできるようになった。と、いう感じでしょうか。

あと、音楽の曲飛ばし(Fn+F11)と戻り(Fn+F9)・停止と再生(Fn+F10)が動作しました。利用したソフトは gmplayer で 起動時に gmplayer *.mp3 とかして再生開始します。再生している最中に Fn+ キーを押すとそれが有効になりました。けど、考えてみると gmplayer のほうにも曲飛ばしとか停止のキーバインドはあるわけでして、無理して Fn+ キーに設定する必要は無いのかなぁ;-)。

XF86KbdBrightnessDown と XF86KbdBrightnessUp は動作しませんでした。と、いうか、Fn+ のキーがもう無いんですね。 xev で keycode を取得しようとしても取得できないキーが何個かありました。
現在、画面の明るさ変更については ACPI で行っています。 kldload acpi_ibm.ko すると acpi_ibm.0.lcd_brightness という sysctl mib が生えてきます。ここに値を設定してあげると画面の明るさが変わるのですが、shell スクリプトを書いてそれを実行することにより明るさを変えています。

その他に何かできないのかな?などと思ったのは外部ディスプレーの切り替えとか。 xmodmap 的に何かパラメータはあるのかな?と思ったのですが特に無いようなので諦めました。
ではどうするか?というと、KDE4 では KDE システム設定の中に「ディスプレーとモニタ」という項目があってここから LCD か外部ディスプレーにするか変更ができるのでそれでやることにしました。なので X の再起動とかは必要ありません。調べてないんだけどこの辺りは xrandr が面倒見ているのかな?

 
と、いうことで、以前は ACPI のほうで設定していた内容がいとも簡単にできるようになったのは良いことですね。ただ、本当にその設定が必要か? 聞かれれば「特には困っていない。」のであまり必要ではないんですけどねf(^^;。キーボードに書いてあるのでそれに合わせてキーをマッピングしてみた。と、いうのが素直な感想で。けど、簡単に設定可能なものは一応設定して見ましょう。という内容のエントリなのであります;-)。

6月 052012
 

KDE や Qt、あげくの果てには png のバージョンアップがあったりして最近の ports 回りは大変でしたなぁ・・。でもって libreoffice 、 ports 的には editors/libreoffice になるわけなんですけども、こいつは最近まるっきり make が完走しないのでホトホトいやになっていた。

libreoffice は make にも時間が掛るのでなおさら使いたくないモノだ。などと思っていたのですが、 make が通らなくなったのでキッパリと諦めることができた;-)。では、代わりに何かないかな?と探し回っていた思いついたのが KDE 由来のオフィススイート。

ついこの間、ports から okffice が全部削除されましたね。で、代わりに calligra というのになった。 koffice から calligra に名前を変更した。と、いうことですね。

と、いうことで libreoffice の代わりに calligra にインストールをしました。インストール自体は libreoffice の 1/3 程度の時間で済んだかな?結構早く make が終わったので嬉しい;-)。

さてと。日本語テキストの ports はあるかな? と探してみたら、あたた・・。無いようですね。 JKUG (Japan KDE Users Group) の翻訳担当の人に Twitter で聞いてみたら「手が回って無い状態です。」とのこと。そらそーですよねぇ。本体で手一杯のような気がします。お疲れさまです。

と、いうことで、calligra の日本語テキストを起こしてみました。

幸い koffice の日本語化は 2.3.2 まで進んでいるようでソースコード自体は koffice-l10n-ja-2.3.2.tar.bz2 としてリリースされています。このファイルを calligra に対応させてみました。あくまで対応させただけで、個別に追加の翻訳などは一切していません。

以下の URL にあるので利用したい人は試してみてください。 koffice-2.3.2 相当の日本語は表示してくれると思います。

calligra-l10n-ja-2.4.2.tar.bz2

あと、FreeBSD 用の ports も作りました。以下の URL にあります。

http://icmpv6.org/Prog/FreeBSD_ports/ports-calligra-l10n-ja-20120605.tgz

ダウンロードしたら /usr/ports/editors 辺りで展開して中に入っている calligra-l10n-ja-2.4.2.tar.bz2 を /usr/ports/distfiles/KDE/calligra-l10n/ にほーりこんだら make install でインストールされます。

やはり同じく koffice-2.3.2 相当の日本語は表示してくれると思います。

せっかく作ったので、一応 JKUG の ML には連絡してみたいと思っています。 KDE 本家に取り込まれるか、そして FreeBSD の ports として提供されるようになるかですねぇ;-)。

4月 102012
 

いやはや。僕が利用している NotePC は以前のエントリにも書いたかもしれないですが ThinKPad X100e です。この NotePC は AMD の CPU を利用していて E-350 です。時々熱がこもって ACPI shutdown が走ったりするんですけども、NotePC では唯一 X11 の drm が動作する VESA ではない(ドライバは xf86-video-ati を利用しています)最後の NotePC なのではないかなぁ。と思っているところですが;-)。

で、この NotePC は現在 FreeBSD/amd64 9.0-STABLE がインストールされているんですが、つい最近までは suspend/resume しなかった。9.0-PRERELEASE までは suspend/resume していたんだけど、その後 RC になってからは ACPI 周りの問題からか、acpiconf -s3 すると resume はブラックアウトでフリーズ、あげくの果てには AC コンセントを抜き差ししないとブートさえもしてくれない状態だったので、もう本当にある意味あきらめていたんですけどね。

さすが CURRENT および STABLE は『生もの』ですね。 2012/04/07 辺りの 9.0-STABLE を csup して make build world と install したら見事に suspend/resume が復活しました。パチパチパチ;-)。

今回はその様子を動画に撮ってみたのでちょっと公開してみましょう;-)。こんな感じ。一分07秒の動画です。


20120410.jpg

※ “再生アイコン” が見えない表示されないブラウザの場合は上記写真をクリックしてください。

いやね。雰囲気的に resume は MacBook に近い動作をします。以下、寝て起きる上記の説明です。

1. Fn+F4 で suspend します。
2. X の画面からコンソールの画面にひとまず落ちてから寝ます。
2. 手前の緑の LED が二個点きました。右側が「スリープ状態」を示しています。
3. フタを明けて resume。緑の LED は一個だけの点灯になります。
4. resume 後は X が即座に表示され早速利用可能。
5. USB Wi-Fi の run0 を利用していますが、その LED が点滅し、しばらく後に利用可能。

とまぁ、動画的にはこんな感じで suspend/resume します。上記で「MacBook に近い動作」と書いたのはフタを明けてから利用できるようになるまでの時間のことを言っています。フタを明けるとただちに X が動作するのはこれまたすごいっ!! 今までの FreeBSD にはちょっと無い体験でした。

後、何回 suspend/resume をしても特に問題なくちゃんと寝て起きてくれます。 jobs の言うところの “It just works.” って感じでしょうか;-)。

で、まだあまり試していないのですが、一点問題があるように感じます。一番最初。電源投入後、一回目の suspend だけはどうやら Ctrl+Alt+F1 で X を後ろに飛ばしてからコンソールで acpiconf -s3 を打つ必要があるみたいです。で、その時の resume はちゃんと起きて Ctrl+Alt+F3 辺りで X の画面を戻したあと、以降は Fn+F4 で寝て、そして起きてくれるようになります。この辺りがまぁ、なんちゅーか本中華なんですが、もしかしたら僕の気のせいかもしれません;-)。

で、これだけサクサク suspend/resume が動作するんだから KDE4 の電源管理で Windows7 みたいに一定時間後には寝てくれるんかいな?などと、ちょっと思ってしまうのでありますが、実際に試してみました。

PowerProfile_1.jpg

KDE4 のコントロールパネルから「電源管理」メニューで色々設定してみます。あと、タスクバーにも電源管理アイコンがあって、ここからレジュームとかハイバネードとかシャットダウンとかあるんですけどね。

今回は PowerSave の設定で 10 分後に「スリープ」と設定して放置してみました。

あたたた・・。サスペンドはしてちゃんと寝てくれます。しかし、レジューム(起動)時には X がブラックアウトしていまいました。ただし、カーネルは死んでないので ACPI S5 ステートとかリモートからの ssh は可能なので本当に X の画面のみが見えない状態。と、いう感じでした。これは上で書いたタスクバーの電源管理から「スリープ」ボタンを押した時と同じ動作でした。

と、いうことは FreeBSD 単体ではサクサク suspend/resume するけど、 KDE4 経由の電源管理ではまだもう少し頑張りが必要だね。と、いう感じでしょうか。

けどもまぁ、そこまで贅沢は言いません。これだけサクサク、何回も suspend/resume してくれるのであれば全然問題はありません。今まで suspend/redume が動作するのは二回まで。三回目に起きた時には画面はブラックアウトだっただけにずいぶんと進歩してそして非常に嬉しいのであります。

上にも書いたとおり、CURRENT や STABLE は生ものです。次回 csup してカーネルを作り替えたら動作しなくなるかもしれません。なので、今回の環境は非常にじゅーよー。みたいな。この環境でずっと使い続けたい気分です;-)。

なお、今回はこのブログ初の動画でしたが、今後は機会があれば色々、動くものを掲載して行きたいと思います;-)。

2月 142012
 

僕は普段から KDE4 使いなんだけども、KDE4 を利用しているとターミナルソフトといういうのは必然的に konsole になるわけであります。

しかし、もう何回もこのブログに書いているんですが、 konsole というのは一個のプロセスが起動して、何個も konsole の画面を開いても一個のプロセスで動作する。つまり、表示される konsole のウィンドはスレッドとして動作しているんですな。

これがまたあーた。一個の konsole ウィンドが変な挙動をするとそのプロセスがおかしくなるということで、表示されている全ての konsole のウィンドはスレッドで動作しているんだけども、それら全てを道連れにお亡くなりになる、もしはフリーズしてしまう。という、それは非常にヒサンな状態になるわけですね。

こんなのは使いたくないよ。一つのウィンドは一個のプロセスのターミナルソフト使いたいよ。ってんで、/usr/ports/x11 の下辺りを ls -d *term* などとして色々物色するんですね。で、今回中々良いのが見つかったのでそれについてちょっと書いてみたいと思います。

今回取り上げるのは gtkterm2 です。 ports 的には x11/gtkterm2 になるんですけどもね。とりあえず make してみると、ターミナルソフト的には vte というのを利用しているみたいですね。 ports 的には x11-toolkits/vte になるみたいですが。ここに GTK2 を利用してタブの機能を盛り込んだみたいな感じです。

利用してみると一つのウィンドで一つのプロセスとして動作するようで中々良い感じですね。では、早速カスタマイズして自分好みの環境で利用してみましょう。

実は gtkterm2 をインストールして、カスタマイズしようとしてあまりにもその設定方法が書かれたウェブが無いのでいっちょ書いてみるか。ということでこのエントリを書いているわけですけどもね;-)。

gtkterm2 の設定ファイルは $HOME/.gtkterm2rc になります。 gtkterm2 を一回起動するとホームディレクトリに設定ファイルが生成されます。そしたらエディタで編集すれば良いでしょう。

それにしてもこの設定ファイル、 gtkterm2 を起動するたんびに毎回 gtkterm2 が更新してくれます。非常にややこすぃー・・。毎回エディタを再起動してあげる必要がありますが・・。

とりあえずフォントの設定から。以下の部分を変更すると自分の好きなフォントになります。

terminalFont= MS Gothic 10

 
上記設定は MS ゴシックを 10 ポイントの表示で利用する場合。フォント名は GTK2 の記述形式ですね。以下のコマンドを実行するとフォント名が抽出できると思うのでそれを記述します。

% fc-list | awk -F, '{print $2}' | awk -F: '{print $1}' | sort

 
MS ゴシックが無い人は “Ume Gothic C4” とか指定すると良いかもですね。

まぁ、上記のようにフォントの指定は色々なウェブ上で書かれているので割と設定は簡単でしょうか。

問題は色のほうです。こいつは解らない・・。orz。また、ウェブを探しまわっても全く見当たらないんですね。でもって $HOME/.gtkterm2rc には以下のように不気味な設定が書かれている。

red=0xff00 0x0000 0x0000 0xaaaa 0x0000 0xaaaa ...
grn=0xef00 0x0000 0x0000 0x0000 0xaaaa 0x5555 ...
blu=0xef00 0x0000 0x0000 0x0000 0x0000 0x0000 ...

 
red=、grn=、blu= の後に 0x0000 が全部で 17 個並んでいます。これが何を意味しているのかが全くわかりませんでした。しょーがないのでソースコード眺めましたよー。src/prefs.c 辺りで色についての記述がありますね。まぁ、読むのも大変なんですけども・・。

で、 grn= の後の一個目のパラメータはバックグラウンドの色の指定になります。二個目のパラメータはカーソル、X11 用語では foreground ってことですけどもね。の指定になります。一個目と二個目の設定だけが特徴的で残りの 15 個はファイルの色になります。この辺り、僕にもわかりません。実行形式ファイルの色は赤とか、ディレクトリは青とか、symlink の色はピンクとか、そんな設定になります。

まぁ、今回は background と foreground の色を変えてみましょう。それにしても RBG カラーってのは # のあとに六桁指定するのにどうして四桁なんだ?と思うのでありますが・・。

例えば background の色を #FFEFEF という、ちょっとピンクっぽい色にしたい場合は以下のように指定します。

red=0xff00
grn=0xef00
blu=0xef00

 
red、grn、blu で RBG の色を前から二桁に指定し、余った後ろの二桁は “0” を指定する。って感じですね。

文字とかカーソルの色は黒にしたいので #000000 になります。その場合は以下になります。

red=0xff00 0x0000
grn=0xef00 0x0000
blu=0xef00 0x0000

 
0x00 の前二桁の部分に “0” を設定し、後ろの二桁は default の “0” を設定します。これで自分の好きな色に設定できると思います。そして、三個目以降、残りの 0x???? は全部で 15 個ありますが、これは default の設定でひとまず試してみてください。 ports の make config ときなんかは不気味な色になりますけどねぇ;-)。

とまぁ、こんな感じで設定すれば自分の好みのターミナルになるのではないかなぁ。と思われます。

自分的に一点変えたいと思っているのが新しいタブを開くとき。 default では CTRL+N なんだけど、CTRL+SHIFT+N に変更したいなぁ。と思っています。ソースコードを変更してしまうのが一番早いかなぁ。などとちょっと思っていますが、機会があったら試してみたいですね;-)。

さーっ!! そんなこんなで、ようやっと一つのウィンドがひとつのプロセスとして動作するターミナルソフトを手に入れた。インストール時に入るのは vte くらいのなので KDE4 を使っていても余計なモノを入れない(インストールしない)のが気に入っています。

gtkterm2 の設定が解らないときはここを参照してください;-)。

2012/02/16 加筆
以下の部分を改修した ports を作りました。

・日本語 po ファイルを書いたのでメニューは日本語表示できるようになります。
・Ctrl+n は emacs とバッティングするので新規タブは Ctrl+t に変更しました。

以下の URL から ports がダウンロードできます。

http://icmpv6.org/Prog/FreeBSD_ports/ports-gtkterm2-20120216.tgz

8月 242011
 

Firefox が 12 週間に一回バージョンアップするというとんでもない所業に出て、つい最近 Firefox6 が出たんですが、こいつがなんかむちゃくちゃ CPU を食いまくる。起動直後なんて一人で一個の CPU を使いやがる。ってんで Firefox の利用は最近断念しつつあります。

と、言うことで何か別のブラウザを捜すべ。とか思って色々調べてみたのですが、 QT ベースのブラウザってのは結構色々あるんですね。 arora だとか rekonq とか QtWeb (これは ports になってない) とか。

けど、結局 QT ベースブラウザってどうあがいても emacs キーバインドが利用できないみたい。

ちょっと話はそれますが KDE4 のアプリケーション群の中で emacs キーバインドが設定できるのは kwrite だけなんですよね。で、こいつの設定の「ショートカットを設定」を見ると 「Kateコンポーネント」ってのがあって、これが編集時のショートカットキーの変更を可能としている。

ちゅーこって KDE4 ではショートカットの設定のところで「Kateコンポーネント」を全てで編集できるようにすれば emacs キーバインドが可能になるのになぁ。と思うのでありました。どっかで呼びたせたりしないのかなぁ。

 
で、ここで話はブラウザ全般のネタに戻るのですが、以下ちょっと色々書いてみます。

 
・chromium
QT ベースのブラウザは emacs キーバインドが利用できないので www/chromium をインストールしてみました。 Chrome のオープンソース版と言えば良いのかな? こいつは Firefox6 よりも CPU 利用率が低いみたいなのでまぁ常用できるかもしれない。

それにしても chromium で emacs キーバインドはできないのかな?とか調べたら GTK2 側で emacs キーバインドの設定をすれば良いと言うことが解ったので早速やってみました。

% cd /usr/local/share/themes/Emacs/gtk-2.0-key/
% cp gtkrc ~/.gtkrc-2.0

 
これだけ。普段 KDE4 とか利用していると GTK2 のこととかほんとにわかんない。僕だけかもしれないけど。で、この設定を入れるとほぼ全ての GTK2 アプリは emacs キーバインドになるみたいです。Firefox の場合はアドオンで firemacs 入れているので気にならないのですが、 Thunderbird3 とかも emacs キーバインドになってくれたりします。すげー;-)。

 
・midori
GTK2 的なブラウザとしてはもう一個 www/midori を試してみました。インストールしてから起動すると・・。ふむー。随分と前時代的な雰囲気を醸し出していますf(^^;;。細かい設定は「設定」→[エクステンション]として全て項目にチェック付けてと・・。とかします。

ツールバーの設定などはブラウザではできなくて、~/.gtkrc-2.0 に項目を追加していくと言ういかにも UNIX ライクな設定方法ですf(^^;;。そして、見かけは本当に”GTK2 ベース”って感じです。多分常用はしないと思われますが pkg_delete もしていません;-)。

 
・arora
QT ベースのブラウザです。まぁ、非常に質素である意味 midori に通じるものがあるかもしれません。konqueror の不要な部分を全部削ぎ落して軽量化したって感じのブラウザです。けどもまぁ、QT ベースなので KDE4 上で利用する分には割としっくり来ますかね。

フツーに問題なく利用できます;-)。

 
・QtWeb
QT ベースのブラウザです。Windows 版もバイナリで配布されています。arora と一緒で本当に質素・軽量なブラウザです。 FreeBSD では ports になってないので自分で make して、チロッと起動して動作確認などをしただけです。

FreeBSD で make するには QT4 の CJK なプラグインが必要になります。 japanese/qt4-codecs-jp 相当の中国・韓国・台湾版をインストールします。まぁ、ソースを変えて libqjpcodecs.so しか呼ばない(リンクしない)ようにすれば良いだけなんですけどね。 一応 make は通って起動はできます。ただ、 ports する意味あるの?って感じがするので僕は ports を作ってませんが;-)。

 
・rekonq
僕的には本命のブラウザですなぁ www/rekonq 。名前的に「konqueror よ再び。」みたいな感じ、車輪の再開発とか。 konqueror の悪いところを削ぎ落して再度作り直しましょう。みたいな感じのブラウザらしいです。

とりあえずキャプチャなどを。下が konqueror 、上が rekonq です。

rekonq.png

見た感じ・使った感じは Safari と Chrome の良いところを取り込んで konqueror の悪いところがちょっと残った。と言うような感じでしょうか;-)。

機能も konqueror 程度にはあるし、何よりも konqueror よりも安定している感があります。 kubuntu では rekonq が default ブラウザになったんだっけか?

FreeBSD では ports からインストールしても日本語対応していません。 ja な mo ファイルが無いんですな。あいや・・。しょーがないので kubuntu のを持ってきてしまいましょう;-)。

以下の URL から language-pack-kde-ja-base_10.10+20110618_all.deb を拾ってきます。

http://pkgs.org/ubuntu-10.10/ubuntu-proposed-main-i386/language-pack-kde-ja-base_10.10+20110618_all.deb.html

そのあとは以下の要領でインストールすると rekonq の日本語化ができます。

% mkdir deb
% cd deb/
% mv ~/language-pack-kde-ja-base_10.10+20110618_all.deb ./
% ar -vx language-pack-kde-ja-base_10.10+20110618_all.deb
% tar xvzfp data.tar.bz2
% cd usr/share/locale-langpack/ja/LC_MESSAGES
# cp rekonq.mo /usr/local/kde4/share/locale/ja/LC_MESSAGES/

 
一部翻訳されていないところも有りますがほぼ問題ないほどに利用できるでしょう。

利用した感想ですが、konqueror よりは遙かに良いと僕は思います。これが default ブラウザでも問題無いと思います。「KDEシステム設定」の中の「デフォルトのアプリケーション」のブラウザとして設定しましたが、各アプリの URL をクリックするとスルスルっと konqueror よりも軽やかに起動するみたいな感じでしょうか。

ただ、本当に KDE4 のアプリと言うか QT ベースなのでやはり emacs キーバインドは利用できないですね。長文書く時、僕はダメです。

と、言うことで Firefox6 と言うか、 Firefox がこれからドンドン変な方向に進んで行きそうなのでそろそろ潮時かぁ? とか思いブラウザを試してみましたが、サイトを見るときは rekonq 、文章を書く時には chromium 。って感じになりそうです。

あ。最後にですが、筆者は Flash などいうのはまるで見ません。プラグインインストールしていません。ブラウザの設定で「プラグインはロードしない。」をわざわざ選択しています。iOS ユーザにとって Flash プラグインは必要無い。みたいな;-)。

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 が役に立つのであります;-)。