8月 192013
 

以前のエントリで「ibus-mozc を使う。」というのを書いているのですが、このときは mozc を ibus 経由で利用します。と、いうネタが基本でしたが「僕はかな入力の人なので、かな入力時の “ー” 問題ががあります。」と書いています。

その時は xmodmap で以下の設定を行うことにより回避していました。詳細についてはリンク先のエントリを読んでみてください。

keycode 133 = bar bar bar bar

 
しかし、最近の ports-current を利用していて、とあるタイミングから USB キーボードを抜き差しすると上記 xmodmap の設定がチャラになって(消えて)しまう事象に悩んでいたのであります。

色々調べてみると xorg.conf の設定で hal を利用していた場合に原因があることが解ってきました。以下に事象を箇条書きにしてみます。

o. USB キーボード利用時に(USB KVM などで)キーボードの抜き差しを行なったあとに利用すると xmodmap の設定が消えている
o. USB キーボードを X が hal 経由で認識しているときにその問題が発生する
o. hal はどうやら setxkbmap を利用して xmodmap の設定を飛ばしてしまうようだ
o. USB キーボードを認識したところで xmodmap を実行すると再度キーバインドが有効になる

と、いうような状況。

そもそも mozc をかな入力で利用していない人にとっては “\” (バックスラッシュ)を “|” (バー)に割り当てる必要は全く無いわけでして、なのでこの問題に遭遇することは無いと思われます。

 
と、いうことで、ここからはどうしてもキーバインドを変更したい人にとっては重要な内容になるのであります。
そして、ある程度原因が特定できたので、ここから先は xmodmap と setxkbmap の対比について見ていくことにしましょう。

上記 xmodmap の設定において “\” の keycode は 133 です。これは xev(1) でキーを調べたり xmodmap -pke コマンドで、現在 133 に何が割り当てられているか確認すれば良いので比較的容易に調べられます。まぁ、昔からある枯れた確認方法ですしね。

それにしても xmodmap で指定した設定が setxkbmap のどれに対応するのか解らない。 hal を利用していて Ctrl と CAPS Lock を入れ替える場合には以下の設定を /usr/local/etc/hal/fdi/policy/10-keyboard-jp106.fdi 辺りによく書いています。

<merge key="input.x11_options.XkbOptions" type="string"> ctrl:nocaps</merge>

 
で、 setxkbmap もこの形式を引きずっているようで、オプションパラメータが合えば受け付けるんでないかなぁ。

$ setxkbmap -option bar:nobackslash

 
上記コマンドのオプションの法則をまるて理解してなくて実行しているんですが、これでは backslash が bar に置き換わりませんでした。もーしょうがないので色々調べることにします。

xmodmap は xev で値を確認したり -pke オプションで表示された情報に従って動作していることが解ります。なのに setxkbmap ってどうやって設定するのぉ?って。調べていくと /usr/local/share/X11/xkb/ 内のファイルを各種参照していることが解ってきました。でもって以下のコマンドで参照しているファイルが確認できそうです。

$ setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "xfree86+aliases(qwerty)"       };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete+japan"        };
        xkb_symbols   { include "pc+jp" };
        xkb_geometry  { include "pc(pc104)"     };
};

 
上記の結果で確認する必要があるのが xkb_keycodes と xkb_symbols です。

xkb_keycodes は xfree86 だね。ってことはファイル的には /usr/local/share/X11/xkb/keycodes/xfree86 になります。 xmodmap では keycode の 133 の値を変更したかったので 133 で grep してみるとっ!! おーーっ!! <AE13> = 133; って行が見つかりました。

でもって xkb_symbols を見るとと今度はファイル的には /usr/local/share/X11/xkb/symbols/jp を参照していると思われます。

なるほどー。これで xmodmap と setxkbmap との関連性がそこはかとなく解ってきたような気がします。
しかし、それにしても setxkbmap -option に指定する記述方法がいまいち解りません。しょうがないので直接設定ファイルを変更してしまうことにしましょう。

あ。ちなみに setxkbmap -option に指定した形式は 上記 hal の 10-keyboard-jp106.fdi に input.x11_options.XkbOptions に設定してあげるだけで良いみたいなんですけどね。形式が解れば直接設定ファイルを変更する必要は無いんですけども。

と、いうことで /usr/local/share/X11/xkb/symbols/jp のファイルを以下のように変更してあげます。変更する項目は先程確認して <AE13> だということが解っていますね。

