Kategorie: Computer

Tabletstifttasten anders belegen unter Linux

Wie es sich herausstellte war die Tastenbelegung des Stiftes unter Linux anders als die unter Windows, da dies deutlich störend für mich ist, habe ich mich auf die suche gemacht, wie man die Tastenbelegung ändern kann.

Dabei muss man wie so oft Hand an die Kofigurationsdateien legen, diesmal ist es wieder die xorg.conf. Diese eidtieren wir nun als root oder über sudo:

1
sudo nano /etc/X11/xorg.conf

Dort suchen wir nach den Einträgen die wir eh schon für unsere Stifteingabe angelegt haben und fügen die fett markierten Zeilen hinzu:

1
2
3
4
5
6
7
8
9
10
11
12
13
Section "InputDevice"
  Driver "wacom"
  Identifier "stylus"
  [...]
  <strong>Option "Button2" "3"</strong>
EndSection

Section "InputDevice"
  Driver "wacom"
  Identifier "eraser"
  [...]
  <strong>Option "Button1" "2"</strong>
EndSection

Damit verhält sich der Stift dann wie unter Windows. Möchte man noch den Rechtklick über langes gedrückthalten der ersten Maustaste (halten des Stiftes) simulieren so geht dies in den Mauseinstellungen von Gnome unter dem Reiter Barrierefreiheit.


Opera in die Paketquellen von Ubuntu aufnehmen

Da ich ein Fan der Synaptic beziehungsweise apt Werkzeuge bin, versuche ich stets, Software die ich verwende in die Paketquellen mit aufzunehmen damit ich mich nicht mehr selbstständig um die Aktualisierung kümmern muss.

Von Opera gibt es bereits die Paketquellen, also muss man diese nur in Synaptic hinzufügen:

1
2
Synaptic -> Einstellungen -> Paketquellen -> Software von Drittanbietern -> Hinzufügen
deb http://deb.opera.com/opera etch non-free

Dann einfach noch den Authentifizierungsschlüssel über die Konsole mit:

1
wget -O - http://deb.opera.com/archive.key | sudo apt-key add -

Importieren. Man muss dazu das Benzuterpasswort eingeben, die Aufforderung geht ein wenig in wget unter.

Nun in Synaptic einfach auf „Neu laden“ klicken und schon sollte sich Opera in den auswählbaren Paketen befinden.

Diese Anleitung entstand auf Basis von:
Sven’s Wiki – Opera


Xubuntu vom USB-Stick installieren über Unetbootin

Unetbootin ist ein Programm welches die Erstellung von bootbaren USB Medien automatisieren soll. Unetbootin ist von der Homepage des Projekts erhältlich. Da es kein vorgefertigtes Paket für Fedora gibt habe ich kurzentschlossen die Binary heruntergeladen.

Ein chmod +x unetbootin-linux-304 später kann ich die Datei ausführen, zwei Warnmeldungen machen mir klar, dass ich noch die sogenannten mtools und p7zip installieren muss, welche sich glücklicherweise in den vorgefertigten Paketen befinden.

Das Programm sollte erst gestartet werden, wenn der USB Stick tatsächlich angeschlossen ist, sonst kann man ihn nicht mehr auswählen. Dann kann man entweder die gewünschte Distribution auswählen oder ein ISO-Image angeben. Ich hatte bereits das Image und habe es einfach ausgewählt und auf los geklickt und eine Minute später war der Vorgang bereits abgeschlossen.

Im Nachhinein stellte sich dann allerdings heraus, dass der USB Stick ein paar Sonderzeichen im Namen hatte mit denen Unetbootin nicht klar kam, daher musste ich den USB-Stick manuell an einen Ort mounten der keine Sonderzeichen oder Leerzeichen enthielt, daraufhin dauerte der Erstellungsprozess auch deutlich länger.

Danach kann man dann einfach die Live-CD-Umgebung vom USB-Stick booten und auch normal davon installieren.

Ich vermisse eine Möglichkeit ein verschlüsseltes System einzurichten, eventuell müsste ich dort auf das sogenannte „alternate install“ Abbild zurückgreifen.


Tablet-PC Funktionalität unter Fedora 10 aktivieren für Lenovo X61t (Teil 2 – Sondertasten + Rotation)

Für Ubuntu gibt es hier eine neue Anleitung:Rotation unter Ubuntu

