Use o trackpad do laptop como mesa digitalizadora

15

Estou interessado em usar o trackpad do meu laptop como um tablet de desenho, ou seja, usando coordenadas absolutas em vez de relativas, semelhante ao Inklet for OSX.

A mesma pergunta foi feita no ubuntuforums.org em maio de 2010, mas a pergunta nunca foi respondida. Gostaria de saber se isso foi feito no Linux. Também estou tentando descobrir quais termos de pesquisa usar. Eu procurei pelo 'modo absoluto do touchpad do laptop linux' e encontrei um problema com os drivers do track pad que colocavam o trackpad no modo absoluto. mas estou realmente procurando por um programa que use posições absolutas em vez de uma configuração de driver.

Barton Chittenden
fonte
11
Você quer isso para o Ubuntu rodando em um MacBook? Ou você está perguntando ou uma maneira de fazer isso com qualquer trackpad no Ubuntu?
Elias Kagan
Estou procurando algo que possa funcionar com qualquer laptop.
Barton Chittenden
Os trackpads que não sejam os recentes MacBooks são capazes disso? Isso parece algo altamente dependente da versatilidade do próprio dispositivo de entrada.
Elias Kagan
11
Você não encontrará um único programa capaz de fazer isso. No Mac OS X também não é o caso, mas eles conseguiram ocultá-lo adequadamente (por exemplo, alternar o modo de entrada com base no aplicativo em execução). Q relevante: como ler posições absolutas de torneira de Cirque touchpad em linux
gertvdijk

Respostas:

8

Veja drivers, não aplicativos

Você não encontrará um programa fazendo isso, devido a esses três tipos de touchpads que os drivers tentam abstrair para uma única representação nos aplicativos:

  • Os touchpads que relatam dados de posições absolutas estão sendo convertidos pelo driver Xorg em movimento relativo para os aplicativos. Como um aplicativo comum não pode falar diretamente com o touchpad (por design), é necessário procurar uma solução no driver.
  • Os touchpads capazes de modos relativo e absoluto precisam ser alternados, o que é muito específico do hardware e não reconhece aplicativos.
  • Alguns touchpads mais básicos não têm a capacidade de relatar posições absolutas.

Infelizmente, mesmo se você tiver um touchpad capaz de relatar todos os valores absolutos, a maioria dos drivers do touchpad não permite usá-los em aplicativos Linux. Os dados absolutos estão realmente lá, pois o driver pode detectar se você está tocando nas bordas para rolar, por exemplo. Teste você mesmo usando evtestum terminal virtual (para suspender o X). O touchpad My Synaptics reporta as posições absolutas da seguinte maneira:

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

A capacidade de realmente colocar um dispositivo Synaptics no modo absoluto no Xorg foi removida recentemente por este commit no 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 básico do sistema: evdev

A única maneira de ver isso possível neste momento no Linux é usando o evdevdriver no Xorg. Foi discutido em 2010 na lista de discussão do Xorg (um trecho abaixo):

Preciso obter a posição absoluta de um dedo no touchpad, em vez de apenas um movimento relativo.

o driver synaptics não faz isso, mas o driver evdev faz. Portanto, você precisa configurar o servidor X para usar o driver evdev para o touchpad. O seguinte snippet de configuração fará isso por você, desde que você esteja executando o servidor 1.8 ou posterior.

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

Salve isso como /etc/X11/xorg.conf.d/99-evdev-touchpad.confe reinicie o servidor. Observe que isso altera apenas o comportamento do próprio touchpad, não os dados nos eventos, mas, novamente, esses dados são sempre absolutos de qualquer maneira. Além disso, usando evdev em vez de sinápticos, você perde a capacidade de rolagem, toque com dois dedos, etc.

Conclusão: crie uma solicitação de recurso

Vejo espaço para uma solicitação de recurso no rastreador de erros upstream de para o driver synaptics (e possivelmente outros). Seria muito útil ter uma interface no Xorg para poder ler os valores absolutos de posição do touchpad. Os principais bloqueadores que vejo é que isso pode ser muito específico do hardware e, portanto, difícil de implementar.

Eu acho que conversar com Joe Shaw e Peter Hutterer também pode ser de grande valia para ver exatamente qual é a história disso, como torná-la uma ótima solicitação de recurso e o que esperar dela.

gertvdijk
fonte
É uma boa resposta, mas aqui o mouse congelou ... (12.10)
desgua
@desgua Sim, isso é muito o que esperar. Ele não tem quaisquer valores de entrada absolutos ...
gertvdijk
11
Apenas no caso de alguém ainda está interessado neste, eu arquivou um bug: bugs.freedesktop.org/show_bug.cgi?id=75322
Donarsson
11
ATUALIZAÇÃO: Minha solicitação de recurso foi rejeitada e o mantenedor declarou que "lamenta a fusão em primeiro lugar". Vou dar uma olhada no código e provavelmente bifurcar. Se eu fizer, postarei um último comentário aqui para que qualquer pessoa interessada possa vê-lo. Desculpe por enviar spam.
Donarsson 23/02
0

Isso depende muito do hardware que eu acho. Seu trackpad precisa oferecer a posição absoluta de um toque. Um trackpad de laptop normal funciona mais como um mouse, fornecendo apenas informações de direção, velocidade e aceleração. Portanto, onde quer que você toque, ele somente se moverá da direção atual do cursor.

Gladen
fonte
11
Isso não é verdade. X pode ler as posições, pois pode detectar em qual borda você está rolando, por exemplo. Acredito que seja mais um parâmetro de configuração do X Input que estamos perdendo.
precisa saber é
Sim, isso também é verdade .. Eu não sou exatamente certo como ele funciona, mas acho que a implementação em um trackpad ainda é muito básico para usar como um tablet de desenho ..
Gladen