拖動鎖在新的 Ubuntu 20.04 安裝上不起作用
這是 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 應該是微不足道的。