So im zweiten Teil kümmern wir uns um die Zusatztasten des Tablets. Dazu untersuchen wir zunächst die relevanten Keycodes. Dazu gibt es zwei Werkzeuge, eins für die Konsole und eins für den XServer.
Für die Konsole showkey und für den XSever xev
Auf meinem Tablet ließen sich so folgende Keycodes herausfinden:

1
2
3
4
5
6
7
8
9
10
Taste       Showkey         xev
Rotate      191         199
Werkzeugkasten  152         (160)
Escape      1           9
Oben        103         111
Rechts      106         114
Unten       108         116
Links       105         113
Enter       28          36
Reset       Unknown-&gt;code 0x67   no_event

Bei mir waren die xev-Codes alle um 8 größer als die von showkey. Dies ist aber wohl nicht immer der Fall.
Escape und Enter haben natürlich schon die Standardfunktionen, ebenso sind die Oben, Rechts, Unten und Links-Tasten bereits richtig belegt. Der Werkzeugkasten sperrt bei mir den Bildschirm, nur der Rotierknopf ist mit keiner Funktion belegt.
Diesem wollen wir nun Leben einhauchen.
Dazu müssen wir die Tastenbelegung des XServers editieren.

1
2
3
4
cp /etc/X11/Xmodmap    /etc/X11/Xmodmap.ORIGINAL
echo "! Custom Xmodmap for X61 Tablet PC" &gt; /etc/X11/Xmodmap
xmodmap -pke &gt;&gt; /etc/X11/Xmodmap
nano /etc/X11/Xmodmap

Dort suchen wir nun nach dem oben gefundenen Keycode und schreiben hinter das Istgleich XF86User1KB.
Damit führt der Xserver dann beim Drücken der Taste die Aktion XF86User1KB aus. Jetzt müssen wir also nur noch eine Rotationsfunktion einbinden die wir dann mit der Aktion verknüpfen und dann funktioniert das ganze schon hoffentlich. Da ich nicht der erste bin der ein Tablet gekauft hat, gibt es bereits ein Python Script welches die Rotation sehr gut erledigt. (Lukes Homepage) Es ist zwar für ein X60 Tablet geschrieben aber man wird es schon so umbiegen können, dass es auch auf einem X61 Tablet läuft.
Mit folgenden Anweisungen sollte das Script installiert sein:

1
2
3
4
5
6
7
8
mkdir -p /usr/local/src/X61_XF86
pushd /usr/local/src/X61_XF86
wget http://luke.no-ip.org/x60tablet/examples/rotate
chmod ugo+x rotate
pushd /usr/local/bin
ln -s /usr/local/src/X61_XF86/rotate
popd
popd

Als nächstes müssen wir noch Berechtigungen setzen, so ist es erforderlich sudo zu verwenden wenn man den Bildschirm rotiert oder die globale Tastaturbelegung ändern möchte.
Dazu müssen wir einmal eine Gruppe der Tabletbenutzer anlegen. Gruppen werden in der Datei /etc/group eingerichtet.

1
nano /etc/group

Wir fügen in eine zusätzliche Zeile einfach folgendes ein:

1
tabletgroup:x:501:root,<strong>Tabletnutzernamen</strong>

Wobei die Nutzernamen jeweils durch Komma getrennt einzutragen sind, bei mir wäre es zum Beispiel tabletgroup:x:501:root,arsenal.
Jetzt müssen wir der Gruppe noch die Rechte zuweisen die sie haben soll: sudo benutzen für Rotation und Tastenbelegungändern. Dabei wollen wir natürlich nicht jedemal unser Passwort eingeben um dieses Ziel zu erreichen. Die Berechtigungen für sudu sind in der Datei /etc/sudoers zu finden. Also bedienen wir uns wieder unseres allseitsbeliebten Konsoleneditor als root:

1
nano /etc/sudoers

Wir fügen dort am Ende hinzu:

1
2
##Allow users to do tablet screen rotations if in this group
%tabletgroup    ALL=(ALL)       NOPASSWD:/usr/bin/setkeycodes,/usr/local/bin/rotate

Zudem suchen wir nach der Zeile:

1
Defaults    requiretty

und kommentieren diese durch voranstellen eines # aus.

