以前のエントリで「xmodmap と setxkbmap。」というのを書いているのですが、そのときに xmodmap -pke というコマンドを打ってみて、このコマンドが出力した情報をじっくりと眺めてみると何やら色々な設定があるようなので試してみることにしました。
色々な設定というのは、例えば NotePC において Fn キー + テンキー同時押しでボリューム調整を行う、であるとか画面の明るさを変更する、であるとか suspend/resume であるとかその辺りのことができるようなんですね。
通常この辺りの制御は ACPI のほうでやっていて、以前であれば、僕の場合、今回は ThinkPad X100e で試してみましたが、 acpi_ibm.ko というのを kldload して /usr/local/sbin/acpi_oem_exec.sh とかを作成して呪文のような文字列と数値を書いて devd に対応させる。というのが一般的だったんですけども。
まぁ、その辺りは man acpi_ibm してみて、その内容でスクリプトを書くんですけど、なんか大変そうで「動かなくてもいやー。」となっていたんですね。
今までは ACPI で制御していた Fn キー + テンキー同時押しの機能がどうやら xmodmap でできるらしいんですね。と、いうことで早速設定してみましょう。
まずは xmodmap -pke でどんなオプションが指定できるのかを探してみます。
|
なるほど。この中にキーボード配列に合いそうな XF86 なオプションを ~/.xmodmaprc に記述していけば良いんですね。などということが解りました。
上にキーボードの写真を掲載しましたがちっこくて見えないですかねf(^^;;。それに合わせて今回 ThinkPad X100e に設定したのは以下の通り。
|
以前から 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(^^;。キーボードに書いてあるのでそれに合わせてキーをマッピングしてみた。と、いうのが素直な感想で。けど、簡単に設定可能なものは一応設定して見ましょう。という内容のエントリなのであります;-)。