Usa il trackpad del laptop come tavoletta grafica


15

Sono interessato a utilizzare il trackpad del mio laptop come tablet da disegno, ovvero utilizzando coordinate assolute anziché relative, simili a Inklet per OSX.

La stessa domanda è stata posta in ubuntuforums.org nel maggio 2010, ma alla domanda non è mai stata data risposta. Mi chiedo se questo è stato fatto su Linux. Sto anche cercando di capire quali termini di ricerca usare. Ho cercato la "modalità assoluta del touchpad del laptop Linux" e ho riscontrato un problema con i driver del trackpad che ha messo il trackpad in modalità assoluta. ma sto davvero cercando un programma che usi le posizioni assolute piuttosto che un'impostazione del driver.


1
Lo vuoi per Ubuntu in esecuzione su un MacBook? O stai chiedendo o un modo per farlo con qualsiasi trackpad in Ubuntu?
Eliah Kagan,

Sto cercando qualcosa che possa funzionare con qualsiasi laptop.
Barton Chittenden il

I trackpad diversi da quelli dei recenti MacBook sono in grado di farlo? Questo sembra qualcosa di fortemente dipendente dalla versatilità del dispositivo di input stesso.
Eliah Kagan,

1
Non troverai un singolo programma in grado di farlo. Anche in Mac OS X non è così, ma sono riusciti a nasconderlo correttamente (ad es. Cambiare modalità di input in base all'applicazione in esecuzione). Rilevante D: come leggere le posizioni assolute del tocco dal touchpad Cirque in Linux
gertvdijk,

Risposte:


8

Guarda i driver, non le applicazioni

Non troverai un programma che fa questo, a causa di questi tre tipi di touchpad i driver cercano di astrarre su una singola rappresentazione alle applicazioni:

  • I touchpad che riportano i dati sulle posizioni assolute vengono tradotti dal driver Xorg in movimento relativo per le applicazioni. Un'applicazione normale non può parlare direttamente con il touchpad (in base alla progettazione), quindi devi davvero cercare una soluzione nel driver.
  • I touchpad in grado sia di modalità relativa che assoluta devono passare da una modalità all'altra, che è molto specifica per l'hardware e non sensibile all'applicazione.
  • Alcuni touchpad di base non hanno la capacità di riportare le posizioni assolute.

Sfortunatamente, anche se hai un touchpad praticamente in grado di riportare tutti i valori assoluti, la maggior parte dei driver del touchpad non ti consente di usarli nelle applicazioni Linux. I dati assoluti sono davvero lì, in quanto il conducente può rilevare se li tocchi ai bordi per lo scorrimento, ad esempio. Provalo tu stesso usando evtestin un terminale virtuale (per sospendere X). Il mio touchpad Synaptics riporta le posizioni assolute come segue:

Event type 3 (EV_ABS)
  Event code 0 (ABS_X)
    Value   3332
    Min     1472
    Max     5648
    Fuzz       8
    Resolution      39
  Event code 1 (ABS_Y)
    Value   2017
    Min     1408
    Max     4806
    Fuzz       8
    Resolution      79

La capacità di mettere effettivamente un dispositivo Synaptics in modalità assoluta in Xorg è stata recentemente rimossa da questo commit nel xf86-input-synapticsdriver:

Remove absolute mode

Moving a touchpad in absolute mode is unusual - touchpads are disconnected
from the output device, so direct interaction is hard. There appears to be
little usage of it (I haven't seen bug reports from people claiming to use
it). Joe Shaw, author of the code and only known user doesn't have a use for
it anymore, so purge it from the repo.

Driver di base a livello di sistema: evdev

L'unico modo in cui vedo che questo è possibile in questo momento in Linux è usare il evdevdriver in Xorg. È stato discusso nel 2010 sulla mailing list di Xorg (un estratto di seguito):

Devo ottenere la posizione assoluta di un dito sul touchpad piuttosto che solo un movimento relativo.

il driver synaptics non lo fa, ma lo fa il driver evdev. Quindi è necessario configurare il proprio server X per utilizzare invece il driver evdev per il touchpad. Il frammento di configurazione seguente lo farà per te, a condizione che tu stia eseguendo il server 1.8 o successivo.

Section "InputClass"
    Identifier "evdev touchpad"
    MatchIsTouchpad "on"
    Driver "evdev"
    Option "Mode" "absolute"
EndSection

Salvalo come /etc/X11/xorg.conf.d/99-evdev-touchpad.confe riavvia il server. Si noti che ciò modifica solo il comportamento del touchpad stesso, non i dati negli eventi, ma comunque i dati sono sempre assoluti. Inoltre, usando evdev invece di synaptics stai perdendo la possibilità di scorrere con due dita, toccare, ecc.

Bottom line: crea una richiesta di funzionalità

Vedo spazio per una richiesta di funzionalità sul bugtracker a monte per il driver synaptics (e possibilmente altri). Sarebbe molto utile avere un'interfaccia in Xorg per poter leggere i valori di posizione assoluta del touchpad. I principali bloccanti che vedo è che questo potrebbe essere molto specifico per l'hardware e quindi difficile da implementare.

Penso che parlare con Joe Shaw e Peter Hutterer potrebbe anche essere di grande valore per vedere quale sia esattamente la storia in questo, come renderla una grande richiesta di funzionalità e cosa aspettarsi da essa.


È una bella risposta, ma qui il mouse si è bloccato ... (12.10)
desgua,

@desgua Sì, è davvero qualcosa da aspettarsi. Non ha valori di input assoluti ...
gertvdijk,

1
Nel caso in cui qualcuno sia ancora interessato a questo, ho presentato un bug: bugs.freedesktop.org/show_bug.cgi?id=75322
Donarsson

1
AGGIORNAMENTO: La mia richiesta di funzionalità è stata respinta e il manutentore ha dichiarato di "rimpiangere di averla unita in primo luogo". Esaminerò il codice e probabilmente lo fork. Se lo faccio, posterò un ultimo commento qui in modo che chiunque sia interessato possa vederlo. Ci scusiamo per lo spamming.
Donarsson,

0

Dipende molto dall'hardware che penso. Il tuo trackpad deve supportare dando via la posizione assoluta di un tocco. Un normale trackpad per laptop si comporta più come un mouse, fornendo solo informazioni su direzione, velocità e accelerazione. Quindi, ovunque tu tocchi, si sposterà solo dalla direzione corrente del cursore.


1
Questo non è molto vero. X è in grado di leggere le posizioni in quanto è in grado di rilevare, ad esempio, su quale bordo si desidera scorrere. Credo che sia più un parametro di configurazione dell'ingresso X che ci stiamo perdendo.
gertvdijk,

Sì, è anche vero .. Non sono esattamente sicuro di come funzioni, ma penso che l'implementazione in un trackpad sia ancora troppo semplice da usare come tavoletta
grafica
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.