# Wacom Tablet HOWTO

## Autor: Stefan Runkel runkel@runkeledv.de
v1.0.4, listopad 1999
Wersja polska: Marek Guevara Braun marek@atm.com.pl
v1.0, 2 kwietnia 2000

Instalacja graficznych tabletów (nie tylko) Wacoma pod Linuksem i/lub XFree86.

## 1. Prawa autorskie

Prawa autorskie należą do Stefana Runkela (c) 1999 Runkel@runkeledv.de

Dokument ten opisuje proces instalacji tabletów Wacoma pod systemem Linux.
Nieskrępowane używanie, rozpowszechnianie oraz reprodukowanie tego dokumentu jest możliwe pod następującymi warunkami:

- Nie wolno pomijać lub modyfikować informacji o prawach autorskich do tego dokumentu.
- Nie wolno pomijać lub modyfikować numeru wersji oraz daty tego dokumentu.
- Nie wolno pomijać lub modyfikować wskazania do aktualnej wersji WWW dokumentu.
- Należy jednoznacznie oznaczać wszelkie skrócone, poprawione lub zmodyfikowane wersje tego dokumentu.

## 2. Wprowadzenie

Tablety graficzne są obecnie niezbyt drogie i mogą być bardzo pomocne przy obróbce obrazów. Obok tego czego możemy dokonać przy użyciu myszy tablety cechuje dodatkowa funkcjonalność:

- możliwość określenie poziomu nacisku i nachylenia
- precyzyjna kontrola ruchów
- określanie położenia kursora z dokładnością do jednego punktu (pixela)
- podobne do piórka i jak ono obsługiwane urządzenie wejściowe

Dokument ten opisuje głównie produkty firmy Wacom. Powodem tego jest fakt posiadania przeze mnie trzech różnych urządzeń tego producenta oraz to, że są one bardzo popularne w Europie.

Niemniej jednak, sądzę że zaadaptowanie nakreślonej koncepcji do innych produktów nie powinno być rzeczą trudną.

Powodem napisania tego dokumentu było to, iż nigdzie w Sieci nie mogłem znaleźć niczego podobnego. Zamiast tego miałem bardzo dużo dokumentów opisujących temat tylko częściowo. Po ich przeczytaniu, wciąż pozostawały (i nadal pozostają) otwarte pytania, na które nie znałem odpowiedzi. Zmusiło mnie to do zadawania pytań wielu różnym ludziom.

Po tym wszystkim co zostało zrobione, nadal jestem przekonany, że dokument ten był tego wart.

## 2.1 Nowe wersje dokumentu

Oryginał tego dokumentu znajduje się pod adresem: http://www.runkeledv.de/linux.htm

## 2.2 Uwagi i Poprawki

Mile widziane są wszelkie komentarze, poprawki oraz uzupełnienia. Skontaktować się można ze mną pod adresem:

Runkel@runkeledv.de

## 2.3 Podziękowania

Chciałbym podziękować wszystkim autorom wymienionym w sekcji Dalsze informacje/wykorzystane dokumenty oraz wszystkim osobom, które odpowiedziały na moje pytania pocztą elektroniczną. Ten dokument jest odzwierciedleniem ich pracy.

## 3. Wymagania

Ten rozdział mówi co jest potrzebne aby tablet zaczął działać

## 3.1 Jaki sprzęt jest obsługiwany

Na początek powinieneś zdobyć tablet. Ponieważ obsługa USB pod Linuksem jest wciąż w fazie rozwoju, a ADB najprawdopodobniej długo już nie pociągnie, powinien to być model wyposażony w port szeregowy (RS232)

Obsługiwane są następujące tablety Wacoma:

