Ubuntu

拖動鎖在新的 Ubuntu 20.04 安裝上不起作用

  • May 14, 2020

這是 2016 年的戴爾 Inspiron 靈越 15 7559,當時預裝了 Ubuntu。後來我在過去的 4 年裡一直在執行 16.04,沒有出現任何問題。

昨天,我用 20.04進行了全新安裝(*清除了磁碟)(*在舊版 bios 上,因為 uefi 導致了音頻問題),卻發現我無法讓拖動鎖定工作。

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)]

並且兩個觸摸板設備的 id 似乎偶爾會發生變化,所以我使用這兩個設備的全名來設置它們的屬性。

在 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

這兩個命令出錯,因為事實證明屬性名稱已從 synaptics 更改為 libinput。在任何一個上執行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 手冊頁中有一些關於此的資訊,但老實說,我不明白使其工作所需的步驟

編輯: 這是來自 askubuntu的交叉文章。

該問題已交叉發佈到 askubuntu,這是我從此處獲得的答案的副本


根據評論,拖動鎖定確實有效,但很容易錯過,因為拖動超時*(即“拖動”從觸摸板抬起手指後但在放回之前的工作時間)*非常小,為 300小姐。Synaptics 預設為 5 秒。

它這麼小的原因是不引人注目。儘管出於可訪問性原因將其增加到無窮大可能是有價值的。

ATM 沒有簡單的方法來更改超時。作為一種技巧,可以更改此行的超時值並從源重建 libinput。

但是,正如 OP 正確指出的那樣,有一個開放的 MR可以使超時可配置。哪個被作者拋棄了以及相應的問題。但很容易看出維護者對這個想法持開放態度。你可以嘗試加入討論,如果你的推理證明足夠有說服力,那麼 rebase 和合併已經存在的 MR 應該是微不足道的。

引用自:https://unix.stackexchange.com/questions/586113