//  key <AE13> { [ backslash, bar       ] };
    key <AE13> { [ bar, bar   ] };
        :
//  key <AE13> { [ backslash, bar       ] };
    key <AE13> { [ bar, bar   ] };

 

<AE13> の項目は全部で二つあったので両方とも直しました。あとはマシンを再起動して X が起動したあとにログインして USB キーボードを抜き差しして動作確認を行い xmodmap で指定していた値が変わらなくなったことを確認します。

 
今回はたまたま mozc のかな入力のキーバインド変更のための設定変更でしたが、通常 CAPS Lock と Ctrl キーの変更などはウェブ上にゴロゴロしていますよね。そーじゃないちょっと変わったキーの変更を hal 経由の場合に継続的に持続する場合についての探し方などについてまとめてみました。

多分、他のキーについても上記の方法で行けるのでは無いかと思われます。

それにしても setxkbmap -option の記述方法知りたいなぁ。オプションに指定する方法などを知っている方いましたら教えて頂ければと思います;-)。

8月 042013
 

以前のエントリで「X11 で Synaptics とタッチパッドの両方を利用する。」ってのを書きましたが、今回はそれのほぼ続編です。

と、いうのも以前のエントリでは X11 で Synaptics のマウスポインタとボタン、タッチパッドを同時利用するための設定を書きましたが、その設定では USB マウスを接続してもマウスが使えない状態だったんですね。

で、しばらくの間は NotePC に付属の二つのマウスが動くようになったので、まぁ、良いかー。とか思っていたのですが、やっぱり USB マウスが欲しい場合があるわけで、それならもう一度設定を見直して、Synaptics とタッチパッド、あと、 USB マウスが動作するようにしてみるかー。と、なり、このエントリを書くわけです。

以前のエントリで xorg.conf と rc.conf の設定を書いているので今回はそこに USB マウスの設定部分を加筆する感じで記載します。とは言いつつ、実は xorg.conf への設定追加のみでサクっと動作したので設定はらくちんです;-)。

以下の設定を xorg.conf に加筆する感じです。

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0"   0 0
        InputDevice    "Mouse0"    "CorePointer"
        InputDevice    "Mouse1"    "AlwaysCore"
        InputDevice    "Touchpad0" "SendCoreEvents"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection
    :
Section "InputDevice"
        Identifier  "Mouse1"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/ums0"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

 
X11 で Synaptics とタッチパッドの両方を利用する。」のエントリで書いた設定は Mouse0 と Touchpad0 の設定を書きましたが、今回はそこに Mouse1 として Section “InputDevice” を登録します。そしてデバイスが一個増えたので Section “ServerLayout” に Mouse1 を追加します。

Section “ServerLayout” では既に Mouse0 で “CorePointer” を利用しているので Mouse1 では利用できません。では何を利用することになるのか? というと “AlwaysCore” を利用します。

これで USB マウスが利用できるようになります。でもって Synaptics とタッチパッドも同時に利用できるようになるので、合計三つのマウス全てが利用可能な状態になります。うひひ。

ただ、ですね。二点ほど注意点があります。

1. X を利用しない場合、つまりコンソール利用時には USB マウスが利用できないみたいです。
2. X 起動前に USB マウスを接続しておかないと利用できない。また、X 起動中に USB マウスを一旦抜いてしまうと以降は利用できない。

などがあります。 2. の場合は X を再起動すると再度利用できるようになります。どちらも多分設定で切り抜けられるのかなぁ? とは思うのですが、まだ調べてはいませんf(^^;;。けどもまぁ、今まで動作していたマウスの他に USB マウスも利用できるようになったので喜ぶべきなのでしょうなぁ;-)。

多分 2. の場合は hal 経由にしないと無理っぽいだろうなぁ。と、そこはかとなく感じていますが・・。

1月 232013
 

ちょっと前の FreeBSD-users-jp な ML で USB マウスが動かなくなる。と、いうスレッドがありました。PS/2 マウスと USB マウスの二つがあった場合、そのうちの一個が動かなくなる。と、いうのものでした。

僕の場合、USB マウスではなく、 PS/2 マウスとタッチバッドの組み合わせなのですが、マウスのほうが動かなくなって悩んでいたのであります。

