これは2016のDell Inspiron 15 7559で、当時Ubuntuにプリインストールされていました。その後、私は過去4年間16.04を問題なく実行していました。
昨日、20.04でフレッシュインストール(ディスクを削除しました)を実行しました(uefiがオーディオで問題を発生させるため、レガシーBIOSで)ドラッグロックが機能しないことがわかりました。
xinput list
通常は私に与えます(16.04と20.04の両方)
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ELAN1010:00 04F3:3012 Mouse id=12 [slave pointer (2)]
⎜ ↳ ELAN1010:00 04F3:3012 Touchpad id=13 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=16 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Power Button id=9 [slave keyboard (3)]
↳ Sleep Button id=10 [slave keyboard (3)]
↳ Integrated_Webcam_HD: Integrate id=11 [slave keyboard (3)]
↳ Dell WMI hotkeys id=14 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=15 [slave keyboard (3)]
↳ Dell Wireless hotkeys id=17 [slave keyboard (3)]
2つのタッチパッドデバイスのIDが時々変化するように見えるので、2つのデバイスのフルネームを使用して、それらにプロパティを設定します。
16.04では、ドラッグロックを有効にするためにログイン時に以下を実行していました
xinput --set-prop "ELAN1010:00 04F3:3012 Touchpad" "Synaptics Locked Drags" 1
xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Locked Drags" 1
プロパティ名がシナプスからlibinputに変更されたことが判明したため、これらの2つのコマンドはエラーになります。どちらかでxinput --list-props
を実行すると、次のようになります
Device 'ELAN1010:00 04F3:3012 Touchpad':
Device Enabled (197): 1
Coordinate Transformation Matrix (199): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Tapping Enabled (349): 1
libinput Tapping Enabled Default (350): 0
libinput Tapping Drag Enabled (351): 1
libinput Tapping Drag Enabled Default (352): 1
libinput Tapping Drag Lock Enabled (353): 0
libinput Tapping Drag Lock Enabled Default (354): 0
libinput Tapping Button Mapping Enabled (355): 1, 0
libinput Tapping Button Mapping Default (356): 1, 0
libinput Natural Scrolling Enabled (333): 1
libinput Natural Scrolling Enabled Default (334): 0
libinput Disable While Typing Enabled (357): 1
libinput Disable While Typing Enabled Default (358): 1
libinput Scroll Methods Available (335): 1, 1, 0
libinput Scroll Method Enabled (336): 1, 0, 0
libinput Scroll Method Enabled Default (337): 1, 0, 0
libinput Click Methods Available (359): 1, 1
libinput Click Method Enabled (360): 0, 1
libinput Click Method Enabled Default (361): 1, 0
libinput Middle Emulation Enabled (362): 0
libinput Middle Emulation Enabled Default (363): 0
libinput Accel Speed (340): 0.000000
libinput Accel Speed Default (341): 0.000000
libinput Left Handed Enabled (345): 0
libinput Left Handed Enabled Default (346): 0
libinput Send Events Modes Available (318): 1, 1
libinput Send Events Mode Enabled (319): 0, 0
libinput Send Events Mode Enabled Default (320): 0, 0
Device Node (321): "/dev/input/event12"
Device Product ID (322): 1267, 12306
libinput Drag Lock Buttons (347): <no items>
libinput Horizontal Scroll Enabled (348): 1
そして
Device 'ETPS/2 Elantech Touchpad':
Device Enabled (197): 1
Coordinate Transformation Matrix (199): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Tapping Enabled (349): 1
libinput Tapping Enabled Default (350): 0
libinput Tapping Drag Enabled (351): 1
libinput Tapping Drag Enabled Default (352): 1
libinput Tapping Drag Lock Enabled (353): 0
libinput Tapping Drag Lock Enabled Default (354): 0
libinput Tapping Button Mapping Enabled (355): 1, 0
libinput Tapping Button Mapping Default (356): 1, 0
libinput Natural Scrolling Enabled (333): 1
libinput Natural Scrolling Enabled Default (334): 0
libinput Disable While Typing Enabled (357): 1
libinput Disable While Typing Enabled Default (358): 1
libinput Scroll Methods Available (335): 1, 1, 0
libinput Scroll Method Enabled (336): 1, 0, 0
libinput Scroll Method Enabled Default (337): 1, 0, 0
libinput Click Methods Available (359): 1, 1
libinput Click Method Enabled (360): 0, 1
libinput Click Method Enabled Default (361): 1, 0
libinput Middle Emulation Enabled (362): 0
libinput Middle Emulation Enabled Default (363): 0
libinput Accel Speed (340): 0.000000
libinput Accel Speed Default (341): 0.000000
libinput Left Handed Enabled (345): 0
libinput Left Handed Enabled Default (346): 0
libinput Send Events Modes Available (318): 1, 1
libinput Send Events Mode Enabled (319): 0, 0
libinput Send Events Mode Enabled Default (320): 0, 0
Device Node (321): "/dev/input/event7"
Device Product ID (322): 2, 14
libinput Drag Lock Buttons (347): <no items>
libinput Horizontal Scroll Enabled (348): 1
したがって、私は自然に次のことを試しました
xinput --set-prop "ELAN1010:00 04F3:3012 Touchpad" "libinput Tapping Drag Lock Enabled" 1
xinput --set-prop "ETPS/2 Elantech Touchpad" "libinput Tapping Drag Lock Enabled" 1
プロパティの設定は成功しますが、タッチパッドの動作は変わりません。
最後に、私もgnome設定を更新して、
gsettingsはorg.gnome.desktop.peripherals.touchpadをタップしてドラッグします
くれます
本当
これまでのところ、私はこの仕事をすることができません。
PS:私はXorgを
echo $XDG_SESSION_TYPE
出力
x11
PPS:/proc/bus/input/devices
の内容は、関連するデバイスについて次のとおりです。
I: Bus=0011 Vendor=0002 Product=000e Version=0000
N: Name="ETPS/2 Elantech Touchpad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input6
U: Uniq=
H: Handlers=mouse2 event7
B: PROP=5
B: EV=b
B: KEY=e420 10000 0 0 0 0
B: ABS=661800011000003
I: Bus=0018 Vendor=04f3 Product=3012 Version=0100
N: Name="ELAN1010:00 04F3:3012 Touchpad"
P: Phys=i2c-ELAN1010:00
S: Sysfs=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-ELAN1010:00/0018:04F3:3012.0001/input/input15
U: Uniq=
H: Handlers=mouse1 event12
B: PROP=5
B: EV=1b
B: KEY=e520 10000 0 0 0 0
B: ABS=2e0800000000003
B: MSC=20
PPPS:ドライブに/etc/x11/xorg.conf
または/etc/x11/xorg.conf.d/
が存在しません。
PPPPS: libinput manページ にこれに関するいくつかの情報がありますが、それを機能させるために必要な手順を正直に理解していません
[〜#〜] edit [〜#〜]@ Hi-Angelからのコメントに基づいて、libinputはドラッグロックをサポートしていますが、デフォルトで設定不可能な300msを持っていますタイムアウトになるので、解決策をその方向に進めるのに役立ついくつかの更新を次に示します。
私は一般にlibinputとCプログラミングの内部動作に不慣れですが、これを自分のコンピューターで動作させる方法があると思いますか? ?)_
コメントごとに、ドラッグロックは実際には機能しますが、ドラッグタイムアウト(つまり、タッチパッドから指を離した後、置く前に「ドラッグ」が機能する時間)を見逃しがちですback)は非常に小さく、300ミリ秒です。 Synapticsのデフォルトでは5秒でした。
非常に小さいのは、目立たないようにするためです。アクセシビリティの理由から、それを無限に増やすことには価値があるかもしれませんが。
ATMでは、タイムアウトを変更する簡単な方法はありません。ハックとして、 この行のタイムアウト値 を変更して、ソースからlibinputを再構築できます。
ただし、OPで正しく記載されているように、タイムアウトを構成可能にする open MR があります。 対応する問題 と同様に、それは著者によって放棄されました。しかし、メンテナがそのアイデアにオープンであることは容易に理解できます。あなたは議論に参加しようとするかもしれません、そして、あなたの推論が十分説得力があると判明した場合、既存のMRをリベースしてマージすることは簡単です。