web-dev-qa-db-ja.com

ドラッグロックが20.04の新規インストールで機能しない

これは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を持っていますタイムアウトになるので、解決策をその方向に進めるのに役立ついくつかの更新を次に示します。

  • 別の質問 は、synclientが構成可能なタイムアウトをサポートしていることを示唆しています(デフォルトは5000、libinputはサポートしていません)
  • A 報告された問題 は、libinputのメンテナがこれの有用性をすぐに理解していないように見える
  • A PRanother one はこれを取得しようとして中止されました

私は一般にlibinputとCプログラミングの内部動作に不慣れですが、これを自分のコンピューターで動作させる方法があると思いますか? ?)_

1
Serkan Durusoy

コメントごとに、ドラッグロックは実際には機能しますが、ドラッグタイムアウト(つまり、タッチパッドから指を離した後、置く前に「ドラッグ」が機能する時間)を見逃しがちですback)は非常に小さく、300ミリ秒です。 Synapticsのデフォルトでは5秒でした。

非常に小さいのは、目立たないようにするためです。アクセシビリティの理由から、それを無限に増やすことには価値があるかもしれませんが。

ATMでは、タイムアウトを変更する簡単な方法はありません。ハックとして、 この行のタイムアウト値 を変更して、ソースからlibinputを再構築できます。

ただし、OPで正しく記載されているように、タイムアウトを構成可能にする open MR があります。 対応する問題 と同様に、それは著者によって放棄されました。しかし、メンテナがそのアイデアにオープンであることは容易に理解できます。あなたは議論に参加しようとするかもしれません、そして、あなたの推論が十分説得力があると判明した場合、既存のMRをリベースしてマージすることは簡単です。

0
Hi-Angel