僕が持っているのは ThinkPad X100e で、こいつは Windows OS で言うところの UltraNav です。キーボードの真ん中に赤ポッチがあるのが、 FreeBSD 的に言うと /dev/sysmouse でこいつは ports 的 には x11-drivers/xf86-input-mouse で認識して動作します。タッチパッド側は /dev/psm0 で x11-drivers/xf86-input-synaptics で認識してタッチパッドとして利用できます。右側を上下になぞるとちゃんとスクロールもしてくれるように設定しています。

が、この状態において、僕の環境では赤ポッチとそれに付属するポタン類が一切動作しない状態で、上記スレッドを参考に色々試したのですが、やはり動作しないので放置していたのでありました。

今回、環境を 9.1-RELEASE にしたのでもう一度試してみたのですが、やはり動作しません。悲しい・・。

以下は僕が利用している 赤ポッチマウスとタッチバッドマウスの xorg.conf の設定です。一応 hal に関係する設定も書いておきます。

Section "ServerFlags"
Option    "AllowEmptyInput" "off"
Option    "AutoAddDevices"  "off"
#       Option    "AllowEmptyInput" "on"
#       Option    "AutoAddDevices"  "on"
EndSection
Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" Option "ZAxisMapping" "4 5 6 7" EndSection
Section "InputDevice" Identifier "Touchpad0" Driver "synaptics" Option "Protocol" "psm" Option "Device" "/dev/psm0" Option "SHMConfig" "on"
Option "TapButton1" "1"
Option "VertTwoFingerScroll" "1" Option "HorizTwoFingerScroll" "1" Option "VertScrollDelta" "200" Option "HorizScrollDelta" "200" Option "MinSpeed" "0.1" Option "MaxSpeed" "0.2" EndSection

 
この設定を書いても赤ポッチ側が動作しません。ps で hal と moused のプロセスを確認すると以下のようになっています。

$ ps -ax | grep mouse
1120 ??  Is     0:04.49 /usr/sbin/moused -p /dev/sysmouse -t auto
1332 ??  I      0:00.01 hald-addon-mouse-sysmouse: /dev/psm0 (hald-addon-mouse

 
moused は /dev/sysmouse 側をコントロールしています。 hald のほうは /dev/psm0 をコントールしています。 xorg.conf の設定では /dev/sysmouse は赤ポッチマウス、 /dev/psm0 はタッチパッドマウスです。まぁ、タッチパッドが無事に動作しているのでいーやー。とか思っていた時期が長いんですけどもね。

で、色々設定を見なおした結果、両方とも動作することが確認できました。上記 xorg.conf は何も問題がありませんでした。問題があったのは /etc/rc.conf で設定する moused の設定だったのであります。

以下のように設定すると 両方のマウスが無事に動作することが解りました。

moused_nondefault_enable="NO"
moused_enable="YES"
#moused_port="/dev/sysmouse"
moused_port="/dev/psm0"

 
今までは hald が /dev/psm0 をいじっているなら moused は /dev/sysmouse だろ。とか、勝手に思っていたのですが、moused のほうも /dev/psm0 に変更したらあぁら不思議。両方のマウスが動き出した。ということなんですね。 ps で確認すると以下のような感じ。

 $ ps -ax | grep mouse
33230 ??  Is     0:04.49 /usr/sbin/moused -p /dev/psm0 -t auto
33232 ??  I      0:00.01 hald-addon-mouse-sysmouse: /dev/psm0 (hald-addon-mouse

 
なんか、非常に違和感あるんですが、これで無事に二つのマウスが動作しております。考えてみると xf86-input-mouse がバージョンアップして以来赤ポッチマウスが動作していなかったので、随分と久しぶりに両方動きだした。ということになります。

いやー。良かったです。 xorg.conf が正しい設定であるならば rc.conf の moused の設定を変えてみてはいかがでしょうか。なお、今回は /usr/local/etc/hal/fdi/policy/ にはマウスの設定は入れていません。 xorg.conf の設定がそのまま X11 で有効になっていると思います。

ちなみにタッチパッドのほうは xf86-input-synaptics で動作しているので UltraNav みたいな動作が一応できます。 Synaptics を試してみたい方は参考にしてみてください。あ。細かい説明は一切ナシですけどもね;-)。

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 してカーネルを作り替えたら動作しなくなるかもしれません。なので、今回の環境は非常にじゅーよー。みたいな。この環境でずっと使い続けたい気分です;-)。

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

10月 262011
 

ウェブで検索すると、もう既にたくさんの人がこの題材で色々書いているようですね。なのであえて書く必要も無いのではないか。と、ちょっと思うのですが、僕も書いてみます;-)。

