[Kubuntu 9.04] トラックポイントの最適化

2009/07/25PC::Linux/BSD

Kubuntu 9.04/amd64 環境下でトラックポイントデバイスをWindows環境下と同様に利用できるようにしたときのメモ。

環境

  • Kubuntu 9.04(Jaunty Jackalope)/amd64 Desktop
  • Space Saver II Keyboard

設定

HALのトラックポイント用設定ファイル

Kubuntu 8.04を利用していたときにはxorg.confにトラックポイントの設定を記述していたが、Kubuntu 9.04では、/etc/hal/fdi/policy/以下に設定ファイルを置くようになっている。

上記記事を参考に/etc/hal/fdi/policy/trackpoint.fdiを作成

<match key="info.product" string="TPPS/2 IBM TrackPoint">
   <merge key="input.x11_options.EmulateWheel" type="string">true</merge>
   <merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
   <merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
   <merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
   <merge key="input.x11_options.ZAxisMapping" type="string">4 5</merge>
   <merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
</match>

これでセンターボタン押下時にトラックポイントを上下左右に動かすことで縦横のスクロールが可能となる。

トラックポイントの感度とスピードの調整

上記記事によると、/sys/devices/platform/i8042/serio? 以下にあるspeedとsensitivityの値を変更してやればいいらしい。が、再起動すると初期化されてしまうため、自動的に最適な値にしてやるようにします。

以下のような方針にて設定を行います。

  1. 私の環境では/sys/devices/platform/i8042/serio1/以下のspeedとsensitiveに対して設定をしてやる必要がありますが、serioの後の数字は固定とは限らないため、udevでマウスデバイスを固定する
  2. udevで固定されたデバイスに対してudevadmを使ってトラックポイントのserio?を調べる
  3. root権限で設定を行わなければならないのでrc.localに設定を記述する
トラックポイントデバイスのためのudevルールの作成

まずはdmesgでトラックポイントデバイスの情報を取得します。

$ dmesg | grep input | grep TPPS/2
[    9.004286] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/input/input10

続いて、この情報を元にudevadmを用いて*1デバイスの詳細情報を取得します。マウスの実態はinput10ディレクトリ以下のmouse?になるので、それに対する情報を取得する点に注意してください。

udevadm info -a -p /sys/devices/platform/i8042/serio1/input/input10/mouse3/

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device     
found, all possible attributes in the udev rules key format.         
A rule to match, can be composed by the attributes of the device     
and the attributes from one single parent device.                    

  looking at device '/devices/platform/i8042/serio1/input/input10/mouse3':
    KERNEL=="mouse3"                                                      
    SUBSYSTEM=="input"                                                    
    DRIVER==""                                                            

  looking at parent device '/devices/platform/i8042/serio1/input/input10':
    KERNELS=="input10"                                                    
    SUBSYSTEMS=="input"                                                   
    DRIVERS==""                                                           
    ATTRS{name}=="TPPS/2 IBM TrackPoint"                                  
    ATTRS{phys}=="isa0060/serio1/input0"                                  
    ATTRS{uniq}==""                                                       
    ATTRS{modalias}=="input:b0011v0002p000Ae0000-e0,1,2,k110,111,112,r0,1,amlsfw"

  looking at parent device '/devices/platform/i8042/serio1':
    KERNELS=="serio1"
    SUBSYSTEMS=="serio"
    DRIVERS=="psmouse"
    ATTRS{description}=="i8042 AUX port"
    ATTRS{modalias}=="serio:ty01pr00id00ex00"
    ATTRS{bind_mode}=="auto"
    ATTRS{sensitivity}=="192"
    ATTRS{speed}=="97"
    ATTRS{inertia}=="6"
    ATTRS{reach}=="10"
    ATTRS{draghys}=="255"
    ATTRS{mindrag}=="20"
    ATTRS{thresh}=="8"
    ATTRS{upthresh}=="255"
    ATTRS{ztime}=="38"
    ATTRS{jenks}=="135"
    ATTRS{press_to_select}=="0"
    ATTRS{skipback}=="0"
    ATTRS{ext_dev}=="1"
    ATTRS{protocol}=="TPPS/2"
    ATTRS{rate}=="100"
    ATTRS{resolution}=="200"
    ATTRS{resetafter}=="5"
    ATTRS{resync_time}=="0"

  looking at parent device '/devices/platform/i8042':
    KERNELS=="i8042"
    SUBSYSTEMS=="platform"
    DRIVERS=="i8042"
    ATTRS{modalias}=="platform:i8042"

  looking at parent device '/devices/platform':
    KERNELS=="platform"
    SUBSYSTEMS==""
    DRIVERS==""

ここから、udevルールに使えそうな値を選んでルールを作ります。

/etc/udev/rules.d/99-local.rules

# udev rule for IBM TrackPoint IV
KERNEL=="mouse?", SUBSYSTEM=="input", ATTRS{name}=="TPPS/2 IBM TrackPoint", NAME="input/%k", SYMLINK+="input/tp4"

これで、/dev/input/tp4にトラックポイントデバイスが作成されます。

rc.localルールにトラックポイントの感度の調整を記述

udevで作成した/dev/input/tp4をudevadmを使用してディレクトリを抽出。その後、sensitivityとspeedを設定する。

/etc/rc.local

temp=`udevadm info -a -p \`udevadm info -q path -n /dev/input/tp4\` \
        | grep -v input \
        | grep looking \
        | sed -e 's/'\''/"/g' \
        | cut -d '"' -f 2 \
        | head -1`
Tp4Sensitivity=/sys/$temp/sensitivity
Tp4Speed=/sys/$temp/speed
# Configuare for TrackPoint Device
echo -n 192 > $Tp4Sensitivity
echo -n 97 > $Tp4Speed

