Użyj gładzika laptopa jako tabletu graficznego

15

Interesuje mnie używanie gładzika laptopa jako tabletu do rysowania, tzn. Używanie współrzędnych bezwzględnych, a nie względnych, podobnie jak Inklet dla OSX.

To samo pytanie zostało zadane na stronie ubuntuforums.org w maju 2010 r., Ale na pytanie nigdy nie udzielono odpowiedzi. Zastanawiam się, czy zostało to zrobione w systemie Linux. Próbuję również dowiedzieć się, które wyszukiwane hasła zastosować. Szukałem „bezwzględnego trybu touchpada na laptopie z linuksem” i natknąłem się na problem ze sterownikami padów, które przestawiły gładzik w tryb absolutny. ale naprawdę szukam programu który wykorzystuje pozycje bezwzględne, a nie ustawienia sterownika.

Barton Chittenden
źródło
1
Czy chcesz, aby Ubuntu działało na MacBooku? A może pytasz czy możesz to zrobić za pomocą dowolnego gładzika w Ubuntu?
Eliah Kagan
Szukam czegoś, co może współpracować z dowolnym laptopem.
Barton Chittenden,
Czy gładziki inne niż te w najnowszych MacBookach są w stanie to zrobić? Wydaje się, że jest to coś wysoce zależnego od wszechstronności samego urządzenia wejściowego.
Eliah Kagan
1
Nie znajdziesz takiego programu, który mógłby to zrobić. W Mac OS X też tak nie jest, ale udało się to odpowiednio ukryć (np. Zmienić tryb wprowadzania na podstawie uruchomionej aplikacji). Istotne pytanie
systemie

Odpowiedzi:

8

Spójrz na sterowniki, a nie aplikacje

Nie znajdziesz takiego programu, ponieważ te trzy typy tabliczek dotykowych sterowniki próbują wyodrębnić do pojedynczej reprezentacji aplikacji:

  • Płytki dotykowe zgłaszające dane pozycji bezwzględnych są tłumaczone przez sterownik Xorg na względny ruch aplikacji. Zwykła aplikacja nie może rozmawiać bezpośrednio z touchpadem (zgodnie z projektem), więc naprawdę musisz poszukać rozwiązania w sterowniku.
  • Płytki dotykowe obsługujące tryby względne i bezwzględne wymagają przełączania trybów, które są bardzo specyficzne dla sprzętu i nie uwzględniają aplikacji.
  • Niektóre bardziej podstawowe touchpady nie mają możliwości zgłaszania pozycji bezwzględnych.

Niestety, nawet jeśli masz touchpad zdolny do raportowania wszystkich wartości bezwzględnych, większość sterowników touchpada nie pozwala na używanie ich w aplikacjach Linux. Dane absolutne są naprawdę dostępne, ponieważ kierowca może wykryć, czy dotykasz ich na krawędziach, na przykład w celu przewijania. Sprawdź to sam, używając evtestwirtualnego terminala (aby zawiesić X). Mój touchpad Synaptics zgłasza pozycje bezwzględne w następujący sposób:

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

Możliwość przełączania urządzenia Synaptics w tryb absolutny w Xorg została niedawno usunięta przez to zatwierdzenie w xf86-input-synapticssterowniku:

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.

Sterownik podstawowy dla całego systemu: evdev

Jedynym sposobem, w jaki widzę, że jest to możliwe w tej chwili w systemie Linux, jest użycie evdevsterownika w Xorg. Zostało to omówione w 2010 roku na liście mailingowej Xorg (fragment poniżej):

Muszę uzyskać bezwzględną pozycję palca na touchpadzie, a nie tylko względny ruch.

sterownik synaptics tego nie robi, ale robi to sterownik evdev. Musisz więc skonfigurować serwer X do korzystania ze sterownika evdev dla touchpada. Poniższy fragment konfiguracji zrobi to za Ciebie, pod warunkiem, że korzystasz z serwera 1.8 lub nowszego.

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

Zapisz to jako /etc/X11/xorg.conf.d/99-evdev-touchpad.confi zrestartuj serwer. Pamiętaj, że zmienia to tylko zachowanie samego touchpada, a nie dane w zdarzeniach, ale z drugiej strony dane te są zawsze absolutne. Ponadto, używając evdev zamiast synaptics, tracisz możliwość przewijania dwoma palcami, stukania itp.

Konkluzja: utwórz żądanie funkcji

Widzę miejsce na żądanie funkcji w głównym narzędziu do usuwania błędów dla sterownika synaptics (i ewentualnie innych). Przydałby się interfejs w Xorg, aby móc odczytać bezwzględne wartości pozycji touchpada. Główne blokery, które widzę, to to, że może to być bardzo specyficzne dla sprzętu, a zatem trudne do wdrożenia.

Myślę, że rozmowa z Joe Shawem i Peterem Huttererem może być również bardzo cenna, aby zobaczyć, jaka dokładnie jest historia, jak sprawić, by była to świetna prośba o funkcje i czego się po niej spodziewać.

gertvdijk
źródło
To ładna odpowiedź, ale tutaj mysz właśnie zamarła ... (12.10)
desgua
@desgua Tak, to jest coś, czego można się spodziewać. Nie ma żadnych bezwzględnych wartości wejściowych ...
gertvdijk,
1
Na wypadek, gdyby ktoś był nadal tym zainteresowany, zgłosiłem
Donarsson
1
AKTUALIZACJA: Moje żądanie funkcji zostało odrzucone, a opiekun stwierdził, że „żałuje, że połączyłem go”. Zajrzę do kodu i prawdopodobnie go rozwidlę. Jeśli to zrobię, opublikuję tutaj ostatni komentarz, aby każdy zainteresowany mógł go zobaczyć. Przepraszamy za spam.
Donarsson
0

Myślę, że to bardzo zależy od sprzętu. Twój gładzik musi obsługiwać bezwzględną pozycję dotyku. Zwykły gładzik laptopa działa bardziej jak mysz, zapewniając jedynie informacje o kierunku, prędkości i przyspieszeniu. Gdziekolwiek dotkniesz, przesunie się tylko od bieżącego kierunku kursora.

Gladen
źródło
1
To niezbyt prawda. X może odczytać pozycje, ponieważ może wykryć na przykład, na której krawędzi chcesz przewijać. Uważam, że brakuje nam parametru konfiguracyjnego X Input.
gertvdijk
Tak, to także prawda .. Nie jestem do końca pewien, jak to działa, ale myślę, że implementacja w gładziku jest nadal zbyt prosta, aby używać go jako tabletu do rysowania.
Gladen