ちょっと変わった方向性から書こうと思っています。

まず、xterm とか emacs などは X11 のリソース設定しているのですが、今回はそれについては一切は書きません。コマンドプロンプトから以下のコマンドを投入し、リソース情報を全てさっぱり削除しそこから xterm を起動します。

% xrdb -remove

 
このあと、プロンプトから xterm を起動します。まずはオプション無しで。すると以下のような状態で xterm が起動すると思います。そして jman ls と打った状態です。

xterm-default.png

なお、このブログでは写真のサイズは横幅 500 ピクセルと決めているので、今後は全て横幅 500 ピクセルで表示します。上記のキャプチャのみは横幅が 488 ピクセルなのでちょっと小さめ。

まぁ、半角文字も日本語文字も Fixed フォントで表示されているので一応は無事に起動して、無事に表示できるようです。

問題はここからで、せっかくなので自分好みのフォントを利用したい。はたまた xterm は pango やcairo をリンクしているのでアンチエイリアスを有効にしたい。などと思い、色々な人が格闘しているわけですね。
しかし、全くダメ・・。利用に耐えられない表示のしかたをしてくれます。これについて、皆さん色々書いているんですね。

xterm 自体は X11 のリソースとは別にオプションでフォントを指定できます。~/.Xresources では XLFD でフォントを記述するのですが、 -fa オプションでは fc-list で表示されるフォント名を指定します。

以下、2,3 のフォントを指定したときのコマンドラインとキャプチャを掲載してみます。

-.フォントサイズは 10 で画面の大きさは 80×30 です。
-. LANG は ja_JP.UTF-8 です。

o.メイリオフォントを指定して起動

% xterm -fa メイリオ -fs 10 -geometry 80x30

 
xterm-meiryo_500x400.png

o.Osaka の UNICODE フォントを指定して起動

% xterm -fa osaka_unicode -fs 10 -geometry 80x30

 
xterm-osaka_unicode_500x400.png

osaka_unicode は比較的良い線行っているんですが、もうひといきっ!! って感じ・・。

それにしても皆さん、この表示を嫌うんですな。カーソールの四角は全角四角ちっく。あげくの果てには全角文字の間に半角スペースが入る。非常に横長な xterm の起動画面になってしまう。

ports から xterm を make するときには WITH_WIDE_CHARS=true を指定する必要があるのでこれは有効になっています。そして、xterm でマルチバイト、CJK フォントを正しく表示するためのオプションとしては -cjk_width ってのがあるのですが、この -cjk_width がまるで有効になっていない。と、言うことですね。

いやぁ・・。まいったまいった・・。

UTF-8 を扱う場合、日本語の表示には 4Byte 必要なのだそうで、その影響が出て文字の間に半角スペースが入るとか入らないとか。考えてみると MySQL で UTF-8 を利用すると Key のサイズが既定値未満なはずなのに「キー値が長すぎる。」とエラーになる時があるのですが、その現象とも確かに似ているような似ていないような気がしますね。

で、本当に正しく表示できんのかい?とか思い、自分の持っている(インストールされている)フォント全てを xterm に指定して確認してみました。

% fc-list | wc -l
487

 
ふむ。僕の FreeBSD には 487 個のフォントがインストールされているようですね;-)。では、以下のコマンドを実行してコマンドイメージを出力し、早速確認してみましょう。

% fc-list | awk -F, '{print "xterm -fa \"" $1 "\" -fs 10 -geometry 80x30 &"}'

 
これを | sh -X とかするととんでもないことになるので、5,6 個ずつ起動することにします。

確認してみたところ、有名どころなフォントは全て全滅でしたね。正しい表示を全くしてくれません。
あと、日本語を持っていないフォントは日本語部分は表示してくれない。コード自体を持っていてもフォント自体が無いフォントは豆腐が表示されます。

そんな中、一個だけありましたよ。正しく日本語を表示してくれるフォントが;-)。

% xterm -fa "細明體" -fs 10 -geometry 80x30

 
xterm-03_500x400.png

おぉ。ちゃんと日本語が表示できて、文字と文字の間に半角スペースが入ることなく表示してくれていますね。

