「トラックポイント」の版間の差分
細 (文字列「[[zh-CN:」を「[[zh-hans:」に置換) |
|||
(4人の利用者による、間の9版が非表示) | |||
3行目: | 3行目: | ||
[[en:TrackPoint]] |
[[en:TrackPoint]] |
||
[[zh-hans:TrackPoint]] |
[[zh-hans:TrackPoint]] |
||
− | TrackPoint はキーボードの中央に位置するポインティングスティックに対する Lenovo の登録商標です。トラックポイントは {{Pkg|xf86-input-evdev}} や {{Pkg|xf86-input-libinput}} でサポートされていま |
+ | TrackPoint はキーボードの中央に位置するポインティングスティックに対する Lenovo の登録商標です。トラックポイントは {{Pkg|xf86-input-evdev}} や {{Pkg|xf86-input-libinput}} でサポートされています。 |
− | デフォルトの [[Xorg]] ではクリックとポイントをサポートしていますが、中クリックやスクロールを使うには設定が必要です。 |
+ | デフォルトの [[Xorg]] ではクリックとポイントをサポートしていますが、{{ic|evdev}} ドライバーで中クリックやスクロールを使うには設定が必要です。 |
== GUI の設定 == |
== GUI の設定 == |
||
− | {{ |
+ | {{AUR|gpointing-device-settings}} パッケージを[[インストール]]してください。 |
+ | |||
+ | {{Note|上記のソフトウェアはメンテナンスが止まっています (最後のリリースは2013年です)。{{Pkg|xf86-input-libinput}} を使用する場合、細かい設定ができない可能性があります。}} |
||
==中ボタンのスクロール== |
==中ボタンのスクロール== |
||
18行目: | 20行目: | ||
{{hc|~/.xinitrc| |
{{hc|~/.xinitrc| |
||
− | + | xinput set-prop "''TPPS/2 IBM TrackPoint''" "Evdev Wheel Emulation" 1 |
|
+ | xinput set-prop "''TPPS/2 IBM TrackPoint''" "Evdev Wheel Emulation Button" 2 |
||
− | |||
− | + | xinput set-prop "''TPPS/2 IBM TrackPoint''" "Evdev Wheel Emulation Timeout" 200 |
|
− | + | xinput set-prop "''TPPS/2 IBM TrackPoint''" "Evdev Wheel Emulation Axes" 6 7 4 5 |
|
− | tpset "Evdev Wheel Emulation Timeout" 200 |
||
− | tpset "Evdev Wheel Emulation Axes" 6 7 4 5 |
||
− | tpset "Device Accel Constant Deceleration" 0.95 |
||
}} |
}} |
||
32行目: | 31行目: | ||
}} |
}} |
||
+ | === Xorg の設定 === |
||
− | == タップで選択 == |
||
− | |||
− | TrackPoint ではタッチパッドのような tap-to-click 機能が使えます。手動で有効にするには: |
||
− | |||
− | # echo -n 1 > /sys/devices/platform/i8042/serio1/press_to_select |
||
− | |||
− | {{Note|{{ic|press_to_select}} ファイルの位置は使用するデバイスによって変わります。トラックポイントとタッチパッドが両方存在するコンピュータでは {{ic|/sys/devices/platform/i8042/serio1/serio2/}} のパスが使われますが、トラックポイントデバイスがしか存在しない場合は {{ic|/sys/devices/platform/i8042/serio1/}} のパスが使われます。}} |
||
− | |||
− | == udev の設定ルール == |
||
− | 以下のルールは起動時にトラックポイントの'''速度'''を上げて'''タップによる選択''' (上を参照) を有効にします。値は自由に変更することができ、{{ic|/sys/devices/platform/i8042/serio1/serio2/}} のファイルに他の変更を加えることもできます。ルールはトラックポイントしか存在しないデバイスでも機能します。 |
||
− | |||
− | {{hc|1=/etc/udev/rules.d/10-trackpoint.rules|2= |
||
− | ACTION=="add", SUBSYSTEM=="input", ATTR{name}=="TPPS/2 IBM TrackPoint", ATTR{device/sensitivity}="240" |
||
− | }} |
||
− | |||
− | == Xorg の設定 == |
||
トラックポイントで中マウスボタンを押すことによるスクロールを有効にするには、{{ic|/etc/X11/xorg.conf.d/20-thinkpad.conf}} を作成してください ({{ic|TPPS/2 IBM TrackPoint}} は ''xinput'' で確認できるデバイス名に置き換えてください): |
トラックポイントで中マウスボタンを押すことによるスクロールを有効にするには、{{ic|/etc/X11/xorg.conf.d/20-thinkpad.conf}} を作成してください ({{ic|TPPS/2 IBM TrackPoint}} は ''xinput'' で確認できるデバイス名に置き換えてください): |
||
53行目: | 37行目: | ||
Section "InputClass" |
Section "InputClass" |
||
Identifier "Trackpoint Wheel Emulation" |
Identifier "Trackpoint Wheel Emulation" |
||
+ | Driver "evdev" |
||
MatchProduct "''TPPS/2 IBM TrackPoint''" |
MatchProduct "''TPPS/2 IBM TrackPoint''" |
||
MatchDevicePath "/dev/input/event*" |
MatchDevicePath "/dev/input/event*" |
||
61行目: | 46行目: | ||
Option "YAxisMapping" "4 5" |
Option "YAxisMapping" "4 5" |
||
EndSection |
EndSection |
||
+ | |||
+ | === 2ボタントラックポイント === |
||
+ | ボタンが2つあるトラックポイントの場合、{{Pkg|xf86-input-libinput}} を使うと、スクロールボタンを右クリックボタンに設定することができます。 |
||
+ | |||
+ | ''device'' を {{ic|xinput}} を実行するとわかるデバイス名に置き換えてください: |
||
+ | |||
+ | $ xinput set-prop "''device''" "libinput Button Scrolling Button" 3 |
||
+ | |||
+ | == Sysfs 属性 == |
||
+ | |||
+ | トラックポイントでは属性を {{ic|/sys/devices/platform/i8042/serio1/}} のファイルから変更することができます。例えば、手動でタップでクリック機能を有効にするには: |
||
+ | |||
+ | # echo -n 1 > /sys/devices/platform/i8042/serio1/press_to_select |
||
+ | |||
+ | {{Note|{{ic|press_to_select}} ファイルの位置は使用するデバイスによって変わります。トラックポイントとタッチパッドが両方存在するコンピュータでは {{ic|/sys/devices/platform/i8042/serio1/serio2/}} のパスが使われますが、トラックポイントデバイスがしか存在しない場合は {{ic|/sys/devices/platform/i8042/serio1/}} のパスが使われます。}} |
||
+ | |||
+ | === 起動時に設定 === |
||
+ | |||
+ | ==== udev ルール ==== |
||
+ | |||
+ | このルールは、トラックポイントの'''速度'''を上げ、起動時に'''タップして選択'''(上記を参照)できるようにします。 |
||
+ | |||
+ | {{hc|1=/etc/udev/rules.d/10-trackpoint.rules|2= |
||
+ | ACTION=="add", SUBSYSTEM=="input", ATTR{name}=="TPPS/2 IBM TrackPoint", ATTR{device/sensitivity}="240", ATTR{device/press_to_select}="1" |
||
+ | }} |
||
+ | |||
+ | ==== systemd.path ユニット ==== |
||
+ | |||
+ | ブートプロセスの中で {{ic|/sys/devices/platform/i8042/serio1/serio2/}} の属性やファイルが現れるのが遅すぎて上記の udev ルールを使う方法が使えないという [https://bbs.archlinux.org/viewtopic.php?id=199998 報告] がフォーラムにあります。代わりに ''systemd.path'' ユニットを使ってトラックポイントの属性を設定することができます。 |
||
+ | |||
+ | まず {{ic|/usr/local/bin/trackpoint_configuration.sh}} とう名前のスクリプトを作成してください。スクリプトの中で [[#Sysfs 属性]]に書かれているようにトラックポイントの属性を設定します。それから以下の systemd ユニットを作成してください。スクリプトで変更する属性は全て {{ic|PathExists}} に指定してください。 |
||
+ | |||
+ | {{hc|/etc/systemd/system/trackpoint_parameters.path|2= |
||
+ | [Unit] |
||
+ | Description=Watch for, and modify, Trackpoint attributes |
||
+ | |||
+ | [Path] |
||
+ | PathExists=/sys/devices/platform/i8042/serio1/press_to_select |
||
+ | |||
+ | [Install] |
||
+ | WantedBy=default.target |
||
+ | }} |
||
+ | |||
+ | {{hc|/etc/systemd/system/trackpoint_parameters.service|2= |
||
+ | [Unit] |
||
+ | Description=Set TrackPoint attributes |
||
+ | |||
+ | [Service] |
||
+ | ExecStart=/usr/local/bin/trackpoint_configuration.sh |
||
+ | }} |
||
+ | |||
+ | 最後に {{ic|trackpoint_parameters.path}} を[[起動]]・[[有効化]]してください。 |
||
+ | |||
+ | ==== udev hwdb エントリ ==== |
||
+ | |||
+ | Libinput は [https://github.com/systemd/systemd/blob/master/hwdb/70-pointingstick.hwdb udev ハードウェアデータベース] のエントリに基づいて sysfs にパラメータを適用します。Wayland コンポジタでは libinput が唯一の入力インターフェイスになります。Wayland コンポジタや X セッションを起動する前に変更を行っても上書きされてしまいます。 |
||
+ | |||
+ | libinput のデフォルト設定を上書きするには、ローカル hwdb エントリを追加してください: |
||
+ | |||
+ | {{hc|/etc/udev/hwdb.d/99-trackpoint.hwdb|2= |
||
+ | evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??60?:* |
||
+ | POINTINGSTICK_SENSITIVITY=250 |
||
+ | }} |
||
+ | |||
+ | [https://github.com/systemd/systemd/blob/master/hwdb/70-pointingstick.hwdb udev ハードウェアデータベース] で様々なベンダー/モデルキーを見つけることができます。なお、[https://cgit.freedesktop.org/wayland/libinput/commit/src/evdev.c?id=3669fa10dff95371658647272ef7ac7a3ef29a61 このコミットから]、libinput は POINTINGSTICK_CONST_ACCEL 設定パラメータを無視し、POINTINGSTICK_SENSITIVITY (0から255の値をとります) を参照します。 |
||
+ | |||
+ | 変更を適用するには udev の hwdb をリロードします: |
||
+ | |||
+ | # udevadm hwdb --update |
||
+ | |||
+ | コンポジタや X セッションを再起動する前に変更をテストするには、まず以下のコマンドでデバイスの入力ノード {{ic|/dev/input/eventX}} を確認してください: |
||
+ | |||
+ | # libinput-list-devices |
||
+ | |||
+ | そして以下のコマンドを実行してデバッグ出力を生成: |
||
+ | |||
+ | # udevadm trigger /sys/class/input/eventX |
||
+ | # udevadm test /sys/class/input/eventX |
||
+ | |||
+ | {{Note|上記のコマンドでは hwdb からパラメータは適用されませんが、{{ic|udevadm test}} コマンドの出力で変更を確認できます。}} |
||
+ | |||
+ | 最後に、Wayland コンポジタや X セッションを再起動して変更を適用してください。 |
||
+ | |||
+ | ==== device-quirks ==== |
||
+ | |||
+ | {{ic|libinput}} は {{ic|.ini}} スタイルの設定ファイルに移行しており、トラックポイントのパラメータを {{ic|/etc/libinput/}} 内で上書きすることで調節できます。 |
||
+ | |||
+ | 例えば、トラックポイントの速度を上書きするには、{{ic|/etc/libinput/local-overrides.quirks}} を次のように作成してください: |
||
+ | [Trackpoint Override] |
||
+ | MatchUdevType=pointingstick |
||
+ | AttrTrackpointMultiplier=0.75 |
||
+ | |||
+ | 詳細については、公式ドキュメント [https://wayland.freedesktop.org/libinput/doc/latest/device-quirks.html#installing-temporary-local-device-quirks libinput: Installing temporary local device quirks] を参照してください。 |
||
+ | |||
+ | {{Warning|Model quirks は内部 API であり、後方互換性の保証なく突然変更されることがありえます。ディストリビューション側が libinput をアップデートするまでの方策としてのみ利用するようにしてください。}} |
||
== トラブルシューティング == |
== トラブルシューティング == |
||
68行目: | 148行目: | ||
対処方法は {{ic|psmouse}} モジュールに {{ic|1=proto=bare}} を指定することです。ただし、これを設定するとクリックパッドによるスクロールと2本指の中クリックが無効化されてしまいます: |
対処方法は {{ic|psmouse}} モジュールに {{ic|1=proto=bare}} を指定することです。ただし、これを設定するとクリックパッドによるスクロールと2本指の中クリックが無効化されてしまいます: |
||
− | modprobe psmouse proto=bare |
+ | # modprobe psmouse proto=bare |
+ | |||
+ | === トラックポイントのボタンが動かない場合がある === |
||
+ | |||
+ | BIOS でタッチパッドを無効化すると間違ったボタンが無効になったり、トラックポイントのボタンが安定して動作しない場合、{{ic|psmouse}} モジュールに {{ic|1=proto=imps}} を設定することで解決できます: |
||
+ | # rmmod psmouse; modprobe psmouse proto=imps |
||
+ | |||
+ | === サスペンド後に二本指でのスクロールが機能しなくなる === |
||
+ | |||
+ | いくつかのラップトップでは、psmouse が起動に失敗することや、サスペンド後に復帰しないことがあります: |
||
+ | |||
+ | psmouse serio1: synaptics: Unable to initialize device |
||
+ | |||
+ | カーネルコマンドラインに {{ic|1=psmouse.synaptics_intertouch=0}} を追記してみてください。 |
||
+ | |||
+ | === Trackpoint moves on its own === |
||
+ | |||
+ | On some ThinkPads the TrackPoint cursor moves spontaneously after release and it does not stop. This happens because of a low value of the {{ic|drift_time}} parameter (e.g. 5), you need to change it to 25 or 30 to fix the problem. This can be done with a [[udev]] rule: |
||
+ | |||
+ | {{hc|/etc/udev/rules.d/10-trackpoint.rules|2= |
||
+ | ACTION=="add", SUBSYSTEM=="input", ATTR{name}=="TPPS/2 IBM TrackPoint", ATTR{device/drift_time}="25" |
||
+ | }} |
||
== 参照 == |
== 参照 == |
||
− | * [ |
+ | * [https://www.thinkwiki.org/wiki/How_to_configure_the_TrackPoint How to configure the TrackPoint - ThinkWiki] |
* [https://gist.githubusercontent.com/noromanba/11261595/raw/478cf4c4d9b63f1e59364a6f427ffccd63db5e1e/thinkpad-trackpoint-speed.mkd Trackpoint speed] |
* [https://gist.githubusercontent.com/noromanba/11261595/raw/478cf4c4d9b63f1e59364a6f427ffccd63db5e1e/thinkpad-trackpoint-speed.mkd Trackpoint speed] |
||
* [https://askubuntu.com/questions/37824/what-is-the-best-way-to-configure-a-thinkpads-trackpoint/553926 What is the best way to configure a Thinkpad's TrackPoint?] |
* [https://askubuntu.com/questions/37824/what-is-the-best-way-to-configure-a-thinkpads-trackpoint/553926 What is the best way to configure a Thinkpad's TrackPoint?] |
2023年5月14日 (日) 09:16時点における最新版
TrackPoint はキーボードの中央に位置するポインティングスティックに対する Lenovo の登録商標です。トラックポイントは xf86-input-evdev や xf86-input-libinput でサポートされています。
デフォルトの Xorg ではクリックとポイントをサポートしていますが、evdev
ドライバーで中クリックやスクロールを使うには設定が必要です。
目次
GUI の設定
gpointing-device-settingsAUR パッケージをインストールしてください。
中ボタンのスクロール
xf86-input-libinput を使用する場合、デフォルトで中ボタンのスクロールが有効になります。
xf86-input-evdev を使用する場合、中ボタンのスクロールは xorg-xinput パッケージの xinput でサポートされます。例:
~/.xinitrc
xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation" 1 xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Button" 2 xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Timeout" 200 xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Axes" 6 7 4 5
Xorg の設定
トラックポイントで中マウスボタンを押すことによるスクロールを有効にするには、/etc/X11/xorg.conf.d/20-thinkpad.conf
を作成してください (TPPS/2 IBM TrackPoint
は xinput で確認できるデバイス名に置き換えてください):
Section "InputClass" Identifier "Trackpoint Wheel Emulation" Driver "evdev" MatchProduct "TPPS/2 IBM TrackPoint" MatchDevicePath "/dev/input/event*" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" Option "Emulate3Buttons" "false" Option "XAxisMapping" "6 7" Option "YAxisMapping" "4 5" EndSection
2ボタントラックポイント
ボタンが2つあるトラックポイントの場合、xf86-input-libinput を使うと、スクロールボタンを右クリックボタンに設定することができます。
device を xinput
を実行するとわかるデバイス名に置き換えてください:
$ xinput set-prop "device" "libinput Button Scrolling Button" 3
Sysfs 属性
トラックポイントでは属性を /sys/devices/platform/i8042/serio1/
のファイルから変更することができます。例えば、手動でタップでクリック機能を有効にするには:
# echo -n 1 > /sys/devices/platform/i8042/serio1/press_to_select
起動時に設定
udev ルール
このルールは、トラックポイントの速度を上げ、起動時にタップして選択(上記を参照)できるようにします。
/etc/udev/rules.d/10-trackpoint.rules
ACTION=="add", SUBSYSTEM=="input", ATTR{name}=="TPPS/2 IBM TrackPoint", ATTR{device/sensitivity}="240", ATTR{device/press_to_select}="1"
systemd.path ユニット
ブートプロセスの中で /sys/devices/platform/i8042/serio1/serio2/
の属性やファイルが現れるのが遅すぎて上記の udev ルールを使う方法が使えないという 報告 がフォーラムにあります。代わりに systemd.path ユニットを使ってトラックポイントの属性を設定することができます。
まず /usr/local/bin/trackpoint_configuration.sh
とう名前のスクリプトを作成してください。スクリプトの中で #Sysfs 属性に書かれているようにトラックポイントの属性を設定します。それから以下の systemd ユニットを作成してください。スクリプトで変更する属性は全て PathExists
に指定してください。
/etc/systemd/system/trackpoint_parameters.path
[Unit] Description=Watch for, and modify, Trackpoint attributes [Path] PathExists=/sys/devices/platform/i8042/serio1/press_to_select [Install] WantedBy=default.target
/etc/systemd/system/trackpoint_parameters.service
[Unit] Description=Set TrackPoint attributes [Service] ExecStart=/usr/local/bin/trackpoint_configuration.sh
最後に trackpoint_parameters.path
を起動・有効化してください。
udev hwdb エントリ
Libinput は udev ハードウェアデータベース のエントリに基づいて sysfs にパラメータを適用します。Wayland コンポジタでは libinput が唯一の入力インターフェイスになります。Wayland コンポジタや X セッションを起動する前に変更を行っても上書きされてしまいます。
libinput のデフォルト設定を上書きするには、ローカル hwdb エントリを追加してください:
/etc/udev/hwdb.d/99-trackpoint.hwdb
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??60?:* POINTINGSTICK_SENSITIVITY=250
udev ハードウェアデータベース で様々なベンダー/モデルキーを見つけることができます。なお、このコミットから、libinput は POINTINGSTICK_CONST_ACCEL 設定パラメータを無視し、POINTINGSTICK_SENSITIVITY (0から255の値をとります) を参照します。
変更を適用するには udev の hwdb をリロードします:
# udevadm hwdb --update
コンポジタや X セッションを再起動する前に変更をテストするには、まず以下のコマンドでデバイスの入力ノード /dev/input/eventX
を確認してください:
# libinput-list-devices
そして以下のコマンドを実行してデバッグ出力を生成:
# udevadm trigger /sys/class/input/eventX # udevadm test /sys/class/input/eventX
最後に、Wayland コンポジタや X セッションを再起動して変更を適用してください。
device-quirks
libinput
は .ini
スタイルの設定ファイルに移行しており、トラックポイントのパラメータを /etc/libinput/
内で上書きすることで調節できます。
例えば、トラックポイントの速度を上書きするには、/etc/libinput/local-overrides.quirks
を次のように作成してください:
[Trackpoint Override] MatchUdevType=pointingstick AttrTrackpointMultiplier=0.75
詳細については、公式ドキュメント libinput: Installing temporary local device quirks を参照してください。
トラブルシューティング
トラックポイントが認識されない、あるいは数分後に認識される
カーネルのバグが原因です。参照: https://bugzilla.kernel.org/show_bug.cgi?id=33292
対処方法は psmouse
モジュールに proto=bare
を指定することです。ただし、これを設定するとクリックパッドによるスクロールと2本指の中クリックが無効化されてしまいます:
# modprobe psmouse proto=bare
トラックポイントのボタンが動かない場合がある
BIOS でタッチパッドを無効化すると間違ったボタンが無効になったり、トラックポイントのボタンが安定して動作しない場合、psmouse
モジュールに proto=imps
を設定することで解決できます:
# rmmod psmouse; modprobe psmouse proto=imps
サスペンド後に二本指でのスクロールが機能しなくなる
いくつかのラップトップでは、psmouse が起動に失敗することや、サスペンド後に復帰しないことがあります:
psmouse serio1: synaptics: Unable to initialize device
カーネルコマンドラインに psmouse.synaptics_intertouch=0
を追記してみてください。
Trackpoint moves on its own
On some ThinkPads the TrackPoint cursor moves spontaneously after release and it does not stop. This happens because of a low value of the drift_time
parameter (e.g. 5), you need to change it to 25 or 30 to fix the problem. This can be done with a udev rule:
/etc/udev/rules.d/10-trackpoint.rules
ACTION=="add", SUBSYSTEM=="input", ATTR{name}=="TPPS/2 IBM TrackPoint", ATTR{device/drift_time}="25"