ThinkPad X201 TabletとThinkPad X220 TabletにLinux (Debian sid)をインストールして, なかなか快適に使えるようになってきたので備忘を兼ねて設定方法を書いておく.
やったこと
ドライバ
とくに何もしなくても自動的にインストールされる. インストールされているものを見ると以下のものが関係ありそう.
ハードウェア認識の修正(X220のみ)
udevパッケージの設定がX20*にしか対応していなかったので, X220では修正が必要.
/lib/udev/rules.d/95-keymap.rules
-ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="ThinkPad X20* Tablet*", ATTR{[dmi/id]product_version}=="* Tablet", RUN+="keymap $name lenovo-thinkpad_x200_tablet" +ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="ThinkPad X2* Tablet*", ATTR{[dmi/id]product_version}=="* Tablet", RUN+="keymap $name lenovo-thinkpad_x200_tablet"
なぜかディスプレイを反転するとXが落ちるので, 反転時に何もしないようにする.
/etc/default/acpid
-#OPTIONS="" +OPTIONS="-S"
回転設定
ディスプレイの回転そのものはxrandr
コマンドでできる. ただし, それだけではペンタブレットの座標系が更新されないので, 縦長のディスプレイなのに座標系は横長にマップされておかしなことになる. ディスプレイが回転したことをペンダブレットドライバに教えるにはxsetwacom
というコマンドを使えばいいらしい.
......という辺りのことをよきにはからってくれるthink-rotate*1というものを作ってくれている人がいるので, それを使うのが早い!
think-rotateのインストール
$ sudo aptitude install git make python-docutils xinput $ git clone https://github.com/martin-ueding/think-rotate $ cd think-rotate $ make $ sudo make install
ベゼルボタンに回転コマンドを割り当て
ベゼルボタンにはキーコードが適切に割り当たっているはずなので, あとはそのキーコードのキーシンボルを設定すれば, コマンドのショートカットキーとして使える.
キーコードはxev
コマンドを起動して実際にボタンを押すことで確認できる(ついでにシンボルが設定されているかどうかも分かる). キーコードには何か未使用のシンボルを設定しないといけないので, ここではなんとなくそれっぽいXF86RotationKB
というシンボルを使うことにする.
$ vi ~/.Xmodmap
keycode 161 = XF86RotationKB NoSymbol XF86RotationKB
あとはシステム設定のキーボード設定で/usr/bin/think-rotate
のショートカットキーを設定するだけ.
ソフトウェアキーボード
think-rotateには回転のついでにKDE用のkvkbd
を起動する設定も書かれているけれど, ディスプレイを反転だけして回転せずに使う場合もあるし, ロック解除の時にも必要なので, 別途設定した方がよさそう.
GNOMEでも使えるものとしてはxvkbd
やmatchbox-keyboard
があるけれど, 設定してもロック画面で使えるようにならなかったので, Ubuntuのonboard
コマンドを無理矢理Debianに入れた.
onboard
のインストール
アーキテクチャに合わせてUbuntuのアーカイブを選ぶ. ここではamd64.
$ wget http://archive.ubuntu.com/ubuntu/pool/main/v/virtkey/python-virtkey_0.60.0-0ubuntu5_amd64.deb $ wget http://archive.ubuntu.com/ubuntu/pool/main/o/onboard/onboard_0.97.0-0ubuntu4_amd64.deb $ sudo dpkg -i python-virtkey_0.60.0-0ubuntu5_amd64.deb $ sudo dpkg -i onboard_0.97.0-0ubuntu4_amd64.deb
SuperキーがUbuntuのロゴになっていて専用のフォントが要るので, それも入れる. (Superキーの表示を変える方法はあるかも.)
$ mkdir -p ~/.fonts $ cd ~/.fonts $ wget http://font.ubuntu.com/download/ubuntu-font-family-0.80.zip $ unzip ubuntu-font-family-0.80.zip $ rm ubuntu-font-family-0.80.zip $ fc-cache .
onboard
は初回起動時にロック解除時に使用するかどうか訊かれるので, 使用すると答えれば自動的に設定してくれる.
ベゼルボタンから起動する
回転の場合と同じように, ベゼルボタンにショートカットキーを割り当てて, /usr/bin/onboard
を起動するようにできる. たとえば, X201の回転ボタンとロックボタンの間のボタン(ツールを起動するボタン?)で起動するようにしたければ, ~/.Xmodmap
に次のように書いて, ショートカットキーを設定すればよい.
keycode 149 = XF86Launch0 NoSymbol XF86Launch0
動作の確認
自由に書いてみる
Windowsで言うところのWindows Journalに相当するソフトウェアとしてxournalというのがあるので, これを使うとペンタブレットの使い心地がよくわかる.
個人的に数式や形式的な証明の導出木なんかを書くことが多くて, 清書する場合はTeXで書くとしても考えをまとめる途中のものを走り書きするには手書きするしかないので, これはとても重宝する. ノードグラフ等をよく描くという人にもきっと便利だろう. もちろん論文のPDFを読みながらメモをするのにも使える(PDFに注釈をつけるモードがある).
ペンタブレットによる自由帳は, 紙面の物理的制約がない分だけ紙よりも優れている. とくに
- 既に書いたものを移動/削除できる
- どこに書くか悩まなくてもとりあえず書けばいい
- ストローク単位での移動/削除もできる
- 線が重なりあっていても特定の線だけ綺麗に消せる
- 幅が足りなくなったら, 既に書いた部分を縮小すればいい
あたりの特徴が素晴らしい.
これらの特徴を最大限に活かすために, ペンのボタンを押したときの動作を自由選択ツールにしておくと便利.
手書き文字認識
ibusで動くibus-tegakiというのがあるのでそれを入れる. 以下をインストールしてibusの入力方式で「tegaki」を指定すれば日本語の手書き文字認識が使える.
$ aptitude install tegaki-recognize ibus-tegaki tegaki-zennia-japanese
ただし, 残念ながらアルファベットは認識してくれないらしい. (アルファベットはさすがにソフトウェアキーボードで打つ方が速いと思うので問題ない?)
ピンチ操作
X201/X220はマルチタッチにも対応していて, これもとくに何もしなくても動作するらしい. ただソフトウェアごとの対応状況は微妙. もう少しなんとかならないのか調べてみる必要あり.
- evince
- なんかスクロールしてしまう? ちゃんと拡大/縮小できたときもあったような
- eog
- 拡大/縮小できるけれど, 同じ操作でも拡大になったり縮小になったりよくわからない
雑感
Linuxでペンタブレットは問題が多くて辛いという印象で, なかなかWindowsから移行できずにいたので, なんとかだいたいうまく動くようになって本当によかった.
実は, Debian sidはDebian wheezyの上にkvm-qemuで仮想化して動かしていて, ホストOSの/etc/inittab
でX -query
することで, ホストOSのXサーバにゲストOSのXクライアントをXDMCPで接続させて使っているという変態仕様なので, さすがにこの環境では問題だらけだろう, と思っていたら, 仮想化なしでも必要な上記の設定以外に何もしていないのに全く問題なく動いてくれて, 感動した. X
すごい. (もちろん, ペンタブレット以外の部分では問題だらけなので, ノートPCの仮想化についてはまたそのうちまとめる.)