目次

クリックロック

概要

設定方法

  1. 端末を起動させる。
  2. 必要パッケージ (xserver-xorg-input-synaptics) をインストールする。
    $ sudo apt install xserver-xorg-input-synaptics
  3. xinput で Touchpad デバイスを探し、デバイス ID を見つける。
    $ xinput list | grep "TouchPad"
    ⎜   ↳ SynPS/2 Synaptics TouchPad              	id=12	[slave  pointer  (2)]
    • この場合、id は 12 で、マシンによって異なる。
  4. タッチパッドデバイス設定情報から設定 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 でマシンによって異なる。
      • クリックロックでドラッグ状態にすると指を離すことができるが、この有効時間を過ぎるとドラッグは解除されたものとみなされ、クリックロック状態でなくなる。
  5. クリックロックを設定する (上記の例では既に設定されているが、有効時間を 1 分に設定してみる)。
    $ xinput set-prop 12 298 1
    $ xinput set-prop 12 299 60000
    • 12: デバイス ID
    • 298: クリックロック有効フラグの設定 ID
    • 299: クリックロック有効時間の設定 ID

参考スクリプト

clicklock.sh
#!/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