「けっ。そんなこと言ったってオメーの持っているフォントだろっ。」とか思うんですが、このフォント名で検索してみると、あややややや? このフォントはフリーなの? (@_o)。
いやね。自分自身、このフォントを、いつ、どー言うタイミングでインストールしたか全く覚えてないんですよf(^^;;。

以下のサイトからダウンロード可能なフォントのようです。

http://ja.cooltext.com/Download-Font-細明體+MingLiU

ダウンロードしたあと、インストールして、そのあと fc-cache すれば利用可能になるかと思います。

ちょっと明朝体チックでそれでいて色が薄いので常用に耐えられるかはちょっと疑問ですが、一応は正しい表示をしてくれてアンチエイリアスが有効になって xterm が起動してくれます。

あと、この 細明體 ってフォントは上記サイトでは「日本語フォント」ではなく「中国語フォント」のカテゴリの中に入っているんですね。 中国語のフォントの中に日本語の文字のパタンが埋め込まれている、なんともすごいフォントなのでしょうなぁ。

と、言うことで、今の段階の xterm は、もしかしたらフォント側で対応できていれば綺麗に表示できるんではないかなぁ。と思った僕の考え、合ってる?

あと、「僕も私も xterm で表示が綺麗になるフォント持っているよー。」ってのがあったら教えて頂けませんでしょうか。等幅ゴシックなフォントがあれば嬉しいなぁ。と、ちょっち思っております;-)。

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 はまだまだ楽しいことたくさんありますよー。皆さんも是非使ってみてくださいねー;-)。

11月 112010
 

最近、ThinkPad X100e を購入したのですが、こいつはグラフィックスカードが ATI の HD3200 相当だったので X11 のドライバの xf86-video-ati とか色々触っていたわけなのであります。

で、色々いじってみると、 X11 の ati の radeon ドライバでは HD5450 が動作するみたいだったのでいよいよ満を持してグラフィックスカードを交換してトライしてみよう。と言うことになったのであります。

購入したのは玄人志向の RH5450-LE512HD/D3/HS。ドスパラで購入したのですが、その時、ASUS の HD5570 が5,980yen だったのでどっちにしようか悩み、店員さんに確認したのですが、僕の PC は AthlonX2 4600+ で電源は 350W。店員さん曰く「350W で HD5570 はきついかもしれないですねー。」と言うことで HD5450 にしたのでありました。

IMG_0049_RadeonHD5450_1.jpg

ファンレス・ロープロファイルなのであります。

まずはこのグラフィックスカードを Windows7 で試してみました。Windows エクスペリエンスで確認してみると、以前使っていたHD 4350と比較です。以前比較したのはここにあますね。

hd5450_winperie.jpg

グラフィックス性能がちょっぴりアップした。と言う感じでしょうか。それでも(僕は多分使う機会は無いとは思いますが) DirectX11 に対応しているのでね。まぁ、よしとしましょう。

後、Windows7 で HDMI 出力する時の注意点があります。ディスプレーの画面全体に表示できないので CCC で設定を見てあげる必要があります。以下の URL を参考にすれば良いかと思います。

http://www.ask-corp.jp/supports/ati2/hdmi_scaling.html

DVI 出力だと問題無いのですけどね。HDMI でフル DH 出力すると画面が小さく表示され、周りが黒くなります。

さて。Windows で動作確認が終わったので次はいよいよ FreeBSD でトライです。

が・・。ブートして X が起動した段階でブラックアウト、フリーズしてしまいますな・・。orz。

もう少し詳しく書くと、drm.ko・radeon.ko を kldload しない状態で HD5450 を利用するとディスプレはブラックアウトします。 リモートから ssh して shutdown するか power ボタンを押して S5 ステートでシャットダウンするかしか方法がありません。

drm.ko・radeon.ko を kldload した場合は、カーネル自体が凍り付きます。orz。

xf86-video-ati を 6.13.0 や 6.13.2、はたまた master にしてもカーネル自体が凍り付きます。orz。

なんだかなー。X11 のドライバは対応しているみたいなんだけど、カーネル側で対応していないのかなぁ・・。カーネルモジュールの drm.ko・radeon.ko をロードしない場合はカーネルは関係ないはずで X11 の radeon ドライバのみで動作している(libdrm も使われるのかな?)のだけど、けど、それさえも正常に動作しないのでありました・・。orz。

それにしても 玄人志向の RH5450-LE512HD/D3/HS は調べてみるとイワク付きのグラフィックスカードみたいなのでその辺りが問題になっているのかもしれませんが・・。

と、言うことで、もう少し HD4350 を利用することにしたのでありました・・。