Jetzt müssen wir noch die XF86User1KB mit dem rotate-Script in Verbindung bringen.
Dazu benötigt man wohl den gconf-editor (zumindest für Gnome) um das ganze etwas komfortabel zu gestalten. (Dank an Codejacked.com für den Guide)
Wir starten ihn aus dem Menü Anwendungen -> Systemwerkzeuge -> Konfigurationseditor oder über ein Terminal mit der Eingabe von gconf-editor.
Wir wechseln dann in der Liste zu apps/metacity/keybinding-commands.
Nun können wir rechts bei command_1 oder einem anderen freien Befehl folgendes eingeben:

1
sudo /usr/local/src/X61_XF86/rotate

Danach wechseln wir zu /apps/metacity/global_keybindings/run_command_1 und fügen dort XF86User1KB ein und „schon“ sollte die Rotation beim drücken des Knopfes ausgeführt werden.

Beim Testen ist mir jedoch aufgefallen, dass das Script nicht ganz funktioniert sondern aus der Funktion mit einem Fehler herausspringt, es versucht einfach für jedes Wacomgerät die Rotation zu verändern. Dummerweise ist jedoch ein recht seltsames Gerät gelistet, namens „ThinkPad Extra Buttons“, es kann jedoch nicht vom Wacomtreiber angesteuert werden. Daher muss im Script ausgeschlosssen werden, dass versucht wird die Rotation von dem Gerät zu ändern, dargestellt im folgenden Screenshot:
rotatescript
Ein Download ist auch verfügbar: rotate
Einfach als root folgendes ausführen:

1
2
3
4
5
6
7
8
mkdir -p /usr/local/src/X61_XF86
pushd /usr/local/src/X61_XF86
wget http://www.arsenal-of-wisdom.org/wp-content/uploads/2009/01/rotate
chmod ugo+x rotate
pushd /usr/local/bin
ln -s /usr/local/src/X61_XF86/rotate
popd
popd

Damit verhält sich unser Tablet schon recht zufriedenstellend unter Linux. Als nächtes werde ich versuchen die automatische Orientierung des Bildschirms zu aktivieren.

Dieser Artikel entstand haupsächlich aus Informationen die ich auf folgenden Seiten erhalten habe:
Installing Fedora 8 on an X61 Tablet
Lukes X60 tablet Seite


Tablet-PC Funktionalität unter Fedora 10 aktivieren für Lenovo X61t (Teil 1 – Stifteingabe)

So, da ich ja erfolgreich Fedora installiert bekommen habe, möchte ich natürlich auch die Tabletfunktionen unter Linux nutzen. Der erste Schritt ist herauszufinden wie das Wacom-Tablet angeschlossen ist (USB oder Seriell? Welcher Schnittstellenport?)
Unter Fedora 10 sind die Wacomtreiber schon standardmäßig installiert, aber um sicherzugehen einfach prüfen ob das paket linuxwacom installiert ist.
Dann können wir anfangen zu testen wie das Tablet angeschlossen ist, dazu nehmen wir des Administrators liebstes Werkzeug, das Terminal, und um uns richtig wichtig zu machen am besten gleich mit su den root übernehmen.
Um den seriellen Port zu überprüfen fand ich cat hilfreich. Dazu geben wir ein:

1
cat /dev/ttyS<strong>X</strong>

Wobei X für eine Nummer steht, bei mir gingen sie von 0 bis 3. Hat man den Befehl ausgeführt, berührt man mit dem Stift den Bildschirm, wenn jetzt viele lustige Zeichen über den Bildschirm huschen wissen wir an welcher seriellen Schnittstelle unser Tablet angeschlossen ist.
Um herauszufinden ob und an welchem USB-Port unser Tablet angeschlossen ist empfiehlt es sich das Werkzeug wacdump zu verwenden.

1
wacdump /dev/input/event<strong>X</strong>

Wobei wiederum für X eine Zahl eingesetzt wird. Wacdump zeigt einem allerlei Informationen an, wenn man mit dem Stift den Bildschirm berührt sollte sich einiges ändern.

Bei mir war das Tablet über die serielle Schnittstelle 0 angeschlossen. Daher werde ich mich mangels anderer Erfahrungen darauf beschränken ein serielles Tablet einzurichten.

