月別アーカイブ: 2014年7月

ThinkPad X240 の ClickPad と TouchPoint の設定をいじって使いやすくする

だいたい ClickPad の話なので、5ボタンタッチパッドが搭載されてる ThinkPad (T440 とか T440s とか T440p とか) にも適用できる……かも。

X240のここがクソポイント

  • TrackPoint 用のクリックボタンが廃止されて、その代わり上端部分がクリックできる ClickPad が搭載された
  • ClickPad で思ったように左クリックも右クリックもできない
  • これは ClickPad そのもののせいじゃないけど、センターボタンホールド + TrackPoint でのスクロールができない
  • ClickPad は普通のタッチパッドとしても使えるがために TrackPoint でポインティングしてるつもりが手の平に ClickPad があたってポインターがブレる
  • クリックボタンが死んでいるということは TouchPoint を使った操作はまともにできない

悲しいですね。僕は ThinkPad USB Keyboard を常に持ち歩き、ThinkPad につなげるという運用でカバーしていました。慣れればどうということはない。
……が、電車の中でも ThinkPad USB KeyBoard をつないで作業するのはちょっと辛かったりするので、真面目に対処します。

環境と目指す姿

  • 環境はみんな大好き Arch Linux (KDE)
  • 要は旧来の TrackPoint + TrackPoint 用のクリックボタンだけ、みたいな形にできたら嬉しい
  • ついでにセンターボタンをスクロールだけではなく中クリックとしても使えるようにする (実はWindows用ドライバーではできない)
  • ClickPad のタップによるクリックは無効、ポインティングにも一切使用しない

clickpad

作業

素の evdev だと TrackPoint + センターボタン でスクロール、というのができないので AUR から xf86-input-evdev-trackpoint を引っ張ってきます。

/etc/X11/xorg.conf/90-evdev-trackpoint.conf

重要なのは8行目と11行目だけ。

Option "SoftButtonAreas" "65% 0 0 0 50% 64% 0 0"

は最初の4つが右クリックの領域(左から左右上下の境界, 0は端まで)で、後ろの4つが中クリックの領域(同左)です。
物理的な配置と逆の順番になっています。
この場合、X軸方向の50-64%の領域は中クリック、X軸方向の65%より右の領域は右クリックになっています。
上下の境界は中・右クリックともに 0 を指定しているため、一番上から下までクリック可能です。

Option "TouchpadOff" "1"

は ClickPad のタップによるクリックとスクロールを完全に無効化するオプション(押し込んでクリックは有効)。

TrackPoint の感度と速度の設定

あとでかく

Linux でノートパソコンのフタを開いた時にスリープから復帰しないようにする

ノートパソコンをスリープにしたつもりで数時間持ち歩いて、次に開いた時は本体が激熱、バッテリーが残り5%みたいな事象、たまによくあって非常に厄介ですよね。
あれはなにかのきっかけで勝手にスリープから戻ってしまっていて、バッテリーが残り5%になった時に電源管理がまたスリープにしてくれてる、という感じだと思っていたので、電源ボタンを押したとき以外は一切スリープから戻らないようにします。

acpid とかが必要かもしれない。それと Arch Linux / KDE な ThinkPad X240 でしか検証してない。

だいたい使えそうな方法

/proc/acpi/wakeup を見てみると

Device  S-state   Status   Sysfs node
LID       S4    *enabled 
SLPB      S3    *enabled 
IGBE      S4    *enabled   pci:0000:00:19.0
EXP2      S4    *disabled  pci:0000:00:1c.1
XHCI      S3    *enabled   pci:0000:00:14.0
EHC1      S3    *enabled   pci:0000:00:1d.0

こんな感じのイカニモなリストが出てくる。今回の目的は LID ただそれだけ、なのでそれを書き換えてやる。
書き換えかたは root で

echo LID > /proc/acpi/wakeup

ってやってあげると LID の Status がトグルされる。実行結果は

Device  S-state   Status   Sysfs node
LID       S4    *disabled
SLPB      S3    *disabled
IGBE      S4    *disabled  pci:0000:00:19.0
EXP2      S4    *disabled  pci:0000:00:1c.1
XHCI      S3    *disabled  pci:0000:00:14.0
EHC1      S3    *enabled   pci:0000:00:1d.0

なぜか LID 以外もほとんど disabled になってしまった。理由は分からん。
多分これでうまく行くはず。

XHCI / EHCI は USB まわりの何かだった気がするけど、SLP8, IGBE, EXP2 は見たことも聞いたこともないのでご存知の方教えてください……。

あなたが systemd を溺愛している場合に使えそうな方法

systemd はなんでもできるからね。

この方法に関しては GNOME とか KDE みたいなマシマシWMを使ってる場合はそいつらが systemd の電源管理を “inhibit” して、無効にしてるらしい、ので使えないらしい。
Power Management – ArchWiki に2行ぐらい書いてる。

/etc/systemd/logind.conf の中で

HandleLidSwitch=ignore

にして、systemd-logind を restart するだけ。自分の環境では効かなかった。

下の方に LidSwitchIgnoreInhibited がコメントアウトされていたが、こちらも特に効果はなかった。

カレーを作れた

カレーを作れた。curryingではない。カレーだ。
カレーと言えば小学校のキャンプで作るような簡単な料理だという記憶があるので、カレールーの裏に書いてあるレシピを見て挑戦することにした。
まあ簡単だろうし。ね?

起承転

ことは論理的4日前で物理的4日前の7/7、日付が変わってからの時間に遡る。

心意気やよし、やる気全開だ。カレー作ったことないけど頑張るぞ。

この時、おしょーゆは20分後に訪れる悲劇のことは知る由もなく、レシピ通り20分間鍋に火をかけてれば良い感じになると思い、キッチンから離れだらだらSkypeで通話していた。

現実は厳しい。

果たして何が起こったのか。そう、煮込みを強火でしていたのだ。料理をほとんどしたことがないおしょーゆは煮込みは弱火でやるものだと露知らず、グツグツ煮えたぎり、猛烈な勢いで湯気を吐き出す鍋を気に留めることもなく高校の友人との通話を楽しんでいたのである。

レシピに示された20分後――。おしょーゆを迎えたのは、セットしてもいないキッチンタイマーの音ではなく、ガスコンロの高温警報であった。
いや待てよ、なんでお湯が入ってるのに警報がなるほど高温になるんだ……? そう思いながら鍋をのぞき込むと、そこにはあるはずのお湯はなく、じゃがいもが黒くなっていて、人参が焦げ、タマネギに至ってはもはや原型をとどめていない、文字通りの地獄が待ち受けていたのであった。

というわけでカレーに再挑戦した。