ちなみに Radeon HD の 5000 番台が正常に動作している。という方いますか?いましたらコメント頂ければと思います。

10月 152010
 

前回のエントリーで「ThinkPad X100e がサスペンド/レジュームしない。」って書いたんだけど、FreeBSD/amd64 8.1-STABLE 自体はもうバリバリサスペンド/レジュームします。ただ、X の画面がエラー吐いてちぃとも復活しない。って感じなのであります。

ati ドライバ(の radeon)や radeonhd を試したり、後 vesa も試しました。 vesa の場合はレジューム後に X の画面が戻ってきて X が使える場合もあります。ただ、サイズが 1024×768 なのとレジューム後に利用はできるのだけどログを吐きまくっている状態なので使い続けるのはどうかな。などと思うのでありました。

こうなったら xf86-video-ati の radeon ドライバでバグが治ってくれるのを待つばかりですが、せっかくなので、絶えず最新版が利用できるような環境を用意しておこうなどと思ったのであります。

http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/

この辺りを見ていると、コツコツと更新はされているようです。で、snapshot は “master” と言う文字列が付加されて公開されているようなので、それ用の ports を作ってみました。以下に転がしておきます。

結構トリッキーなのでコミットはしません。また、もし利用するのであれば ports に詳しい人限定です;-)。
後、 automake-1.11.1 が必要です。利用する場合には portupgrade して automake のバージョンを上げてください。

http://www.icmpv6.org/Prog/FreeBSD_ports/ports-xf86-video-ati-master.tgz

このファイルをダウンロードしたら /usr/ports/x11-drivers/ 辺りに展開します。 そーすると xf86-video-ati-master/ と言うディレクトリができたかと思います。

ちなみに ports の雛形は x11-drivers/xf86-video-radeonhd-devel を参考にさせてもらっています。nork さんありがとー;-)。

# cd /usr/ports/x11-drivers
# tar xvzfp ~/ports-xf86-video-ati-master.tgz
# cd xf86-video-ati-master
# rm /usr/ports/distfiles/xorg/driver/xf86-video-ati-master.tar.bz2
# make NO_CHECKSUM=yes configure
# cat patch-man_Makefile | patch
# make NO_CHECKSUM=yes install

 
こんな感じですかねー。man がインストールできないので patch-man_Makefile を実行しますが、ports の Makefile で吸収することができませんでした。ダサくてすみません・・。

後、絶えず最新版の xf86-video-ati-master.tar.bz2 を取ってくるので make NO_CHECKSUM=yes します。 distinfo はオマケみたいなものですが、 xf86-video-ati-master.tar.bz2 がダウンロードできない時は distinfo の SIZE を書き換える必要があるかもしれません。

一回インストールしている場合は make deinstall してから make reinstall になると思います。

 
ThinkPad X100e のグラフィックスチップは RADEON HD 3200 の RS780M になります。フツーであれば x11-drivers/xf86-video-radeonhd を利用するのですが、最近の ATI ドライバには radeon ドライバが吸収されていてこっちのほうが進んでいるようです。

xf86-video-ati の ports は 6.13.0 なんですが、上記 URL が示すとおり最新版は 6.13.2 になります。 x11-drivers/xf86-video-ati の Makefile の PORTVERSION= を 6.13.2 にして make NO_CHECKSUM=yes install って手もあります。この場合 xorg.conf のドライバは Driver “radeon” にすると良いです。

で、xf86-video-ati のドライバを使うと何が良いか?と言うことなのですが、僕は持ってませんが DH5000 番台のグラフィックカードが利用できるみたいなんですね。

最新の ATI のグラフィックスチップを利用している人は xf86-video-ati の 6.13.2 もしくは開発中版の master を利用して、トライしてみるのもひとつの手かと思います。

ちなみに ThinkPad X100e の RADEON HD 3200 は前のエントリでも書きましたが、レジューム後に以下のメッセージが出力されて、利用できなくなります。

info: [drm] wait idle failed status : 0xA0003030 0x00000003

 
この文字列で gogo ってみると以下の URL が出てくるので、問題点については認識されていると思うので、早く改修されて、まずは master 版で提供されないかなー。

https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-ati/+bug/608665

などと思っているのでありすます。

これからは一週間に一度位の割合で xf86-video-ati を更新するのであります;-)。

あ。もっと美しい ports を書いてくれる方、絶賛募集中;-)。

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。

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 が認識してくれなかった。