上記の例ではsensitivityに192, speedに97を設定しています。

*1 : 他のディストリビューションではudevinfoの場合もあります。

[Kubuntu 9.04/amd64] SCIM+Anthyにおけるかな入力の配列調整

2009/07/12PC::Linux/BSD

09/07/12追記 インストール時のキーボードにJapan以外(Japan - Kana, Japan - OADG 109A)を選択すると以下のような挙動になるようです。
xmodmapで騙す場合は以下の方法を参考にしてください。


Kubuntu 9.04環境では、SCIM+Anthyの環境でかな入力を行う場合、配列に次のような相違があります。

  • 「を」入力キー: Shift +「へ」
  • 「ー」入力キー: Shift +「ー」

一方、キーボードの表記通りの配列は以下のようになっています。

  • 「を」入力キー: Shift +「わ」
  • 「ー」入力キー: 「ー」単独

これらの違いを意識して入力するのは不便なので調整を行った時のメモ。
ちなみに、Kubuntu 9.04/i386環境ではこの様な調整は必要なく、表記通りの配列で入力を行うことが可能です。

環境

  • Kubuntu 9.04(Jaunty Jackalope)/amd64 Desktop
  • anthy 9100h
  • scim 1.4.7
  • scim-anthy 1.2.4

対処方法

.Xmodmapを作成し、問題のキーの調整を行う。具体的には次の通り。

$ xmodmap -pke > ~/.Xmodmap

作成してできた.Xmodmapを以下のように変更

! keycode 19  = 0 NoSymbol 0 NoSymbol 0
keycode 19  = 0 asciitilde 0 asciitilde 0 asciitilde

! keycode 132 = yen bar yen bar yen bar
keycode 132 = bar bar bar yen bar yen

Kubuntu 8.04の時には~/.Xmodmapを自動的に読み込んでくれていたが、Kubuntu 9.04では読み込んでくれなくなっている。このため、.Xmodmapを自動的に読み込ますために、~/.kde/Autostart/ に以下のスクリプトを作成する。

~/.kde/Autostart/load_xmodmap.sh

#!/bin/sh
xmodmap ~/.Xmodmap

これで、WindowsなどでのJISかな入力環境と同様に入力できるようになります。

[Kubuntu 9.04] PrintScreenキー押下でKSnapshotを起動させる

2009/07/12PC::Linux/BSD

KDE3.5 on Kubuntu 8.04の環境では、PrintScreenキーを押下するとKSnapshotが起動するように設定されていましたが、KDE4.2 on Kubuntu 9.04の環境ではPrintScreenキーを押下してもKSnapshotは起動しないようになっています。

ちなみに、デフォルトの設定では、デスクトップのスクリーンショットの取得はCtrl+PrintScreenで、ウィンドウのスクリーンショットの取得はAlt+PrintScreenで取得できるようになっている*1

ksnapshot1.jpg

また、khotkeys*2の設定にそれらしいものはあるのですが、こちらにPrintScreenを割り当てても期待通りの動作はしません。

ksnapshot2.jpg

KDE4.2 on Kubuntu 9.04環境でPrintScreen押下でKSnapshotが起動できるように設定したときのメモ。

*1 : KDEシステム設定 - キーボードとマウス - グローバルキーボードショートカット - KWin

*2 : KDEシステム設定 - キーボードとマウス - グローバルキーボードショートカット - khotkeys

環境

  • Kubuntu 9.04(Jaunty Jackalope)/amd64 Desktop
  • KDE4.2.2

手順

  1. グローバルキーボードショートカットでPrintScreenにアサインされているものを外す
  2. 「KDEシステム設定 - 入力アクション」を開く
  3. KMenuEditを右クリックし「新しいグローバルショートカット - Kメニューの項目」を選択
  4. 適当な名前を付け、ショートカットに「PrintScreen」、アプリケーションから「KSnapshot*3」を選択する
ksnapshot3.jpg

*3 : ksnapshot -caption "&c"

参考

[Kubuntu 9.04/amd64] Adobe Flash Plugin 64bit on Firefox 3.0

2009/07/11PC::Linux/BSD

Kubuntu 9.04/amd64環境でFirefox + Adobe Flash Plugin*1の組み合わせではFlashコンテンツの再生がうまくできない。このため、Ubuntuのリポジトリからインストールするのではなく、AdobeからダウンロードしたAdobe Flash Player 64bit版を手動でインストールすることで回避した。その時のメモ。

*1 : flushplugin-nonfree

環境

  • Kubuntu 9.04(Jaunty Jackalope)/amd64 Desktop
  • Firefox 3.0.11
  • Adobe Flash Player 10.0.22.87/x86_64

導入手順

  1. Firefoxが起動している場合は終了する
  2. Adobe LabsからAdobe Flash Player 64-bit Plugin for Linuxをダウンロード
  3. tarballを展開するとできるlibflashplayer.soを、Flashを再生させたいユーザのFirefoxの設定が保存されているディレクトリに配置する

以下は具体的な手順。

$ wget http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.22.87.linux-x86_64.so.tar.gz
$ tar xvzf libflashplayer-10.0.22.87.linux-x86_64.so.tar.gz
~/.mozilla/plugins ディレクトリがない場合は次の手順が必要
$ mkdir ~/.mozilla/plugins
$ mv ./libflashplayer.so ~/.mozilla/plugins

問題なく導入されるとFirefoxの「about:plugins」からlibflashplayer.soが導入されていることが確認できます。あとは適当なFlashコンテンツを再生してみて、問題なく動作することを確認してください。

64bit-flash.png