Wacom Tablet HOWTO: Tablety w XFree
Następna strona
Poprzednia strona
Spis treści
5. Tablety w XFree
5.1 Wymagana wersja XFree
Minimalną wersją
XFree
powinna być 3.3.3.1. Jest to związane z rozszerzoną obsługą XInput, działaniem
drugiego przełącznika oraz zlikwidowaniem efektu blokowania myszy.
Jeżeli musisz korzystać z wersji wcześniejszej, obsługa XInput powinna być
dostępna od 3.1.2.d.
Obsługa XInput w XFree jest zwykle konfigurowana w pliku XF86Config.
W większości wypadków plik XF86Config umieszczony jest w katalogu /etc
lub /etc/x11. Pokażę teraz bardzo krótką sekcję konfiguracyną i wyjaśnię
co może być zmienione i dlaczego jest to potrzebne.
5.2 Przykładowy wycinek XF86Config (prosty)
Section "Module"
# sterownik urządzenia Wacom
Load "xf86Wacom.so"
EndSection
Section "Xinput"
# ustawienia dla rysika Wacoma
SubSection "WacomStylus" # typ urządzenia wejściowego
DeviceName "Pen1" # nazwa, wybierz dowolną
Port "/dev/ttyS0" # port szeregowy
Baudrate 9600 # użyteczne tylko dla Intuosa
Mode Absolute # mapuj obszar tableta na ekran
AlwaysCore # patrz opis
HistorySize 200 # rozmiar bufora dla ruchu
EndSubSection
EndSection
5.3 Sekcja modułu
Obsługa XInput w XFree jest osiągana przez użycie modułów. Moduł sterownika
urządzenia dla Wacoma nosi nazwę
xf86Wacom.so.
Jego wywołanie umieszczamy w sekcji
"Module" pliku XF86Config tylko jeden raz.
5.4 Rodzaje urządzeń
Urządzeniem fizycznym może być:
czubek rysika
gumka umieszczona na rysiku
myszka - kursor z "celownikiem" Wacoma, mysz 4d, mysz Graphire
rozpylacz (airbrush)
PenPartner oraz Graphire rozpoznaja typ urządzenia ale nie potrafią
ich rozróżnić. Dla przykładu, nie możesz użyć dwóch różnych rysików,
skonfigurowanych powiedzmy, jeden na czerwono, drugi na niebiesko
- wszystko co te urządzenia rozpoznają to: "Znalazłem czubek
rysika na mojej powierzchni", lub "Znalazłem gumkę na mojej
powierzchni", lub "znalazłem myszkę na mojej powierzchni".
XInput przypisuje urządzeniom ich rodzaj, które z kolei zostaną później opisane
w pliku XF86Config w podsekcjach sekcji Xinput:
WacomStylus
czubek rysika lub rozpylacza
WacomErasor
gumka na rysiku lub rozplaczu
WacomCursor
myszy takie jak mysz Graphire, kursor "z celownikiem", mysz 4d
5.5 Nazwa urządzenia
Każdemu skonfigurowanemu urządzeniu musisz nadać unikalną nazwę. Nazwa ta
będzie później używana w Twoim programie do komunikacji z tym urządzeniem.
Wybór nazwy zależy od ciebie.
5.6 Port
XInput chce wiedzieć do którego portu szeregowego podłączone jest nasze urządzenie.
Pozwala mi to na używanie dwóch różnych tabletów w tym samym czasie, na przykład
Graphire podłączonego do /dev/ttyS0 i PenPartnera podłączonego do /dev/ttyS01.
5.7 Poziom DebugLevel
Dzięki ustawieniu poziomu DebugLevel możemy kontrolować poziom "gadatliwości"
sterownika Wacoma do logów. Poziomy mogą przybierać wartości od 0 do 10.
Jeżeli pominiemy to ustawienie przyjęta zostanie wartość domyślna DebugLevel równa 0,
co odpowiada bardzo skąpemu logowaniu.
Przykład:
SubSection "WacomStylus" # rysik
DeviceName "PenRed" # nazwa, wybież dowolną
...
DebugLevel 10 # generuj bardzo dużo komunikatów
...
EndSubSection
5.8 Numer seryjny (tylko dla tabletów Intuos)
Tablety Intuos są bardziej wydajne niż PenPartner i Graphire ponieważ potrafią
rozróżnić wiele urządzeń tego samego rodzaju. Znaczy to tyle, że możemy już
używać dwa rysiki, jeden skonfigurowany jako czerwony, drugi skonfigurowany
jako niebieski. Jak widać rozróżnianie wyłącznie rodzajów urządzeń nie daje
wystarczającej informacji do obsługi różnych rysików. Dlatego, każde urządzenie
Intuosa, niech będzie to rysik, piórko, mysz lub cokolwiek, posiada numer seryjny,
który możesz wyspecyfikować by umożliwić rozpoznanie konkretnego urządzenia
przez XInput. Wygląda to następująco:
Section "Xinput"
SubSection "WacomStylus" # rysik
DeviceName "PenRed" # nazwa, wybierz dowolną
...
Serial 2609917443 # numer seryjny tego urządzenia
...
EndSubSection
SubSection "WacomStylus" # inny rysik
DeviceName "PenBlue" # nazwa, wybierz dowolną
...
Serial 2609918664 # numer seryjny tego urządzenia
...
EndSubSection
EndSection
Chciałbym zaznaczyć że złożone urządzenia wejściowe posiadają tylko jeden
mumer seryjny. Sterownik używa otrzymany numer seryjny do rozpoznania
specyficznego rysika, natomiast czubek rysika od gumki jest rozpoznawany
na podstawie rodzaju urządzenia.
Jak uzykać numer seryjny danego urządzenia
Ustaw DebugLevel na 6
Uruchom serwer X wypisując polecenie
X 2>t
Dotknij powierzchni tableta po kolei wszystkimi urządzeniami, zapamiętując kolejnosć.
Usuń proces serwera X (zwykle Ctrl+Alt+Backspace)
Uruchom
grep serial_num t
Powinieneś otrzymać listę z różniącymi się numerami.
Numer seryjny - przykład tego co zostało zalogowane
BEGIN xf86WcmProc dev=0x8354d60 priv=0x833e3f0 type=stylus flags=9 what=1
xf86WcmProc pWcm=0x8354d60 what=ON
END xf86WcmProc Success what=1 dev=0x8354d60 priv=0x833e3f0
device_id=0x96 serial_num=2595227137 type=cursor
[cursor] abs prox=false x=0 y=0 z=0 button=false buttons=0
5.9 Tryby pracy bezwzględny (absolute) i względny (relative)
Jeżeli ustawisz tablet do pracy w trybie bezwzględnym, cała powierzchnia urządzenia
będzie odpowiadała ekranowi komputera. Za każdym razem gdy opuścisz rysik na ten sam
punkt tableta wskaźnik pojawi się w odpowiadającym mu tym samym punkcie ekranu.
Jeżeli ustawisz urządzenie do pracy w trybie względnym, uzyskasz dobrze Ci znane
zachowanie myszy. Jeśli podniesiesz myszkę z powierzchni, przesuniesz ją i ponownie
opuścisz, wskaźnik (idealnie) nie poruszy się.
Przykład:
Mode Absolute
5.10 Tryby pracy urządzeń Extension, Core oraz AlwaysCore
XFree zna dwa rodzaje wskaźników: pierwszy, posiadający tylko podstawową
funkcjonalność (klawisze, możliwość ruchu), wykorzystywany jest do wybierania
pozycji menu, zaznaczania tekstu, naciskania guzików i tym podobnych rzeczy.
Jest to urządzenie podstawowe Core.
Drugi rodzaj wskaźnika wykorzystują aplikacje potrzebujące dodatkowych
informacji, takich jak poziom nacisku czy nachylenia.
Urządzenie to nazywamy rozszerzonym - Extension.
Począwszy od wersji 3.3.3.1, ustawienie AlwaysCore mówi sterownikowi
by powinien osługiwać obydwa rodzaje zdarzeń.
Jeżeli w pliku XF86Config nie zostanie wyspecyfikowane ustawienie AlwaysCore, wskaźnik
zostanie zainicjowany w trybie rozszerzonym - będzie można z niego skorzystać
wewnątrz aplikacji, ale już nie do kontroli pozycji menu systemu zarządzania oknem.
Jeżeli pozycja AlwaysCore została wpisana, urządzenie (obok myszy) będzie działać jako
wskaźnik podstawowy wysyłając dodatkowo informacje na temat nachylenia i nacisku do
wszystkich programów, które uzyskały dostęp do wskaźnika w trybie rozszerzonym.
Dzięki użyciu dwóch różnych urządzeń logicznych możemy tak skonfigurować jedno fizycznie
urządzenie, by pracowało zarówno w trybie podstawowym jak i rozszerzonym.
Aby tego dokonać musimy stworzyć dwie identyczne sekcje różniące się jedynie ustawieniem
nazwy urządzenia DeviceName. Następnie musimy dodać wpis AlwaysCore od ostatniej z tych
sekcji.
Przykład:
AlwaysCore
5.11 Parametr HistorySize
Ustawienie HistorySize określa rozmiar bufora używanego do przechowywania informacji
o zdarzeniach ruchu.
5.12 Parametr Suppress
Ustawienie to określa liczbę jednostek, o które urządzenie musi być przesunięte
zanim sterownik poruszy wskaźnikiem. Jest ono zwykle niezbędne przy użyciu
wysokich rozdzielczości.
Przykład:
Suppress 6
5.13 Parametr TiltMode (tylko Intuos)
TiltMode umożliwia wysyłanie informacji na temat pochylenia dla urządzeń
wejściowych tableta Intuos. Jeżeli pominiemy ten parametr, przesyłana
zostanie jedynie informacja o nacisku.
5.14 Ustawienia TopX, TopY, BottomX, BottomY
Te cztery parametry pozwalają na zredukowanie aktywnego obszaru tableta.
Dla przykładu, mój Intuos A4 oversize jest tak wielki, że nie da się na nim
normalnie malować, gdyż ruchy rysika muszą być zbyt duże. Używam tych parametrów
aby tak poinstruować sterownik by przypisał do ekranu tylko lewą dolną
ćwiartkę tableta.
Przykład:
TopX 0 # współrzędne lewego górnego punktu
TopY 5000
BottomX 5000 # współrzędne prawego dolnego punktu
BottomY 10000
Określanie maksymalnych wartości X, Y, aktualnej konfiguracji oraz rozdzielczości
Jeśli używasz powyższych ustawień, najprawdopodobniej będziesz chciał obliczyć
rozmiar oraz położenie definiowanego prostokąta. Zwykle potrzebne są do tego
maksymalne współrzędne oraz rozdzielczość. Aby poznać te wartości uruchom swój
serwer:
X 2>t.
Następnie usuń proces serwera X (zwykle Ctrl+Alt+Backspace)
i wykonaj
grep "X=" t.
W odpowiedzi powinieneś otrzymać wartości które Cię interesowały.
Określanie rozdzielczości - przykład tego co zostało zalogowane
(--) Wacom IV tablet maximum X=5103 maximum Y=3711 X
resolution=1000 Y resolution=1000 suppress=6
(--) Wacom tablet top X=0 top Y=0 bottom X=5103 bottom Y=3711
(--) Wacom tablet top X=0 top Y=0 bottom X=5103 bottom Y=3711
(--) Wacom tablet top X=0 top Y=0 bottom X=5103 bottom Y=3711
5.15 Ustawienie KeepShape
Opcja ta korzysta ze zmiennych TopX i TopY (lub wbudowanych wartości domyślnych,
jeśli je pomineliśmy) do ustawienia parametrów BottomX i BottomY tak aby
współczynnik wysokość/szerokość ekranu był identyczny z tabletem
aktywny obszar tableta, począwszy od punktu TopX, TopY, był jak największy
z uwzględnieniem powyższego warunku.
Jakiekolwiek wcześniejsze ustawienia BottomX i BottomY są ignorowane, gdyż
wartości tych zmiennych zostaną obliczone.
Następna strona
Poprzednia strona
Spis treści