====== クリックロック ======
===== 概要 =====
* ノート PC のタッチパッドで操作をしているときに、ドラッグの範囲が広すぎて、タップ操作だけで範囲を選択できない場合の対処方法を紹介する。
* クリックロックを使うと上記問題は解決できる。
* クリックロックとは、ドラッグ状態を保持する設定であり、Windows にも一応存在する。
* クリックロック時のドラッグ操作
- ダブルタップして、2 回目のタップ後に手を離さず移動する。→ ドラッグ状態になる。
* 移動量は少しで良い。
- 指を移動させ、ドラッグによる選択範囲を調整する。
* クリックロック状態の場合、指を離してもドラッグ状態は解除されない。
- 選択範囲を確定するために、タップする。→ ドラッグ状態が解除される。
===== 設定方法 =====
- 端末を起動させる。
- 必要パッケージ (''xserver-xorg-input-synaptics'') をインストールする。\\
$ sudo apt install xserver-xorg-input-synaptics
- xinput で Touchpad デバイスを探し、デバイス ID を見つける。\\
$ xinput list | grep "TouchPad"
⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
* この場合、id は 12 で、マシンによって異なる。
- タッチパッドデバイス設定情報から設定 ID を見つける。\\
$ xinput list-props 12 | grep "Locked Drags"
Synaptics Locked Drags (298): 1
Synaptics Locked Drags Timeout (299): 5000
* ''12'': デバイス ID
* ''Synaptics Locked Drags (298)'': クリックロックが有効かのフラグ
* ''1'' なので有効になっている。
* ''299'' は、設定 ID でマシンによって異なる。
* ''Synaptics Locked Drags Timeout (299)'' クリックロックの有効時間 (ms)
* ''5000'' なので、5000ミリ秒 = 5 秒に設定されている。
* ''299'' は、設定 ID でマシンによって異なる。
* クリックロックでドラッグ状態にすると指を離すことができるが、この有効時間を過ぎるとドラッグは解除されたものとみなされ、クリックロック状態でなくなる。
- クリックロックを設定する (上記の例では既に設定されているが、有効時間を 1 分に設定してみる)。\\
$ xinput set-prop 12 298 1
$ xinput set-prop 12 299 60000
* ''12'': デバイス ID
* ''298'': クリックロック有効フラグの設定 ID
* ''299'': クリックロック有効時間の設定 ID
* この設定はマシンを終了すると消えてしまうので、起動スクリプトなどにしておくと良い。
===== 参考スクリプト =====
#!/bin/bash
if [ ! "$(which syndaemon)" ]; then
echo "ERROR: xserver-xorg-input-synaptics is not installed" >&2
zenity --error --width 300 --title "StartUpConfig" --text "xserver-xorg-input-synaptics is not installed"
exit 1
fi
# disable tapping while typing
#syndaemon -i 1.0 -K -R -t -d
# ===== clicklock ===== #
# Synaptics
dev_id=$(xinput list | grep -i "Synaptics" | grep -i 'Touchpad' | egrep -o 'id=[0-9]+' | egrep -o '[0-9]+')
lock_id=$(xinput list-props ${dev_id} | egrep 'Locked Drags \(' | egrep -o '\([0-9]+\)' | egrep -o '[0-9]+')
time_id=$(xinput list-props 14 | egrep 'Locked Drags Timeout' | egrep -o '\([0-9]+\)' | egrep -o '[0-9]+')
xinput set-prop ${dev_id} ${lock_id} 1
xinput set-prop ${dev_id} ${time_id} 60000
# DELL
dev_id=$(xinput list | grep -i "DELL" | grep -i 'Touchpad' | egrep -o 'id=[0-9]+' | egrep -o '[0-9]+')
lock_id=$(xinput list-props ${dev_id} | egrep 'Locked Drags \(' | egrep -o '\([0-9]+\)' | egrep -o '[0-9]+')
time_id=$(xinput list-props 14 | egrep 'Locked Drags Timeout' | egrep -o '\([0-9]+\)' | egrep -o '[0-9]+')
xinput set-prop ${dev_id} ${lock_id} 1
xinput set-prop ${dev_id} ${time_id} 60000
{{tag>LinuxMint Ubuntu}}