Am un Thinkpad X250 care rulează Linux Mint 20.1 Cinnamon (5.4.0-74-generic).
Am cumparat recent un Lenovo Thinkpad Trackpoint Wireless II tastatură și sunt surprins pozitiv de cât de bine funcționează totul când folosesc conexiunea Bluetooth. (există și un dongle USB proprietar alternativ care a venit cu el).
Eram obișnuit să folosesc butonul din mijloc al mouse-ului („butonul 2”) ca copiere/lipire (X „primar”) și să derulez când ținem apăsat și apoi mutam TrackPoint-ul.
Dar cu noua tastatură, tamponul principal este lipit chiar dacă tocmai am efectuat derularea.
Așa că mi-am petrecut câteva zile să-mi dau seama care este diferența dintre mouse-ul/TrackPoint încorporat și noul wireless, dar acum sunt cam blocat.
Comportamentul „bun” încorporat X250 TrackPoint
Dispozitivul încorporat se numește „TPPS/2 IBM TrackPoint” conform xinput.
Când alerg test xinput, pot vedea că făcând clic pe butonul din mijloc nu apare imediat.
Când eliberez butonul, primesc „apăsarea butonului 2” și „eliberarea butonului 2” care urmează direct.
Dacă mut TrackPoint-ul în timp ce țin apăsat butonul, eliberarea acestuia nu provoacă acțiuni „butonul 2”.
(Există câteva acțiuni de „mișcare” și „buton bress/release [4-7]” care au loc din cauza mișcării TrackPoint)
Problema cu tastatura wireless
Partea legată de mouse/punctul de urmărire a tastaturii bluetooth apare ca „Mausul TrackPoint Keyboard II”.
Comparând „xinput list-props” cu cele două dispozitive, singura diferență este metoda de defilare:
Fără fir:
libinput Metoda de defilare activată (316): 0, 0, 0
libinput Metoda de defilare Activată Implicit (317): 0, 0, 0
Încorporat:
libinput Metoda de defilare activată (316): 0, 0, 1
libinput Metoda de defilare Activată Implicit (317): 0, 0, 1
Deși din anumite motive (vezi mai jos) nu am reușit să schimb proprietatea „Metoda de derulare libinput activată implicit (317)”, am încercat ambele setări pentru „Metoda de derulare libinput activată (316)”.
Dacă am înțeles corect documentația, acele trei valori selectează metoda de defilare și corespund derulării „cu două degete”, „margine” și „pe buton”.
https://wayland.freedesktop.org/libinput/doc/latest/scrolling.html#scrolling
Rezultatele test xinput sunt după cum urmează:
Cu proprietatea libinput Metoda de defilare activată (316): 0, 0, 0 (implicit):
Apăsarea butonului din mijloc al mouse-ului emite imediat un „apăsați butonul 2” și lipește tamponul principal.
Acum pot muta TrackPoint-ul (care provoacă unele acțiuni de „mișcare” și „buton bress/release [4-7]”) și de îndată ce eliberez butonul, văd un „button release 2”.
Cu metoda de derulare a proprietății libinput activată (316): 0, 0, 1:
Apăsarea butonului din mijloc al mouse-ului nu apare imediat.
Dar, indiferent dacă mut TrackPoint-ul sau nu, de îndată ce eliberez butonul, provoacă atât „apăsarea butonului 2” cât și „eliberarea butonului 2” imediat după cealaltă, cea din urmă declanșând aparent acțiunea de lipire.
În orice caz, evenimente de depanare libinput afișează imediat datele butonului/TrackPoint.
Există, de asemenea, un comutator de rău augur „Windows/Android” în partea din spate a tastaturii.
Acest lucru nu schimbă nimic. (Cred că schimbă doar comportamentul tastelor funcționale speciale)
După cum am menționat mai sus, tastatura oferă în schimb conectarea utilizând un dongle USB. Comportamentul este ușor diferit aici, dar este încă lipit chiar și atunci când derulați:
libinput Metoda de defilare activată (316): 0, 0, 0
„Apăsați butonul 2” (și tamponul este lipit) apare imediat după apăsarea butonului.
„button release 2” apare imediat ce TrackPoint este mutat sau butonul este eliberat.
libinput Metoda de defilare activată (316): 0, 0, 1
Nu se întâmplă nimic când butonul este apăsat.
„apăsarea butonului 2”, „eliberarea butonului 2” și lipirea tamponului au loc imediat una după alta, de îndată ce TrackPoint este mutat sau butonul este eliberat.
Sper că am putut să explic clar problema.
Nu sunt sigur ce să fac în continuare.
/usr/share/X11/xorg.conf.d/40-libinput.conf meu a fost neatins și pare să conecteze driverul „libinput” la orice dispozitiv (vezi mai jos).
De cand evenimente de depanare libinput arata toate datele hardware in timp real, nu cred, tastatura sau BlueZ sunt de vina.
Dar, din nou, nu știu unde și cum sunt tratate atât de diferit datele de la tastatura wireless și de la dispozitivul încorporat.
Există și alte posibilități de depanare în afară de libinput și xinput?\
Multumesc mult pentru ajutorul tau!
$ xinput list-props „TrackPoint Keyboard II Mouse”
Dispozitiv „TrackPoint Keyboard II Mouse”:
Dispozitiv activat (165): 1
Matricea de transformare a coordonatelor (167): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 000.
libinput Defilare naturală activată (311): 0
libinput Defilare naturală activată Implicit (312): 0
Metode de defilare libinput disponibile (315): 0, 0, 1
libinput Metoda de defilare activată (316): 0, 0, 0
libinput Metoda de defilare Activată Implicit (317): 0, 0, 0
Butonul libinput Butonul de defilare (329): 2
Buton libinput Buton de defilare Implicit (330): 2
libinput Middle Emulation Enabled (321): 0
libinput Middle Emulation Enabled Implicit (322): 0
libinput Accel Speed (323): 0,000000
libinput Accel Speed Implicit (324): 0,000000
Profiluri libinput Accel disponibile (331): 1, 1
libinput Accel Profil activat (332): 1, 0
libinput Accel Profile Enabled Implicit (333): 1, 0
libinput Stângaci activat (325): 0
libinput Stângaci activat Implicit (326): 0
libinput Moduri de trimitere a evenimentelor disponibile (288): 1, 0
libinput Mod trimitere evenimente activat (289): 0, 0
libinput Mod trimitere evenimente activat Implicit (290): 0, 0
Nod dispozitiv (291): „/dev/input/event23”
ID produs dispozitiv (292): 6127, 24801
libinput Butoane de blocare prin tragere (327): <fără elemente>
libinput Defilare orizontală activată (328): 1
$ xinput list-props „TPPS/2 IBM TrackPoint”
Dispozitiv „TPPS/2 IBM TrackPoint”:
Dispozitiv activat (165): 1
Matricea de transformare a coordonatelor (167): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 000.
libinput Defilare naturală activată (311): 0
libinput Defilare naturală activată Implicit (312): 0
Metode de defilare libinput disponibile (315): 0, 0, 1
libinput Metoda de defilare activată (316): 0, 0, 1
libinput Metoda de defilare Activată Implicit (317): 0, 0, 1
Butonul libinput Butonul de defilare (329): 2
Buton libinput Buton de defilare Implicit (330): 2
libinput Middle Emulation Enabled (321): 0
libinput Middle Emulation Enabled Implicit (322): 0
libinput Accel Speed (323): 0,000000
libinput Accel Speed Implicit (324): 0,000000
Profiluri libinput Accel disponibile (331): 1, 1
libinput Accel Profil activat (332): 1, 0
libinput Accel Profile Enabled Implicit (333): 1, 0
libinput Stângaci activat (325): 0
libinput Stângaci activat Implicit (326): 0
libinput Moduri de trimitere a evenimentelor disponibile (288): 1, 0
libinput Mod trimitere evenimente activat (289): 0, 0
libinput Mod trimitere evenimente activat Implicit (290): 0, 0
Nod dispozitiv (291): „/dev/input/event17”
ID produs dispozitiv (292): 2, 10
libinput Butoane de blocare prin tragere (327): <fără elemente>
libinput Defilare orizontală activată (328): 1
$ xinput
â¡ Indicatorul de bază virtual id=2 [pointerul principal (3)]
â â³ Nucleul virtual XTEST pointer id=4 [pointer slave (2)]
â â³ Synaptics TM3075-002 id=12 [indicator slave (2)]
â â³ TPPS/2 IBM TrackPoint id=13 [pointer slave (2)]
â â³ TrackPoint Keyboard II Mouse id=19 [indicator slave (2)]
â â³ TrackPoint Keyboard II Consumer Control id=22 [indicator slave (2)]
⣠ID tastatură de bază virtuală=3 [tastatură principală (2)]
â³ Virtual core XTEST keyboard id=5 [tastatură slave (3)]
â³ Buton de pornire id=6 [tastatură secundară (3)]
â³ Video Bus id=7 [tastatură secundară (3)]
â³ Id-ul butonului Sleep=8 [tastatură secundară (3)]
â³ AT Translated Set 2 keyboard id=10 [tastatură secundară (3)]
â³ ThinkPad Extra Buttons id=11 [tastatură secundară (3)]
â³ Cameră integrată: C id=9 integrată [tastatură secundară (3)]
â³ HD Webcam C525 id=14 [tastatură secundară (3)]
â³ TrackPoint Keyboard II ID tastatură=20 [tastatură secundară (3)]
â³ TrackPoint Keyboard II System Control id=21 [tastatură secundară (3)]
â³ TrackPoint Keyboard II Consumer Control id=23 [tastatură secundară (3)]
$ cat /usr/share/X11/xorg.conf.d/40-libinput.conf
# Se potrivește pe toate tipurile de dispozitive, cu excepția joystick-urilor
#
# Dacă doriți să vă configurați dispozitivele, nu copiați acest fișier.
# În schimb, utilizați un fragment de configurare care conține ceva de genul acesta:
#
# Secțiunea „InputClass”
# Identificator „ceva sau altul”
# MatchDriver „libinput”
#
# MatchIsTouchpad „activat”
# ... alte directive de meci...
# Opțiunea „oarecare opțiune” „valoare”
# EndSection
#
# Aceasta se aplică opțiunea oricărui dispozitiv de intrare libinut, potrivit și de celălalt
# directive. Consultați pagina de manual xorg.conf(5) pentru mai multe informații despre
# dispozitive potrivite.
Secțiunea „InputClass”
Identificator „libinput pointer catchall”
MatchIsPointer „activat”
MatchDevicePath „/dev/input/event*”
Driver „libinput”
EndSection
Secțiunea „InputClass”
Identificator „libinput keyboard catchall”
MatchIsKeyboard „activat”
MatchDevicePath „/dev/input/event*”
Driver „libinput”
EndSection
Secțiunea „InputClass”
Identificator „libinput touchpad catchall”
MatchIsTouchpad „activat”
MatchDevicePath „/dev/input/event*”
Driver „libinput”
EndSection
Secțiunea „InputClass”
Identificator „libinput touchscreen catchall”
MatchIsTouchscreen „activat”
MatchDevicePath „/dev/input/event*”
Driver „libinput”
EndSection
Secțiunea „InputClass”
Identificator „libinput tablet catchall”
MatchIsTablet „activat”
MatchDevicePath „/dev/input/event*”
Driver „libinput”
EndSection
$ sudo libinput list-devices | grep -A 17 „TPPS”
Dispozitiv: TPPS/2 IBM TrackPoint
Kernel: /dev/input/event17
Grupa: 14
Seat: seat0, implicit
Capabilitati: pointer
Atingeți pentru a face clic: n/a
Atingeți și trageți: n/a
Atingeți blocarea glisării: n/a
Stângaci: cu handicap
Nat.scrolling: dezactivat
Emularea mijlocie: dezactivată
Calibrare: n/a
Metode de defilare: *buton
Metode de clic: niciuna
Dezactivați tastarea-w: n/a
Profile Accel: plate *adaptative
Rotație: n/a
$ sudo libinput list-devices | grep -A 17 „TrackPoint Keyboard II Mouse”
Dispozitiv: Mouse TrackPoint Keyboard II
Kernel: /dev/input/event23
Grupa: 15
Seat: seat0, implicit
Capabilitati: pointer
Atingeți pentru a face clic: n/a
Atingeți și trageți: n/a
Atingeți blocarea glisării: n/a
Stângaci: cu handicap
Nat.scrolling: dezactivat
Emularea mijlocie: dezactivată
Calibrare: n/a
Metode de defilare: buton
Metode de clic: niciuna
Dezactivați tastarea-w: n/a
Profile Accel: plate *adaptative
Rotație: n/a
$ xinput set-prop "TrackPoint Keyboard II Mouse" 317 0, 0, 1
X Eroare de solicitare eșuată: BadAccess (încercarea de a accesa resursa privată refuzată)
Cod operațional major al solicitării eșuate: 131 (XInputExtension)
Cod operațional minor al cererii eșuate: 57 ()
Numărul de serie al cererii eșuate: 20
Numărul de serie curent în fluxul de ieșire: 21