====== クリックロック ====== ===== 概要 ===== * ノート 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}}