- seria ArtZ II (znana w Europie jako UltraPad - ta sama nazwa używana była przez częściowo obsługiwane wcześniejsze modele)
- ArtPad II
- PL300 (połączenie tableta i wyświetlacza LCD)
- Pen Partner
- Graphire (mysz i rysik, do ich obsługi musisz mieć sterownik przynajmniej w wersji alpha 11 - szczegóły poniżej)
- seria Intuos (sterowniki zawarte w bieżących dystrybucjach XFree86 mogą obsługiwać je tylko częściowo, aktualną wersję alpha można znaleźć na stronie Frederica Lepieda: http://www.lepied.com/xfree86/)

Pomimo, iż starsze tablety Wacoma z serii SD oraz HD nie są standardowo obsługiwane przez sterowniki XFree86, istnieje zmodyfikowany sterownik obsługujący zarówno te, jak i inne urządzenia (np. produkty OEM ze zintegrowanymi wyświetlaczami, takie jak IBM Thinkpad 360 PE oraz Toshiba T200). Wspomniany sterownik znajduje się pod adresem: http://hwr.nici.kun.nl/pen-computing/pen-computing-formats.html

## 3.2 Jakiego oprogramowania potrzebujemy

- Jeśli potrzebujesz obsługi tableta pod linuksową konsolę, ściągnij najnowszą wersję programu gpm spod adresu ftp://ftp.prosa.it/pub/gpm lub z ftp://animal.unipv.it/pub/gpm (kopia)

- Jeśli chcesz korzystać z tableta pod XFree86, musisz posiadać to oprogramowanie przynajmniej w wersji 3.3.3.1. Najnowsze aktualizacje znajdują się pod adresem http://www.xfree.org

## 3.3 Jakie oprogramowanie jest obsługiwane

- Jedynym programem jaki znam dla konsoli linuksowej jest gpm.

- Dla XFree słowem kluczowym jest XInput. Po pierwsze specyfikacja ta musi być obsługiwana przez sterownik urządzenia, który dostarcza dodatkowe informacje. Po drugie programy, które chcą używać alternatywnych urządzeń wskazujących, muszą rozumieć XInput.

Wiele programów bazuje na bibliotece gtk. Gtk posiada obsługę specyfikacji XInput dzięki czemu łatwo jest z niej skorzystać.

Wsparcie dla XInput zawieraja poniższe aplikacje:

- The Gimp - potężny program do przetwarzania obrazów w stylu pakietu Photoshop. Niestabilna wersja rozwojowa 1.1.x standardowo obsługuje XInput. W chwili pisania niniejszego dokumentu (10/99) Gimp 1.1.x znajdował sie w fazie zamrażania funkcjonalności. Mam nadzieję że do końca roku 1999 wydana zostanie stabilna wersja 1.2. Gimpa można ściągnąć spod adresu http://www.gimp.org, naprawdę na to zasługuje! Jestem pewny, że większość z Was zna ten program i że to właśnie on był powodem kupna tableta.

- gsumi - prosty, czarno-biały program do rysowania obsługujący zmiany nacisku i nachylenia podczas kreślenia/wycierania. Dostępny na stronie: http://www.gtk.org/~otaylor/gsumi/

- xink (autorstwa Ralpha Leviena) - kolejny prosty program graficzny dla X.

  xink można ściągnąć z serwera plików: ftp://kiwi.cs.berkeley.edu/pub/raph/xink.tar.gz

- RasMol - program do wizualizacji molekularnej obsługujący specjalistyczne urządzenie wejściowe (dial box) przy użyciu XInput.
  Zajżyj na stronę http://www.umass.edu/microbio/rasmol/distrib/rasman.htm.

- xinput (autorstwa Frederica Lepieda) - bardzo przydatne narzędzie do konfigurowania i testowania urządzeń XInput. xinput jest dostępny pod adresem: ftp://ftp.x.org/contrib/utilities/xinput-1.2.tar.gz

## 4. Tablety jako zamiennik myszy dla konsoli Linuksa

## 4.1 Tablety i gpm

Demon gpm obsługuje całkiem sporą liczbę urządzeń wejściowych, w tym tablety. Jeżeli chciałbyś otrzymać listę obsługiwanych przez Twoją wersję gpm urządzeń wykonaj następujące polecenie:

gpm -t help

Pomimo tego, że nie znalazłem nic na ten temat w dokumentacji, wydaje mi się że zawarty w gpm-ie sterownik do Wacoma został napisany dla bardzo starych modeli UltraPad. Testowałem go z modelami PenPartner, Graphire oraz Intuos ale nie działał. Dopisałem obsługę Graphire dla gpm, aby jej użyć potrzebna jest przynajmniej wersja 1.18.1 programu gpm.

Jeżeli posiadasz starego ArtPada, spróbuj wykonać: killall gpm ; gpm -t wacom -m /dev/ttyS0 powinno zadziałać.
Jeśli używasz modelu Graphire, polecenie powinno wyglądać następująco: killall gpm ; gpm -t graphire -m /dev/ttyS0

Oczywiście, uzyskasz dostęp wyłącznie do funkcji ruchu i klawiszy, nacisk i pochylenie nie będą obsługiwane, gdyż tak naprawdę nie są to zbyt przydatne funkcje w aplikacjach tekstowych.

Jeżeli równocześnie korzystasz z gpm i XFree86 to możesz, choć nie musisz, popaść w kłopoty w związku z tym, że w tym samym czasie urządzenie zwykle może być używane tylko przez jeden program. Istnieją dwa rozwiązania tego problemu:

- Tryb powtarzania gpm. Jeżeli uruchomisz serwis gpm z opcją "-R protokół" to wszystkie otrzymane dane będą przesyłane do urządzenia /dev/gpmdata. Powiedzmy, że masz mysz typu ps2 i twoje wywołanie gpm wygląda następująco: gpm -t ps2 -Rmman. Serwis gpm otrzymuje dane od myszy ps2 i próbuje przetłumaczyć je na pakiety mman, które z kolei są przesyłane do /dev/gpmdata. Niestety w chwili pisania tego dokumentu gpm potrafi przetłumaczyć dane tylko dla kilku protokołów. Jeżeli chciał(a)byś pominąć proces tłumaczenia i przesyłać dane bajt po bajcie, wywołaj po prostu gpm -t ps2 -R raw. Następnie, umieszczając linie Device "/dev/gpmdata" w sekcji pointer lub Xinput pliku XF86Config umożliwiamy XFree korzystanie z tego drugiego urządzenia.

- Jeżeli używasz startx, możesz zmodyfikować to polecenie tak by wykonywało gpm -k przed uruchomieniem serwera X. Ta opcja usuwa działający serwis gpm.

## 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

1. Ustaw DebugLevel na 6
2. Uruchom serwer X wypisując polecenie X 2>t
3. Dotknij powierzchni tableta po kolei wszystkimi urządzeniami, zapamiętując kolejnosć.
4. Usuń proces serwera X (zwykle Ctrl+Alt+Backspace)
5. 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.

## 6. Zmiany konfiguracji pod działającymi X-ami

## 6.1 Konfigurowanie Gimpa w celu wykorzystania urządzeń XInput

Począwszy od wersji 1.1.x Gimp posiada wbudowaną obsługę XInput.

Aplikacja musi jednak wiedzieć, którego urządzenia powinna użyć i w jakim trybie. Aby to ustawić powinieneś otworzyć okno dialogowe Plik/Okna dalogowe/Urządzenia wejściowe (w wersji angielskiej File/Dialogs/Input Devices). U góry okna znajdziesz dwie rozwijane listy z etykietami Urządzenie (Device) oraz Tryb (Mode). Z pierwszej wybierz urządzenie z drugiej tryb obsługi.

Tryby te to:

- Wyłączone (disabled): Gimp nie wykorzystuje danego urządzenia.
- Okno (window): Gimp korzysta z urządzenia. (Kursor jest rysowany przez tą apliakcje ???)
- Ekran (screen): Gimp korzysta z urządzenia. (Kursor jest rysowany przez serwer X ???)

Jeżeli widzimy, że znaszym urządzeniem związane są dwa kursory, mamy dwa rozwiązania:

- Możemy użyć trybu ekranu, ale może to (choć nie musi) spowodować utrate specjalnych kursorów gimp-tool. Jeśli tak się stanie, wszystkie kursory zostaną zastąpione przez kursor-ołówek.
- Możemy też w pliku XF86Config skonfigurować dwa różne urządzenia, jedno jako AlwaysCore a drugie bez tej opcji. Musimy jeszcze powiadomić gimpa by drugie z urządzeń wykorzystywał w trybie okna. Jeśli tak uczynimy, a w naszym pliku XF86Config używamy jednego z ustawień TopX, TopY, BottomX oraz BottomY, musimy zadbać by obydwa urządzenia logiczne miały te same ustawienia dla tych parametrów. W przeciwnym wypadku możemy być zaskoczeni, tym że X-y wyswietlą kursor jednego z urządzeń podczas gdy aktywne będzie drugie. Efektem tego będzie kursor znacznie odsunięty od punktu akcji.

Poniżej obydwu rozwijanych list znajdują się pola kontrolne z zakładkami Osie (Axes) oraz Klawisze (Keys). Osie przypisują osiom funkcje. W większości przypadków nie potrzeba zmieniać tych ustawień, ale możesz zastanowić się nad ekranem dotykowym, który został zamontowany w pozycji obróconej o 90 stopni. W tym przypadku moglibyśmy chcieć zamienić ze sobą osie x i y.

Niektóre tablety posiadają umieszczone u góry specjalne klawisze makropoleceń (makro), kórym mogą być przypisane często używane funkcje. Zakładka Klawisze pozwala na przypisanie do klawisza makro pwnego znaku. Na przykład do klawisza makro można przypisać kombinację Ctrl+Shift+R. Jeżeli zostanie on naciśnięty, wywołana zostanie funkcja włączenia/wyłączenia linijki.
Obecne sterowniki do tabletów Wacoma obsługują klawisze makro jedynie w UltraPadach, pola klawiszy w tabletach Intuos nie są wykorzystane w ten sposob.

Powinniśmy teraz omówić jak możemy korzystać z naszych urządzeń. Otwórz okno dialogowe Plik/Okna dialogowe/Stan urządzenia (File/Dialogs/Device Status). Otwórz dowolny plik z rysunkiem.

Każde urządzenie wejściowe w gimpie jest konfigurowane osobno.

Jeżeli będziesz poruszał kursorem w oknie rysunku przy użyciu różnych urządzeń zauważysz zmianę urządzeń w oknie dialogowym Stan urządzenia. Jeśli wybierzesz dowolne narzędzie, pędzel, wzór lub kolor zmiana także zostanie uwzględniona. Aby wybrane ustawienia zostały odtworzone przy następnej sesji gimpa można je tam zapisać.

## 6.2 Urządzenie przełącznika (SWITCH)

Jest to, cały czas aktywne, urządzenie specjalne. Generuje ono zdarzenia za każdym razem gdy nowe urządzenie przejmuje wskaźnik w trybie podstawowym. Posiada ono pseudo "oś". "Wartość" na tej osi jest identyfikatorem urządzenia będącego wskaźnikiem podstawowym. Nie mam pojęcia co użytkownik mógłby zrobić z urządzeniem przełącznika - głównie jest ono przydatne dla programistów.

## 6.3 Przyciski

Przyciski, w które są wyposażone urządzenia wejściowe mogą być tak zróżnocowane jak same urządzenia:
Rysik posiada przynajmniej czubek, ale może też mieć jeden lub dwa przyciski na boku oraz gumke na drugim końcu. Myszy mogą mieć do 32 klawiszy (choć zwykle mają ich 3). Przyciski ponumerowane są od 1 do liczby klawiszy. Opisane poniżej dwa programy pozwalają na modyfikacje liczby wykorzystywanych klawiszy.

## 6.4 Przyporządkowywanie przycisków przy użyciu xmodmap dla urządzeń pracujących w trybie podstawowym

xmodmap będzie modyfikował jedynie wskaźnik podstawowy (Core Pointer). Jako że w danym momencie istnieje tylko jeden wskaźnik podstawowy, nie mają znaczenia różnice pomiędzy fizycznymi urządzeniami, które mogą stać się takim wskaźnikiem. Na jakiś czas zapomnijmy o całym tym XInput i pomyślmy o osobie leworęcznej, która chciałaby zamienić znaczenie prawego i lewego przycisku myszy. Aby poznać stan aktualny można wykonać polecenie xmodmap -pp. W odpowiedzi powinniśmy otrzymać następującą tabelę:

> `

>     Physical        Button
>     Button          Code
>     1              1      # ( lewy     przycisk )
>     2              2      # ( prawy    przycisk )
>     3              3      # ( środkowy przycisk )

> `

Aby zamienić klawisze należy wykonać polecenie xmodmap -e "pointer = 2 1 3", oraz xmodmap -e "pointer = default" aby przywrócić poprzednie przypisanie. Powinno to działać dla dowolnych urządzeń posiadających przynajmniej dwa przyciski. Należy zaznaczyć, że wyrażenie "pointer = x x x" musi być zawarte w cudzysłowach by zapobiec jego modyfikacji ze strony powłoki.

## 6.5 Przyporządkowywanie przycisków przy użyciu xinput dla urządzeń pracujących w trybie rozszerzonym

Wróćmy ponownie do XInput. Jeśli używasz gimpa, możesz chcieć zmienić przyporządkowanie klawiszy dla każdego urządzenia osobno (możesz być zadowolony z myszy, ale chciałbyś zamienić znaczenia dwóch bocznych przycisków rysika). Frederic Lepied napisał w tym celu program o nazwie xinput.

Aby zamienić boczne przyciski powinieneś wykonać polecenie xinput list w celu uzyskania listy urządzeń wraz z ich aktualnymi ustawieniami. Zamiana realizowana jest przez wykonanie xinput set-button-map Pen1 1 3 2 gdzie Pen1 jest urządzeniem, które chcemy zmienić.

Począwszy od XFree 3.3.2 rozwiązanie to działa dla urządzeń skonfigurowanych (w pliku XF86Config) jako AlwaysCore.

## 6.6 xsetmode - zmiany trybu pracy na względny oraz bezwzględny

Przy pomocy xsetmode możliwe jest przełączanie urządzenia pomiędzy trybem bezwzględnym (absolute) a względnym (relative) trybem pracy.

Przykład:
xsetmode GraphireMouse ABSOLUTE

## 6.7 xsetpointer - ustawianie domyślnego urządzenia podstawowego

Jeżeli żadne z naszych urządzeń nie zostało skonfigurowane jako AlwaysCore a chcielibyśmy by jedno z nich zostało wskaźnikiem podstawowym musimy użyć programu xsetpointer.

Wykonaj polecenie xsetpointer NazwaUrządzenia. Stare urządzenie podstawowe (zwykle jest to mysz) nie będzie już dłużej wykorzystywane, jego miejsce zajmie urządzenie wyspecyfikowane w naszym poleceniu. Dla przykładu możliwe jest przypisanie funkcji wskaźnika podstawowego myszy Graphire w uruchomionych wczesniej XFree.

xsetpointer -l wypisuje listę wszystkich urządzeń oraz ich trybów pracy.

## 6.8 Klawisze

Niektóre urządzena posiadają klawisze makro lub specjalne pola, którym można przypisać pojedyncze znaki sterujace lub też ich ciągi. Działa to wyłącznie dla urządzeń pracujących w trybie rozszerzonym, a co za tym idzie, realizowane jest przez te aplikacje, które chcielibyśmy by wykorzystywały klawisze.

xinput -l daje nam informacje na temat liczby klawiszy czy też wysyłanych znaków sterujących.

## 6.9 Narzędzia do korzystania z więcej niż jednego tableta oraz do włączania i wyłączania obsługi

Posiadam 3 tablety Wacoma, które używam wraz z moim notebookiem. Za każdym razem gdy uruchamiam X-y, a żaden z tabletów nie jest podłączony do komputera, musi upłynąć sporo czasu nim sterowniki się poddadzą. Jeżeli uruchamiany jest xdm okres oczekiwania znacznie się wydłuża.

Stworzyłem dwa narzędzia, które powinny ułatwić życie wszystkim którzy są w takiej samej sytuacji:

- Skrypt powłoki sx dla tych, którzy używają startx. sx korzysta z pola dialogowego do prezentacji całkiem ładnego menu pozwalającego na wybór:
  - jednego z 10 urządzeń (tablet, joystick, ...)
  - wykorzystywanego wyświetlacza dla notebooków (ekran wewnętrzny lub zewnętrzny)
  - używanego window managera

- Mała aplikacja gtk xinput-chooser dla tych, którzy używają xdm. Za każdym razem, gdy wyświetlany jest ekran logowania xdm, xinput-chooser prezentuje użytkownikowi listę menu, z której można wybrać jedną z dziesięciu różnych konfiguracji.

Koncepcją, która leży u podstaw działania obu programów, jest podział pliku XF86Config na plik XF86Config.bare, zawierający informacje wspólne dla wszystkich konfiguracji, oraz szereg małych plików zawierających specyficzne informacje na temat poszczególnych konfiguracji.

Obydwa narzędzia łączą te części w działającą całość.

Pakiet ten jest dostępny na stronie http://www.runkeledv.de/download, pod nazwą xinput_chooser_sr.

## 7. Dalsze informacje/wykorzystane dokumenty

gpm:
strona podręcznika (man) gpm, FAQ gpm, kod źródłowy pliku mice.c

XInput:
dokument XInput HOWTO autorstwa Owena Taylora

XFree oraz Wacom:
podręcznik XF86Config

strona Web Frederica Lepieda

dużo, dużo listów...

## 8. Od tłumacza

Dokument ten został napisany w standardzie ISO-8859-2.

Tłumaczenie to jest chronione prawami autorskimi (c) Marka Guevara Braun. Dozwolone jest rozprowadzanie i dystrybucja na prawach takich samych jak dokument oryginalny.

Jeżeli znalazłeś(łaś) jakieś błędy ortograficzne, gramatyczne, składniowe lub techniczne to napisz do mnie na adres marek@atm.com.pl

Oficjalną stroną tłumaczeń HOWTO jest http://www.jtz.org.pl/

Aktualne wersje przetłumaczonych dokumentów znajdują się na tejże stronie. Dostępne są także poprzez anonimowe ftp pod adresem ftp://www.jtz.org.pl/pub/Linux/JTZ/

Zmiany wprowadzone przez tłumacza w stosunku do oryginału to odnośniki do polskich serwerów ftp i WWW oraz zmiana pisowni nazw produktów Wacoma (Intuos zamiast intuos, Graphire zamiast graphire, itp.)