Für gewöhnlich werden Eingabegeräte in der xorg.conf des Xorg-Display-Servers eingetragen. Bei mir (vermutlich bei Fedora 10 allgemein) existierte diese Datei jedoch nicht. Da es ohne vorkonfigurierte xorg.conf jedoch recht schwer fällt die ganze Konfiguration manuell durchzuführen lassen wir das lieber Xorg selbst machen.

Dazu sollte man den aktuellen Xorg-Server beenden, als harte Methode, einfach in ein Textterminal wechseln (Strg+Alt+F2) und sich als root anmelden. Dann finden wir den aktuellen Xorg Prozess über:

1
ps -A |grep Xorg

heraus. Das produziert dann etwa folgende Ausgabe:

1
 2538 tty1     00:00:17 Xorg

Die erste Nummer gibt die Prozessid an, die wir nun mit:
Achtung: Alle nicht gespeicherten Daten von Programmen die grade im Xorg-Server laufen gehen verloren.

1
kill 2538

beenden können.

Nachdem wir uns des Xorg-Servers erfolgreich entledigt haben, können wir nun automatisch eine xorg.conf erzeugen lassen.

1
Xorg -configure

Dieser Befehl erzeugt automatisch eine Konfigurationsdatei im Home-Verzeichnis des angemeldeten Benutzers, in dem Fall sollte die Datei unter /root/xorg.conf.new zu finden sein.
Diese kopieren wir nun an den Ort wo sie sich normalerweise befindet, /etc/X11/:

1
cp /root/xorg.conf.new /etc/X11/xorg.conf

So, nun können wir eigentlich den Xorg-Server wieder starten.

1
Xorg

Jetzt können wir die xorg.conf so abändern, dass unser Tablet als Eingabegerät erkannt wird. Wir schnappen uns wieder eine Konsole und editieren als root die xorg.conf

1
nano /etc/X11/xorg.conf

Wir sollten nun eine recht ausführliche Konfigurationsdatei vor uns sehen.
Wir fügen am Ende folgende Dinge ein:

1
2
3
4
5
6
7
Section "InputDevice"
  Driver        "wacom"
  Identifier    "stylus"
  Option        "Device"        "/dev/ttyS<strong>X</strong>"          # SERIAL ONLY
  Option        "Type"          "stylus"
  Option        "ForceDevice"   "ISDV4"
EndSection
1
2
3
4
5
6
7
Section "InputDevice"
  Driver        "wacom"
  Identifier    "eraser"
  Option        "Device"        "/dev/ttyS<strong>X</strong>"          # SERIAL ONLY
  Option        "Type"          "eraser"
  Option        "ForceDevice"   "ISDV4"               # Serial Tablet PC
EndSection
1
2
3
4
5
6
7
Section "InputDevice"
  Driver        "wacom"
  Identifier    "cursor"
  Option        "Device"        "/dev/ttyS<strong>X</strong>"          # SERIAL ONLY
  Option        "Type"          "cursor"
  Option        "ForceDevice"   "ISDV4"               # Serial Tablet PC
EndSection

Sofern das Tablet Touchfunktion unterstützt noch folgendes:

1
2
3
4
5
6
7
Section "InputDevice"
  Driver        "wacom"
  Identifier    "touch"
  Option        "Device"        "/dev/ttyS<strong>X</strong>"          # SERIAL ONLY
  Option        "Type"          "touch"
  Option        "ForceDevice"   "ISDV4"               # Serial Tablet PC
EndSection

Wobei für X jeweils die oben ermittelte serielle Schnittstelle eingetragen werden muss.
Damit kennt unser Xorg alle Eingabemöglichkeiten. Damit es sie auch nutzt müssen wir noch die Events zuweisen.
Dazu suchen wir die Stelle in der xorg.conf mit dem Namen „Serverlayout“.
Diese ändern wir ab, so dass die neuen Eingabemethoden auch benutzt werden, das kann dann so aussehen:

1
2
3
4
5
6
7
8
9
10
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
        <strong>InputDevice    "stylus"    "SendCoreEvents"
        InputDevice    "eraser"    "SendCoreEvents"
        InputDevice    "cursor"    "SendCoreEvents"
        InputDevice    "touch"  "SendCoreEvents"</strong>
EndSection

Nun starten wir den Xorg-Server neu mit Strg+Alt+Backspace.
Damit sollte die Tableteingabe nun funktionieren.
Als nächsten werfen wir dann einen Blick auf Tablet-Sondertasten und auch die Bildschirmrotation will eingerichtet werden.