Linux auf X-Serie Tablets: Unterschied zwischen den Versionen

Aus ThinkPad-Wiki
(Tablet Buttons reaktivieren hinzugefügt)
 
(31 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Einleitung==
==Einleitung==
Die gerätespezifischen Funktionen der X-Tablets funktionieren unter Linux zumeist nicht gleich nach der Installation des Grundsystems oder sie funktionieren nur zum Teil. Dieser Beitrag zeigt Wege auf, wie die Tabletfunktionen unter verschiedenen Linux-Distibutionen eingerichtet werden können.
Die gerätespezifischen Funktionen der ThinkPad X-Serie Tablets funktionieren unter Linux zumeist nicht gleich nach der Installation des Grundsystems oder sie funktionieren nur zum Teil. Dieser Beitrag zeigt Wege auf, wie die Tabletfunktionen unter verschiedenen Linux-Distibutionen eingerichtet werden können.


==Debian==
==Debian==
=== Grundinstallation ===
=== Grundinstallation ===


Die folgende Installationsanleitung bezieht sich auf ein [[X61#X61_Tablet|X61t]] mit Debian Testing. Sie ist jedoch in Grundzügen auch auf andere Tablets der X-Serie anwendbar. Auf bekannte Besonderheiten bzgl. andere Modelle der X-Serie wird weiter unten eingegangen. Als Installationmedium kann ein Image von [http://www.debian.org www.debian.org] verwendet werden. Hierzu wird empfohlen erst ein Grundsystem ohne X (also ohne grafische Oberfläche) zu installieren. Nach einer Anpassung der Dateien /etc/fstab (falls erforderlich) und /etc/apt/sources.list kann nun der bevorzugte Desktop-Manager installiert werden. Für die hier aufgezeigte beispielhafte Installation von Debian Testing wurde Gnome 3 verwendet. Es sind jedoch auch andere Desktop Environments denkbar. Dabei ist dann jedoch zu beachten, dass bspw. bei der weiter unten aufgezeigte Möglichkeit mit der Ansteuerung mittels Schnellstartern eventuell etwas andere Wege in Bezug auf die Darstellung am Desktop gewählt werden müssen.
Die folgende Installationsanleitung bezieht sich auf ein [[X61#X61_Tablet|ThinkPad X61t]] mit Debian Testing. Sie ist jedoch in Grundzügen auch auf andere Tablets der X-Serie anwendbar. Auf bekannte Besonderheiten bzgl. andere Modelle der X-Serie wird ggf. eingegangen. Als Installationmedium kann ein Image von [http://www.debian.org www.debian.org] verwendet werden. Hierzu wird empfohlen erst ein Grundsystem ohne X (also ohne grafische Oberfläche) zu installieren. Nach einer Anpassung der Dateien /etc/fstab (falls erforderlich) und /etc/apt/sources.list kann nun der bevorzugte Desktop-Manager installiert werden. Für die hier aufgezeigte beispielhafte Installation von Debian Testing wurde Gnome 3 verwendet. Es sind jedoch auch andere Desktop Environments denkbar. Dabei ist dann jedoch zu beachten, dass bspw. bei der weiter unten aufgezeigte Möglichkeit mit der Ansteuerung mittels Schnellstartern eventuell etwas andere Wege in Bezug auf die Darstellung am Desktop gewählt werden müssen.


===Erster Reboot unter X===
===Erster Reboot unter X===


Nach dem ersten Neustart funktioniert bereits die Eingabe mittels Stift. Bis hierhin wurden noch keine Veränderungen am System vorgenommen. Die Bildschirmrotation funktioniert noch nicht, die Sondertasten unterhalb des Bildschirms (im folgenden Hardwarebutton genannt) weisen noch keine Funktion auf.
Nach dem ersten Neustart funktioniert bereits die Eingabe mittels Stift. Bis hierhin wurden noch keine Veränderungen am System vorgenommen. Die Bildschirmrotation funktioniert noch nicht, die Sondertasten unterhalb des Bildschirms (im folgenden '''Tablet-Tasten''' genannt) weisen noch keine Funktion auf.


===Anforderungen und Ziele===
===Anforderungen und Ziele===
Zeile 15: Zeile 15:
Das X-Tablet soll die folgenden Anforderungen erfüllen können:
Das X-Tablet soll die folgenden Anforderungen erfüllen können:


* '''Rotations-Button''' - Es soll eine Bildschirmrotation von 90° gegenüber der vorherigen Einstellung über einen Knopfdruck auf den Rotationsbutton (Hardwarebutton) ausgeführt werden. Des Weiteren soll sich die Stiftausrichtung automatisch so verändern, dass die Ausrichtung des Stiftes der Ausrichtung des Bildschirms folgt.
* '''Rotations-Taste''' - Es soll eine Bildschirmrotation von 90° gegenüber der vorherigen Einstellung über einen Knopfdruck auf den Rotationstasten (Tablet-Tasten) ausgeführt werden. Des Weiteren soll sich die Stiftausrichtung automatisch so verändern, dass die Ausrichtung des Stiftes der Ausrichtung des Bildschirms entspricht.
* '''Schnellstarter''' - Es sollen Schnellstarter vorhanden sein, mit der eine beliebige Bildschirmausrichtung unter Umgehung des Rotationsbuttons sofort anwählbar ist. Auch hier soll sich der Stift der Bildschirmausrichtung anpassen.
* '''Schnellstarter''' - Es sollen Schnellstarter vorhanden sein, mit der eine beliebige Bildschirmausrichtung unter Umgehung des Rotationstasten sofort anwählbar ist. Auch hier soll sich der Stift der jeweiligen Bildschirmausrichtung anpassen.
* '''Super-Taste''' - Unter Gnome 3 ist der Super-Taste eine elementare Funktion zugeordnet. Ein Hardware-Button soll diese Funktion übernehmen.
* '''Super-Taste''' - Unter Gnome 3 ist der Super-Taste eine elementare Funktion zugeordnet. Eine Tablet-Taste soll diese Funktion übernehmen.
* '''Hoch / Runter / Rechts / Links-Tasten''' - Die Tablets der Serie X6xt verfügen an der rechten Bildschirmunterkante über eine gemeinsame Taste, die die Funktionen ''Hoch'', ''Runter'', ''Rechts'' und ''Links'' ausführen kann. Die Funktionen ''Hoch'' und ''Runter'' sind im Tablet-Modus durchaus sinnvoll, die Funktionen ''Rechts'' und ''Links'' sind zum Beispiel beim surfen eher unwichtig und sollen durch die Tastenbelegungen ''Vor'' und ''Zurück'' ersetzt werden.
* '''Hoch / Runter / Rechts / Links-Tasten''' - Die Tablets der Serie X6xt verfügen an der rechten Bildschirmunterkante über eine gemeinsame Taste, die die Funktionen ''Hoch'', ''Runter'', ''Rechts'' und ''Links'' ausführen kann. Die Funktionen ''Hoch'' und ''Runter'' sind im Tablet-Modus durchaus sinnvoll, die Funktionen ''Rechts'' und ''Links'' sind zum Beispiel beim surfen eher unwichtig und sollen durch die Tastenbelegungen ''Vor'' und ''Zurück'' ersetzt werden, damit zwischen besuchten Webseiten hin- und hergeschaltet werden kann.
* '''Mitdrehen der Hoch / Runter / Vor / Zurück - Tasten''' - Die oben genannten Tasten sollen sich bei der Bildschirm-Rotation mitdrehen und der Bildschirmausrichtung folgen. Hält der Nutzer bspw. sein Tablet hochkant, soll ''Zurück'' zu ''Hoch'' werden, ''Vor'' zu ''Runter'', ''Runter'' zu ''Zurück'' und ''Hoch'' zu ''Vor''. Es soll also eine nach der jeweiligen Ausrichtung eine logische Anordnung der Tasten gegeben sein.
* '''Mitdrehen der Hoch / Runter / Vor / Zurück - Tasten''' - Die oben genannten Tasten sollen sich bei der Bildschirm-Rotation mitdrehen und der Bildschirmausrichtung folgen. Hält der Nutzer bspw. sein Tablet hochkant, soll ''Zurück'' zu ''Hoch'' werden, ''Vor'' zu ''Runter'', ''Runter'' zu ''Zurück'' und ''Hoch'' zu ''Vor''. Es soll also eine nach der jeweiligen Ausrichtung des Gerätes logische Anordnung der Tasten gegeben sein.
* '''Automatische Bildschirm-Rotation''' - Auf diesen Punkt wird hier nicht eingegangen.
* '''Automatische Bildschirm-Rotation''' - Auf diesen Punkt wird hier nicht eingegangen.


===Hardware-Buttons konfigurieren===
===Tablet-Tasten konfigurieren===


Eine Möglichkeit den Scancode herauszufinden bietet das Programm '''evtest'''. evtest erfordert root-Rechte. Führen Sie also die folgenden Befehle als root aus. Das Programm evtest befindet sich in den Main-Repos und kann über einen Paket-Manager installiert werden. Als erstes wird herausgefunden, welches Device enötigt wird.
Eine Möglichkeit den Scancode herauszufinden bietet das Programm '''evtest'''. evtest erfordert root-Rechte. Führen Sie also die folgenden Befehle als root aus. Das Programm evtest befindet sich in den Main-Repos und kann über einen Paket-Manager installiert werden. Als erstes wird herausgefunden, welches Device enötigt wird.
Zeile 42: Zeile 42:
  Event: time 1326493063.385664, -------------- Report Sync ------------
  Event: time 1326493063.385664, -------------- Report Sync ------------


Die wichtigen Werte habe sind in diesem Beispiel '''value 68''' und '''code 125'''. Die Scancodes der Hardware-Buttons sollten nun der Reihe nach ausgelesen und notiert werden. Mit den gewonnen Werten kann man schon ein wenig arbeiten. Um beispielsweise die mittlere der drei Hardware-Buttons mit dem Keysym der Supertaste zu hinterlegen, gibt man als root den folgenden Befehl ein:
Die wichtigen Werte habe sind in diesem Beispiel '''value 68''' und '''code 125'''. Die Scancodes der Tablet-Tasten sollten nun der Reihe nach ausgelesen und notiert werden. Mit den gewonnen Werten kann man schon ein wenig arbeiten. Um beispielsweise die mittlere der drei Tablet-Tasten mit dem Keysym der Supertaste zu hinterlegen, gibt man als root den folgenden Befehl ein:


  root# setkeycodes 68 125
  root# setkeycodes 68 125
Zeile 51: Zeile 51:


  #rc.local
  #rc.local
  # Button Left
  setkeycodes 6e 158  # Button Left  
  setkeycodes 6e 158
  setkeycodes 6d 159  # Button Right
  setkeycodes 68 125  # Super-Taste
# Button Right
  setkeycodes 6d 159


Damit können die Tasten schon die vorgesehen Aktionen ausführen.
Damit können die Tasten schon die vorgesehen Aktionen ausführen. Einer der Tablet-Taste soll, wie oben beschrieben als Super-Taste genutzt werden, so dass mit einem Tastendruck die Gnome-Shell geöffnet werden kann. Das wird durch die letzte der oben gezeigten Zeilen erreicht.


===Rotationsscript===
===Rotationsscript===
Zeile 65: Zeile 63:
* Bildschirm der Reihe nach von '''none''' über '''right''' nach '''inverted''' und weiter zu '''left''' und wieder nach '''none''' drehen.
* Bildschirm der Reihe nach von '''none''' über '''right''' nach '''inverted''' und weiter zu '''left''' und wieder nach '''none''' drehen.
* Stift '''mitdrehen''', dies ist nötig, da sonst die Ausrichtung des Stiftes nicht mit der Bildschirmausrichtung übereinstimmt.
* Stift '''mitdrehen''', dies ist nötig, da sonst die Ausrichtung des Stiftes nicht mit der Bildschirmausrichtung übereinstimmt.
* Belegung der Hoch / Runter / Rechts (Vor) / Links (Zurück)-Buttons nach der Bildschirmausrichtung ändern.
* Belegung der Hoch / Runter / Rechts (Vor) / Links (Zurück)-Tasten mit der Bildschirmausrichtung ändern.
* Bildschirmausrichtung in einen status-File schreiben
* Bildschirmausrichtung in einen status-File schreiben


Zeile 79: Zeile 77:
Wie oben bereits dargestellt benötigt man für den Befehl '''setkeycodes''' root-Rechte, was eine Änderung der Datei '''/etc/sudoers''' mit sich bringt, damit das Script auch von nicht-priviligierten Nutzern ausgeführt werden kann. Dazu legt man eine Gruppe '''rotation''' an und erlaubt dieser Gruppe, den Befehl '''setkeycodes''' auszuführen. Die Bearbeitung der Datei /etc/sudoers ist hinlänglich dokumentiert, weshlab hier nicht im Detail darauf eingegangen wird.
Wie oben bereits dargestellt benötigt man für den Befehl '''setkeycodes''' root-Rechte, was eine Änderung der Datei '''/etc/sudoers''' mit sich bringt, damit das Script auch von nicht-priviligierten Nutzern ausgeführt werden kann. Dazu legt man eine Gruppe '''rotation''' an und erlaubt dieser Gruppe, den Befehl '''setkeycodes''' auszuführen. Die Bearbeitung der Datei /etc/sudoers ist hinlänglich dokumentiert, weshlab hier nicht im Detail darauf eingegangen wird.


Der '''Status-File''', der zum Auslesen der aktuellen Bildschirmausrichtung benötigt wird, kann bespielsweise im /home-Verzeichnis oder in /tmp angelegt werden. Nicht-priviligierte Nutzer müssen jedoch Schreibrechte für diese Datei haben.
Der '''Status-File''', der zum Auslesen der aktuellen Bildschirmausrichtung benötigt wird, kann bespielsweise im /home-Verzeichnis oder in /tmp angelegt werden. Nicht-priviligierte Nutzer müssen jedoch Schreibrechte für diese Datei haben.  


  touch /Pfad/zum/anzulegenden/Status-File
  touch /Pfad/zum/anzulegenden/Status-File


Hier das Rotations-Script:
Hier das Rotations-Script, gültig für ein ThinkPad X6xt:


  #!/bin/bash
  #!/bin/bash
Zeile 90: Zeile 88:
  # date: 2011-12-21
  # date: 2011-12-21
  # version: 0.0.1
  # version: 0.0.1
# update 27.08.2019 von wileE
   
   
  STATUS_FILE=/home/frank/bin/rotatex61t/.rotate-status
  STATUS_FILE=/home/frank/bin/rotatex61t/.rotate-status
  CONDITION=`cat $STATUS_FILE`
  CONDITION=`cat $STATUS_FILE`
   
   
  if [ -n "$1"  ]
  if [ -n "$1"  ] $N > $STATUS_FILE
     then
     then
     case "$1" in
     case "$1" in
Zeile 102: Zeile 101:
     0|normal)    N=0; T=none ;;
     0|normal)    N=0; T=none ;;
  esac
  esac
     /usr/bin/xrandr -o $N && xsetwacom set "Serial Wacom Tablet stylus" Rotate $T && echo $N > $STATUS_FILE
     /usr/bin/xrandr -o $N && xsetwacom set "Wacom Serial Penabled Pen stylus" Rotate $T && echo $N > $STATUS_FILE      
     else     
     else     
  case "$CONDITION" in
  case "$CONDITION" in
     0) `xrandr -o 3` && xsetwacom set "Serial Wacom Tablet stylus" Rotate cw && `sudo setkeycodes  
     0) `xrandr -o 3` && xsetwacom set "Wacom Serial Penabled Pen stylus" Rotate cw &&  
        6d 103 6e 108 71 158 6f 159` && echo 3 > $STATUS_FILE ;;
        `sudo setkeycodes 6d 103 6e 108 71 158 6f 159` && echo 3 > $STATUS_FILE ;;
     3) `xrandr -o 2` && xsetwacom set "Serial Wacom Tablet stylus" Rotate half && `sudo setkeycodes  
     3) `xrandr -o 2` && xsetwacom set "Wacom Serial Penabled Pen stylus" Rotate half &&  
        6d 158 6f 103 6e 159 71 108` && echo 2 > $STATUS_FILE ;;
`sudo setkeycodes 6d 158 6f 103 6e 159 71 108` && echo 2 > $STATUS_FILE ;;
     2) `xrandr -o 1` && xsetwacom set "Serial Wacom Tablet stylus" Rotate ccw && `sudo setkeycodes  
     2) `xrandr -o 1` && xsetwacom set "Wacom Serial Penabled Pen stylus" Rotate ccw &&  
        6e 103 71 159 6d 108 6f 158` && echo 1 > $STATUS_FILE ;;
`sudo setkeycodes 6e 103 71 159 6d 108 6f 158` && echo 1 > $STATUS_FILE ;;
     1) `xrandr -o 0` && xsetwacom set "Serial Wacom Tablet stylus" Rotate none && `sudo setkeycodes  
     1) `xrandr -o 0` && xsetwacom set "Wacom Serial Penabled Pen stylus" Rotate none &&  
        71 103 6d 159 6f 108 6e 158` && echo 0 > $STATUS_FILE ;;
`sudo setkeycodes 71 103 6d 159 6f 108 6e 158` && echo 0 > $STATUS_FILE ;;
  esac
  esac
  fi
  fi
   
   
  exit 0
  exit 0


Der obere Bereich (bis '''else''') ermöglicht die direkte Eingabe in ein Terminal (wird während der täglichen Arbeit mit dem Tablet aber nicht benötigt), der untere Bereich liest den Status-File ein und führt dann die entsprechenden Befehle aus und schreibt das Ergebnis wieder in den Status-File.
Der obere Bereich (bis '''else''') ermöglicht die direkte Eingabe in ein Terminal (wird während der täglichen Arbeit mit dem Tablet aber nicht benötigt), der untere Bereich liest den Status-File ein und führt dann die entsprechenden Befehle aus und schreibt das Ergebnis wieder in den Status-File.
Zeile 126: Zeile 126:
  root# chmod a+x /usr/local/bin/rotatex61t.sh
  root# chmod a+x /usr/local/bin/rotatex61t.sh


Über "Systemeinstellungen" --> "Tastatur" --> "Tastenkombinationen" kann die zuvor konfigurierte Rotationstaste (Hardwarebutton) mit diesem Script belegt werden.
Über "Systemeinstellungen" --> "Tastatur" --> "Tastenkombinationen" kann die zuvor konfigurierte Rotationstaste (Tablet-Taste) mit diesem Script belegt werden.
 
Soll das Script nicht auf einem ThinkPad X6xt, sondern beispielsweise auf einem ThinkPad X41t oder X20xt Verwendung finden, kann der oben genannte Punkt 3 (Belegung der Hoch / Runter / Rechts (Vor) / Links (Zurück)-Tasten mit der Bildschirmausrichtung ändern) entfallen, da diese X-Serie Tablets noch nicht bzw. nicht mehr über die genannten Hoch/Runter/Rechts/Links-Tasten verfügen. Dementsprechend muss auch das Script in einigen Punkten angepasst werden. Alle anderen Punkte der obigen Beschreibung behalten auch in Bezug auf ThinkPads der genannten Bauserien ihre Gültigkeit.
 
Hier nun als Beispiel das Rotations-Script, wie es bei einem ThinkPad X20xt verwendet werden kann:
 
#!/bin/bash
#name: rotateX200.sh
#from: frank.zimmermann@online.de
#date: 2012-01-12
#version: 0.0.1
STATUS_FILE=/home/frank/bin/rotateX201/.rotate-status
CONDITION=`cat $STATUS_FILE`
 
if [ -n "$1" ]
then
case "$1" in
3|right) N=3; T=cw ;;
1|left) N=1; T=ccw ;;
2|inverted) N=2; T=half ;;
0|none) N=0; T=none ;;
esac
/usr/bin/xrandr -o $N && xsetwacom set "Serial Wacom Tablet stylus" Rotate $T && echo $N > $STATUS_FILE
else
case "$CONDITION" in
0) `xrandr -o 3` && xsetwacom set "Serial Wacom Tablet stylus" Rotate cw && echo 3 > $STATUS_FILE ;;
3) `xrandr -o 2` && xsetwacom set "Serial Wacom Tablet stylus" Rotate half && echo 2 > $STATUS_FILE ;;
2) `xrandr -o 1` && xsetwacom set "Serial Wacom Tablet stylus" Rotate ccw && echo 1 > $STATUS_FILE ;;
1) `xrandr -o 0` && xsetwacom set "Serial Wacom Tablet stylus" Rotate none && echo 0 > $STATUS_FILE ;;
esac
fi
 
exit 0


===Schnellstarter===
===Schnellstarter===
Zeile 138: Zeile 171:
  echo 3 > /home/frank/bin/rotatex61t/.rotate-status
  echo 3 > /home/frank/bin/rotatex61t/.rotate-status


Man sieht also, dass diese einzelne Datei im Prinzip das Gleiche macht, wie der Abschnitt '''"0)"''' in der zweiten case-Verzweigung des Rotation-Scripts. Ähnliche Dateien werden nun für jede einzelne Bildschirmausrichtung nach dem Muster des Rotations-Scripts angelegt. Diese werden ebenfalls unterhalb von /usr/local/bin abgelegt und die Rechte angepasst.
Man sieht also, dass diese einzelne Datei im Prinzip das Gleiche macht, wie der Abschnitt '''"0)"''' in der zweiten case-Verzweigung des Rotation-Scripts. Ähnliche Dateien werden nun für jede einzelne Bildschirmausrichtung nach dem Muster des Rotations-Scripts angelegt. Diese werden ebenfalls unterhalb von /usr/local/bin abgelegt und die Rechte angepasst. Bitte beachten Sie, dass die Zeile 4 in obiger Beispieldatei nur bei ThinkPads der Serie X6xt notwendig ist. Sollten Sie die Datei auf einem ThinkPad einer anderen Serie verwenden, kann die Zeile 4 ersatzlos entfallen!


Als Abschluss habe ich mir noch vier Icons erstellt, die man für die Schnellstarter verwenden kann. Der rote Buchstabe steht dabei für '''right''', '''left''', '''none''' bzw. '''inverted'''.
Als Abschluss habe ich mir noch vier Icons erstellt, die man für die Schnellstarter verwenden kann. Der rote Buchstabe steht dabei für '''right''', '''left''', '''none''' bzw. '''inverted'''.
Zeile 152: Zeile 185:
"Neuer Eintrag" --> "Name: Rotate Inverted" --> "Befehl: Ablageort der Schnellstarte-Datei" --> Kommentar nach belieben.
"Neuer Eintrag" --> "Name: Rotate Inverted" --> "Befehl: Ablageort der Schnellstarte-Datei" --> Kommentar nach belieben.


Diese vier Schnellstarter können dann noch zu denn Favoriten zugefügt werden, so dass diese schnell erreichbar sind. Einer der Hardware-Button fungiert wie oben beschrieben als Super-Taste, so dass mit einem Tastendruck die Gnome-Shell geöffnet werden kann.
Diese vier Schnellstarter können dann noch zu denn Favoriten zugefügt werden, so dass diese schnell erreichbar sind.  


Sollte gewünscht werden, dass das Tablet auch im Tablet-Modus bzw. im gedrehten Zustand herunter gefahren wird, benötigt man noch eine weiter Zeile in der Datei /etc/rc.local, welche den Status-File auf "0" setzt, um nach einem Neustart wieder den Ursprungszustand herzustellen:
Sollte gewünscht werden, dass das Tablet auch im Tablet-Modus bzw. im gedrehten Zustand herunter gefahren wird, benötigt man noch eine weiter Zeile in der Datei /etc/rc.local, welche den Status-File auf "0" setzt, um nach einem Neustart wieder den Ursprungszustand herzustellen:
Zeile 199: Zeile 232:
'''''Vorsicht! Die vor der Editierung funktionierende Datei ist unbedingt zu sichern, so dass bei einer fehlerhaften Editierung der Ursprungszustand wieder hergestellt werden kann! Dies erreicht man bspw. dadurch, dass vorherige Einstellungen nicht aus der Datei gelöscht, sondern durch voranstellen eines Rautezeichens (#) auskommentiert werden. Sollte der X-Server nicht korrekt starten ist die betreffende Datei mit einem Editor auf der Konsole wieder in den Ursprungszustand zurück zu versetzen oder die Editierung zu überprüfen.'''''
'''''Vorsicht! Die vor der Editierung funktionierende Datei ist unbedingt zu sichern, so dass bei einer fehlerhaften Editierung der Ursprungszustand wieder hergestellt werden kann! Dies erreicht man bspw. dadurch, dass vorherige Einstellungen nicht aus der Datei gelöscht, sondern durch voranstellen eines Rautezeichens (#) auskommentiert werden. Sollte der X-Server nicht korrekt starten ist die betreffende Datei mit einem Editor auf der Konsole wieder in den Ursprungszustand zurück zu versetzen oder die Editierung zu überprüfen.'''''


===Besonderheiten X41 Tablet===
===Desktop schöner gestalten: Angepasste Wallpaper===
 
Ein eher ästhetischer Gesichtspunkt betrifft die Gestaltung des Desktophintergrundes. Da der Bildschirminhalt beliebig gedreht werden kann, kann der Desktophintergrund einmal bspw. die Größe 1280x800 bzw. im Hochformat dann 800x1280 betragen. Ein auf die Auflösung 1280x800 optimiertes Bild sieht jedoch in der Auflösung 800x1280 unschön aus. Es gibt grundsätzlich zwei Möglichkeiten dem Problem zu begegnen.
 
Die erste Möglichkeit ist, ein Bild mit der Auflösung 1280x1280 als Hintergrundbild zu verwenden. Dies bedingt jedoch, dass das "Hauptmotiv" des Bildes relativ stark zentriert ist, was die Auswahl oder Gestaltung des Bildes erschwert. Diese Lösung kann jedoch bei Farbverläufen u.ä. Verwendung finden.
 
Eine andere Möglichkeit ist, für jede Ausrichtung das selbe Bild (im Folgenden Quellbild genannt) zu verwenden, das einmal für die Auflösung 1280x800 bearbeitet wird und einmal für das Hochformat 800x1280. Durch das gleiche Quellbild sehen beide Motive ganz ähnlich aus und es wird so der Eindruck erweckt, dass jeweils das selbe Bild dargestellt wird, obwohl es ja zwei verschiedene Bearbeitungsstände gibt. Bearbeiten Sie also mit einem Bildbearbeitungsprogramm Ihrer Wahl ein Quellbild und gestalten Sie daraus ein hochformatiges und ein querformaties Zielbild.
 
Um zwischen den beiden Zielbildern automatisch durch das Script bzw. durch die Schnellstarter hin und herzuschalten, ergänzen Sie in der zweiten Zeile der Schnellstarter bzw. nach dem Befehl '''xrandr''' im script die Zeile:
 
gsettings set org.gnome.desktop.background picture-uri file:///home/pad/zum/bild/hintergrund-quer.jpg
 
bzw.
 
gsettings set org.gnome.desktop.background picture-uri file:///home/pad/zum/bild/hintergrund-hoch.jpg


Die obige Installationsanleitung ist in den Grundzügen auch für die älteren Modelle [[X41#X41_Tablet|X41t]] gültig. Da bei diesen Modellen die Hardware-Buttons jedoch etwas anders ausgebildet sind, kann bei dem oben gezeigten Rotationsscript der Befehl  
Der Befehl zum Wechsel des Desktophintergrundes muss dabei recht früh im Script übergeben werden, weil es sonst passiert, dass man noch kurz das alte, in dem Fall nicht mehr passende Hintergrundbild, sieht, bevor auf das neue umgeschaltet wird.
 
===Besonderheiten ThinkPad X41 Tablet===
 
Die obige Installationsanleitung ist in den Grundzügen auch für die älteren Modelle [[X41#X41_Tablet|X41t]] gültig. Da bei diesen Modellen die Tablet-Tasten jedoch etwas anders ausgebildet sind, kann bei dem oben gezeigten Rotationsscript der Befehl  


  sudo setkeycodes
  sudo setkeycodes


sowie die damit zusammenhängenden Änderungen entfallen. Das selbe gilt bei den Scripten "tabright" usw.
sowie die damit zusammenhängenden Änderungen entfallen. Das selbe gilt bei den Scripten "tabright" usw. Verwenden Sie also bitte das zweite Script.


===Besonderheiten [[X201#X201_Tablet|X201 Tablet]] Multitouch===
===Besonderheiten [[X201#X201_Tablet|ThinkPad X201 Tablet]] Multitouch===


Erstaunlicherweise funktioniert nach der Grundinstallation neben der Stifteingabe auch bereits die Eingabe mittels Finger. Neben der oben bereits aufgeführten Datei /usr/share/X11/xorg.conf.d/50-wacom.conf existiert auch eine /usr/share/X11/xorg.conf.d/50-multitouch.conf. Die Unterstützung einer wirklichen Multitouch-Bedienung beschränkt sich jedoch auf nur wenige Programme. So ist eine Multitouch-Bedienung bspw. bei dem Bildbetrachter eog möglich. Hier kann mittles der Bedienung mit zwei Fingern in das Bild hinein- bzw. herausgezoomt werden.
Erstaunlicherweise funktioniert nach der Grundinstallation neben der Stifteingabe auch bereits die Eingabe mittels Finger. Neben der oben bereits aufgeführten Datei /usr/share/X11/xorg.conf.d/50-wacom.conf existiert auch eine /usr/share/X11/xorg.conf.d/50-multitouch.conf. Die Unterstützung einer wirklichen Multitouch-Bedienung beschränkt sich jedoch auf nur wenige Programme. So ist eine Multitouch-Bedienung bspw. bei dem Bildbetrachter '''eog''' möglich. Hier kann mittles der Bedienung mit zwei Fingern in das Bild hinein- bzw. herausgezoomt werden.


Da die Ausbildung der Hardware-Buttons von der des X61t abweicht, kann bei dem Rotations-Script der Befehl
Da die Ausbildung der Tablet-Tasten von der des X6xt abweicht, kann bei dem Rotations-Script der Befehl


  sudo setkeycodes
  sudo setkeycodes


sowie die damit zusammenhängenden Änderungen entfallen. Das selbe gilt bei den Scripten "tabright" usw.
sowie die damit zusammenhängenden Änderungen entfallen. Das selbe gilt bei den Scripten "tabright" usw. Verwenden Sie also bitte das zweite Script.


Manchmal kann es Sinn machen, die Bedienung mittels Finger zeitweise auszuschalten. Dies erreicht man mit dem Befehl
Manchmal kann es Sinn machen, die Bedienung mittels Finger zeitweise auszuschalten. Dies erreicht man mit dem Befehl
Zeile 227: Zeile 278:
wieder einschalten. Da diese Funktion sicherlich hauptsächlich im Tablet-Modus verwendet wird, sollte hierfür ein Schnellstarter / eine Schaltfläche angelegt werden.
wieder einschalten. Da diese Funktion sicherlich hauptsächlich im Tablet-Modus verwendet wird, sollte hierfür ein Schnellstarter / eine Schaltfläche angelegt werden.


===Besonderheiten [[X61#X61 Tablet|X61 Tablet]] Multitouch===
===Besonderheiten [[X61#X61 Tablet|ThinPad X61 Tablet]] Multitouch===
Beim X61 Tablet mit Multitouch, muss der resistive Touchscreen eingeschaltet, absolut gestellt und kalibriert werden.
Beim X61 Tablet mit Multitouch, muss der resistive Touchscreen eingeschaltet, absolut gestellt und kalibriert werden.
<br>
Hier ist das Skript dazu:<br>
<pre>#!bin/bash
xsetwacom --set 'Serial Wacom Tablet touch' 'Mode' 'Absolute'
xsetwacom --set 'Serial Wacom Tablet touch' Area 44 86 935 945
xsetwacom --set 'Serial Wacom Tablet touch' Touch on
</pre>
Die Werte für Area lassen sich sehr einfach mit dem xinput_calibrator herausfinden.
<br>
Man kann das Script, um es bei jedem Start auszuführen, in die Datei /etc/rc.local eintragen.
===Tablet Buttons reaktivieren===
Neuerdings funktionieren die Tablet Buttons nach dem Umklappen des Bildschirms auf die Tastatur nicht mehr.
Die  gesamte Tastatur, an der auch die Tablet Buttons hängen, wird beim Umklappen deaktiviert. Vermutlich wurde dieses Feature für die Yoga Books eingeführt, nur einen Tablet PC alter Bauart macht es unbrauchbar. Beobachtet wurde dieses Verhalten im August 2019 unter Arch Linux und Debian 10.
Um die Tablet Buttons zu aktivieren muss zunächst das Paket
xinput
instaliert werden.


Hier ist das Skript dazu:
Dann die Datei /usr/local/bin/tablet-buttons.sh mit folgendem Inhalt anlegen. (gilt für das X61 Tablet)
<ref>#!bin/bashxsetwacom --set 'Serial Wacom Tablet touch' 'Mode' 'Absolute'xsetwacom --set 'Serial Wacom Tablet touch' Area 44 86 935 945xsetwacom --set 'Serial Wacom Tablet touch' Touch on</ref>
xinput set-int-prop 11 "Device Enabled" 8 0


Area lässt sich sehr einfach mit dem xinput_calibrator herausfinden.
Diese mit  
sudo chmod a+x /usr/local/bin/tablet-buttons.sh
ausführbar machen.


Man kann das Skript um es bei jedem Start auszuführen in die rc.local eintragen.
Da der xinput Befehl mit sudo laufen muss ist die /etc/sudoers noch mal zu ändern. Das sieht bei mir so aus:
meinusername ALL=NOPASSWD: /usr/local/bin/rotatex61t.sh, /usr/bin/setkeycodes ,/usr/local/bin/tablet-buttons.sh
 
Die Tablet-Buttons.sh kann dann mit der Autostart Funktion des jeweiligen Desktops automatisch gestartet werden.
 
Für andere Geräte als das X61T muss mit
sudo xinput list
die ID der Tablet Buttons ermittelt werden. Beim X61T ist das die 11.


==Nützliche Programme==
==Nützliche Programme==
Zeile 243: Zeile 324:
Die unten genannten Programm sind in den Menüs oftmals auf verschiende Untermenüs wie Barrierefreiheit, Sonstiges oder Zubehör verteilt. Deswegen kann es sinnvoll sein, ein eigenes Menü "Tablet" anzulegen und mittels des Programms alacarte die Tabletanwendungen in dieses Untermenü zu verschieben.
Die unten genannten Programm sind in den Menüs oftmals auf verschiende Untermenüs wie Barrierefreiheit, Sonstiges oder Zubehör verteilt. Deswegen kann es sinnvoll sein, ein eigenes Menü "Tablet" anzulegen und mittels des Programms alacarte die Tabletanwendungen in dieses Untermenü zu verschieben.


* '''CellWriter (Handschrift-Erkennung)''': CellWriter ist in den Quellen aller gängigen Distributionen enthalten. Es dient zur Handschriftenerkennung und Steuerung mittels Handschirft. [http://wiki.ubuntuusers.de/CellWriter CellWriter im ubuntuusers-wiki]
* '''CellWriter (Handschrift-Erkennung)''': CellWriter ist in den Quellen aller gängigen Distributionen enthalten. Es dient zur Handschriftenerkennung und Steuerung mittels Handschrift. [http://wiki.ubuntuusers.de/CellWriter CellWriter im ubuntuusers-wiki]


* '''Gnome-Barrierefreiheit (Bildschirmtastatur)''': Die Gnome-eigene Bildschirmtastatur kann über die Schaltfläche "Barrierefreiheit" --> "Bildschirmtastatur" aktiviert werden.  
* '''Gnome-Barrierefreiheit (Bildschirmtastatur)''': Die Gnome-eigene Bildschirmtastatur kann über die Schaltfläche "Barrierefreiheit" --> "Bildschirmtastatur" aktiviert werden.  


* '''Florence (Bildschirmtastatur)''': Florence ist ebenfalls eine Bildschirmtastatur und ebenfalls in den Quellen aller gängigen Distributionen enthalten.
* '''Florence (Bildschirmtastatur)''': Florence ist eine Bildschirmtastatur und ebenfalls in den Quellen aller gängigen Distributionen enthalten. [http://florence.sourceforge.net/english.html Projektseite mit Download und Dokumentation]


* '''Xournal (Notizen erstellen)''': Xournal ist ein Programm zur Erstellung von Notizen bspw. auf pdf-Dokumenten. Mit diesem Programm kann man pdf-Dateinen bspw. korrigieren oder kommentieren. [http://wiki.ubuntuusers.de/Xournal Xournal im ubuntuusers-wiki]
* '''Xournal (Notizen erstellen)''': Xournal ist ein Programm zur Erstellung von Notizen. Man kann es wie einen Schreibblock verwenden. Ebenso ist die Bearbeitung von pdf-Dateien möglich. So kann man diese Dateien bspw. korrigieren oder kommentieren und später wieder als pdf abspeichern. [http://wiki.ubuntuusers.de/Xournal Xournal im ubuntuusers-wiki]


* '''Gromit (Notizen auf dem Bildschirm anfertigen)''': Gromit eignet sich dazu, Notizen direkt auf dem Bildschirm anzufertigen. Dies ist vor allem bei Präsentationen nützlich. Ebenso ist es denkbar mit Gromit einen bestimmten Ablauf darzustellen und diesen Screenshot dann abzuspeichern (bspw. dioe Einrichtung eines Emailkontos o.ä.). [http://wiki.ubuntuusers.de/Gromit Gromit im ubuntuusers-wiki]
* '''Gromit (Notizen auf dem Bildschirm anfertigen)''': Gromit eignet sich dazu, Notizen direkt auf dem Bildschirm anzufertigen. Dies ist vor allem bei Präsentationen nützlich. Ebenso ist es denkbar mit Gromit einen bestimmten Ablauf darzustellen und diesen Screenshot dann abzuspeichern (bspw. die Einrichtung eines Emailkontos o.ä.). [http://wiki.ubuntuusers.de/Gromit Gromit im ubuntuusers-wiki]


* '''Easystroke (Gestenerkennung)''': Easystroke eignet sich zur Gestensteuerung. Dabei können den verschiedenen Gesten sowohl Befehle als auch Tastenkommandos zugewiesen werden. Easystroke ist nicht in allen gängigen Quellen enthalten, weshalb das Programm teils manuell nachinstalliert werden muss. [http://wiki.ubuntuusers.de/Easystroke Easystroke im ubuntuusers-wiki], [http://sourceforge.net/projects/easystroke/ Projektseite auf SourceForge]
* '''Easystroke (Gestenerkennung)''': Easystroke eignet sich zur Gestensteuerung. Dabei können den verschiedenen Gesten sowohl Befehle als auch Tastenkommandos zugewiesen werden. Easystroke ist nicht in allen gängigen Quellen enthalten, weshalb das Programm teils manuell nachinstalliert werden muss. [http://wiki.ubuntuusers.de/Easystroke Easystroke im ubuntuusers-wiki], [http://sourceforge.net/projects/easystroke/ Projektseite auf SourceForge]


* '''MyPaint (Zeichenprogramm)''': MyPaint wurde speziell für den Einsatz auf Tablets entwickelt. Mittels MyPaint lassen sich Zeichnungen anfertigen. [http://wiki.ubuntuusers.de/MyPaint MyPaint auf ubuntuusers-wiki]
* '''MyPaint (Zeichenprogramm)''': MyPaint wurde speziell für den Einsatz auf Tablets entwickelt. Mittels MyPaint lassen sich Zeichnungen oder auch handschriftliche Notizen anfertigen. Handschriftliche Notizen können jedoch nicht exportiert werden. [http://wiki.ubuntuusers.de/MyPaint MyPaint auf ubuntuusers-wiki]


* '''Grab and Drag (Firefox-Add-On zur Bedienung mit Stift oder Finger)''': Gestensteuerung von Firefox / Iceweasel. [https://addons.mozilla.org/de/firefox/addon/grab-and-drag/?src=search Drag und Grab auf addons.mozilla.org]
* '''Grab and Drag (Firefox-Add-On zur Bedienung mit Stift oder Finger)''': Gestensteuerung von Firefox / Iceweasel. [https://addons.mozilla.org/de/firefox/addon/grab-and-drag/?src=search Drag und Grab auf addons.mozilla.org]
* '''jscribble''': Programm zur Anfertigung von Notizen.
* '''ardesia''': Ideal für Präsentationen mit dem Tablet. Der Desktop wird hier zum Zeichenbrett. Man kann direkt auf dem Desktop Notizen anfertigen und diese dann bspw. als pdf exportieren. Neben handschriftlichen Notizen werden auch Schriften unterstützt.


==Fehlerbehebung==
==Fehlerbehebung==
Zeile 272: Zeile 357:
|-
|-
| Der Bildschirm wird nicht gedreht ||  
| Der Bildschirm wird nicht gedreht ||  
* Sind die Hardware-Buttons richtig konfiguriert?
* Sind die Tablet-Tasten richtig konfiguriert?
* Test: Öffnen Sie ein Terminal und rufen Sie das Script im Terminal auf
* Test: Öffnen Sie ein Terminal und rufen Sie das Script im Terminal auf
* Wird der Bildschirm jetzt gedreht?
* Wird der Bildschirm jetzt gedreht?
* Ja: Überprüfen Sie die Konfiguration der Hardware-Buttons
* Ja: Überprüfen Sie die Konfiguration der Tablet-Tasten
* Nein: Rufen Sie das Script erneut auf. Nun jedoch mittels ''$ bash -x ./rotationsscript Wert'' und achten Sie auf Fehlermeldungen.
* Nein: Rufen Sie das Script erneut auf. Nun jedoch mittels ''$ bash -x ./rotationsscript Wert'' und achten Sie auf Fehlermeldungen.
|-
|-
Zeile 281: Zeile 366:
* Überprüfen Sie die Datei /etc/sudoers, ob es auch nicht-priviligierten Nutzern erlaubt ist den Befehl ''setkeycodes'' auszuführen.
* Überprüfen Sie die Datei /etc/sudoers, ob es auch nicht-priviligierten Nutzern erlaubt ist den Befehl ''setkeycodes'' auszuführen.
|-
|-
| Nach einer Bildschirmdrehung mittels Schnellstarten und anschließender Drehung über den Hardbutton wird die Drehung nicht fortgesetzt, sondern beginnt immer wieder von vorn ||
| Nach einer Bildschirmdrehung mittels Schnellstarten und anschließender Drehung über die Tablet-Taste wird die Drehung nicht fortgesetzt, sondern beginnt immer wieder von vorn ||
* Prüfen Sie, ob das Script der Schnellstarter die Bildschirmausrichtung korrekt in den status-File schreibt.
* Prüfen Sie, ob das Script der Schnellstarter die Bildschirmausrichtung korrekt in den status-File schreibt.
|}
|}


[[Category:Linux]]
[[Category:Linux]]
[[Category:Debian]]

Aktuelle Version vom 29. August 2019, 14:47 Uhr

Einleitung

Die gerätespezifischen Funktionen der ThinkPad X-Serie Tablets funktionieren unter Linux zumeist nicht gleich nach der Installation des Grundsystems oder sie funktionieren nur zum Teil. Dieser Beitrag zeigt Wege auf, wie die Tabletfunktionen unter verschiedenen Linux-Distibutionen eingerichtet werden können.

Debian

Grundinstallation

Die folgende Installationsanleitung bezieht sich auf ein ThinkPad X61t mit Debian Testing. Sie ist jedoch in Grundzügen auch auf andere Tablets der X-Serie anwendbar. Auf bekannte Besonderheiten bzgl. andere Modelle der X-Serie wird ggf. eingegangen. Als Installationmedium kann ein Image von www.debian.org verwendet werden. Hierzu wird empfohlen erst ein Grundsystem ohne X (also ohne grafische Oberfläche) zu installieren. Nach einer Anpassung der Dateien /etc/fstab (falls erforderlich) und /etc/apt/sources.list kann nun der bevorzugte Desktop-Manager installiert werden. Für die hier aufgezeigte beispielhafte Installation von Debian Testing wurde Gnome 3 verwendet. Es sind jedoch auch andere Desktop Environments denkbar. Dabei ist dann jedoch zu beachten, dass bspw. bei der weiter unten aufgezeigte Möglichkeit mit der Ansteuerung mittels Schnellstartern eventuell etwas andere Wege in Bezug auf die Darstellung am Desktop gewählt werden müssen.

Erster Reboot unter X

Nach dem ersten Neustart funktioniert bereits die Eingabe mittels Stift. Bis hierhin wurden noch keine Veränderungen am System vorgenommen. Die Bildschirmrotation funktioniert noch nicht, die Sondertasten unterhalb des Bildschirms (im folgenden Tablet-Tasten genannt) weisen noch keine Funktion auf.

Anforderungen und Ziele

Das X-Tablet soll die folgenden Anforderungen erfüllen können:

  • Rotations-Taste - Es soll eine Bildschirmrotation von 90° gegenüber der vorherigen Einstellung über einen Knopfdruck auf den Rotationstasten (Tablet-Tasten) ausgeführt werden. Des Weiteren soll sich die Stiftausrichtung automatisch so verändern, dass die Ausrichtung des Stiftes der Ausrichtung des Bildschirms entspricht.
  • Schnellstarter - Es sollen Schnellstarter vorhanden sein, mit der eine beliebige Bildschirmausrichtung unter Umgehung des Rotationstasten sofort anwählbar ist. Auch hier soll sich der Stift der jeweiligen Bildschirmausrichtung anpassen.
  • Super-Taste - Unter Gnome 3 ist der Super-Taste eine elementare Funktion zugeordnet. Eine Tablet-Taste soll diese Funktion übernehmen.
  • Hoch / Runter / Rechts / Links-Tasten - Die Tablets der Serie X6xt verfügen an der rechten Bildschirmunterkante über eine gemeinsame Taste, die die Funktionen Hoch, Runter, Rechts und Links ausführen kann. Die Funktionen Hoch und Runter sind im Tablet-Modus durchaus sinnvoll, die Funktionen Rechts und Links sind zum Beispiel beim surfen eher unwichtig und sollen durch die Tastenbelegungen Vor und Zurück ersetzt werden, damit zwischen besuchten Webseiten hin- und hergeschaltet werden kann.
  • Mitdrehen der Hoch / Runter / Vor / Zurück - Tasten - Die oben genannten Tasten sollen sich bei der Bildschirm-Rotation mitdrehen und der Bildschirmausrichtung folgen. Hält der Nutzer bspw. sein Tablet hochkant, soll Zurück zu Hoch werden, Vor zu Runter, Runter zu Zurück und Hoch zu Vor. Es soll also eine nach der jeweiligen Ausrichtung des Gerätes logische Anordnung der Tasten gegeben sein.
  • Automatische Bildschirm-Rotation - Auf diesen Punkt wird hier nicht eingegangen.

Tablet-Tasten konfigurieren

Eine Möglichkeit den Scancode herauszufinden bietet das Programm evtest. evtest erfordert root-Rechte. Führen Sie also die folgenden Befehle als root aus. Das Programm evtest befindet sich in den Main-Repos und kann über einen Paket-Manager installiert werden. Als erstes wird herausgefunden, welches Device enötigt wird.

root# egrep -e ".*keyboard.*/dev/input/event[0-9]{1,2}.*" /var/log/Xorg.0.log

Daraufhin erhält man eine Ausgabe wie:

[     5.543] (**) AT Translated Set 2 keyboard: Device: "/dev/input/event0"

Als nächstes startet man evtest mit folgendem Aufruf:

root# evtest /dev/input/event0

Daraufhin erhält man eine ziemlich lange Liste. Die oben aufgeführten Codes kann man sich ansehen, diese werden zum Teil später noch benötigt. Wichtig sind jedoch die, die durch einen Tastendruck ausgelesen werden können. Ein solcher Abschnitt sieht etwa so aus:

Event: time 1326493063.385652, type 4 (Misc), code 4 (ScanCode), value 68
Event: time 1326493063.385661, type 1 (Key), code 125 (Leftmeta), value 0
Event: time 1326493063.385664, -------------- Report Sync ------------

Die wichtigen Werte habe sind in diesem Beispiel value 68 und code 125. Die Scancodes der Tablet-Tasten sollten nun der Reihe nach ausgelesen und notiert werden. Mit den gewonnen Werten kann man schon ein wenig arbeiten. Um beispielsweise die mittlere der drei Tablet-Tasten mit dem Keysym der Supertaste zu hinterlegen, gibt man als root den folgenden Befehl ein:

root# setkeycodes 68 125

So würde also der Befehl aussehen, der zu der Tastenbelegung aus dem obigen Beispiel führt. Die erste Zahl steht also für die gewünschte Taste, die zweite für das damit verbundene Zeichen. Hierbei kann (fast) noch nichts schief gehen. Die Änderung der Tastenbelegung verschwindet nach einem Neustart. Es können so also testweise alle Tasten mit neuen Keycodes hinterlegt und vor allem getestet werden.

Nachdem die nötigen Belegungen heraus gefunden und getestet wurden, können diese in die Datei /etc/rc.local eingetragen werden, damit sie nach einem Neustart immer wirksam werden. Hier ein beispielhafter Auszug:

#rc.local
setkeycodes 6e 158   # Button Left 
setkeycodes 6d 159   # Button Right
setkeycodes 68 125   # Super-Taste

Damit können die Tasten schon die vorgesehen Aktionen ausführen. Einer der Tablet-Taste soll, wie oben beschrieben als Super-Taste genutzt werden, so dass mit einem Tastendruck die Gnome-Shell geöffnet werden kann. Das wird durch die letzte der oben gezeigten Zeilen erreicht.

Rotationsscript

Was soll das Rotationsscript können?

  • Bildschirm der Reihe nach von none über right nach inverted und weiter zu left und wieder nach none drehen.
  • Stift mitdrehen, dies ist nötig, da sonst die Ausrichtung des Stiftes nicht mit der Bildschirmausrichtung übereinstimmt.
  • Belegung der Hoch / Runter / Rechts (Vor) / Links (Zurück)-Tasten mit der Bildschirmausrichtung ändern.
  • Bildschirmausrichtung in einen status-File schreiben

Zusätzlich soll ja auch noch die Bildschirmdrehung per Schnellstarter möglich sein, so dass es nötig ist, die aktuelle Bildschirmausrichtung jederzeit abfragen zu können. Es muss also noch eine Status-Datei angelegt werden, in die der aktuelle Rotations-Status hineingeschrieben wird und abrufbar ist.

Die obigen Punkte erreicht man über die folgenden Befehle:

  • xrandr (Bildschirm-Drehung)
  • xsetwacom set "Serial Wacom Tablet stylus" Rotate (Änderung der Stiftausrichtung)
  • setkeycodes (Änderung der Tastenbelegung)
  • echo (Schreiben des Status-Files)

Wie oben bereits dargestellt benötigt man für den Befehl setkeycodes root-Rechte, was eine Änderung der Datei /etc/sudoers mit sich bringt, damit das Script auch von nicht-priviligierten Nutzern ausgeführt werden kann. Dazu legt man eine Gruppe rotation an und erlaubt dieser Gruppe, den Befehl setkeycodes auszuführen. Die Bearbeitung der Datei /etc/sudoers ist hinlänglich dokumentiert, weshlab hier nicht im Detail darauf eingegangen wird.

Der Status-File, der zum Auslesen der aktuellen Bildschirmausrichtung benötigt wird, kann bespielsweise im /home-Verzeichnis oder in /tmp angelegt werden. Nicht-priviligierte Nutzer müssen jedoch Schreibrechte für diese Datei haben.

touch /Pfad/zum/anzulegenden/Status-File

Hier das Rotations-Script, gültig für ein ThinkPad X6xt:

#!/bin/bash
# name: rotatex61t.sh
# from: Frank Zimmermann
# date: 2011-12-21
# version: 0.0.1
# update 27.08.2019 von wileE

STATUS_FILE=/home/frank/bin/rotatex61t/.rotate-status
CONDITION=`cat $STATUS_FILE`

if [ -n "$1"  ] $N > $STATUS_FILE
    then
    case "$1" in
    3|right)    N=3; T=cw ;;
    1|left)        N=1; T=ccw ;;
    2|inverted)    N=2; T=half ;;
    0|normal)    N=0; T=none ;;
esac
    /usr/bin/xrandr -o $N && xsetwacom set "Wacom Serial Penabled Pen stylus" Rotate $T && echo $N > $STATUS_FILE        
    else    
case "$CONDITION" in
    0) `xrandr -o 3` && xsetwacom set "Wacom Serial Penabled Pen stylus" Rotate cw && 
       `sudo setkeycodes 6d 103 6e 108 71 158 6f 159` && echo 3 > $STATUS_FILE ;;
    3) `xrandr -o 2` && xsetwacom set "Wacom Serial Penabled Pen stylus" Rotate half && 
	`sudo setkeycodes 6d 158 6f 103 6e 159 71 108` && echo 2 > $STATUS_FILE ;;
    2) `xrandr -o 1` && xsetwacom set "Wacom Serial Penabled Pen stylus" Rotate ccw && 
	`sudo setkeycodes 6e 103 71 159 6d 108 6f 158` && echo 1 > $STATUS_FILE ;;
    1) `xrandr -o 0` && xsetwacom set "Wacom Serial Penabled Pen stylus" Rotate none && 
	`sudo setkeycodes 71 103 6d 159 6f 108 6e 158` && echo 0 > $STATUS_FILE ;;
esac
fi

exit 0


Der obere Bereich (bis else) ermöglicht die direkte Eingabe in ein Terminal (wird während der täglichen Arbeit mit dem Tablet aber nicht benötigt), der untere Bereich liest den Status-File ein und führt dann die entsprechenden Befehle aus und schreibt das Ergebnis wieder in den Status-File.

Das Script kann beispielsweise unter /usr/local/bin/rotatex61t.sh abgelegt werden. Für das Script sind noch die Rechte mit dem Befehl chmod anzupassen.

Beispiel:

root# chmod a+x /usr/local/bin/rotatex61t.sh

Über "Systemeinstellungen" --> "Tastatur" --> "Tastenkombinationen" kann die zuvor konfigurierte Rotationstaste (Tablet-Taste) mit diesem Script belegt werden.

Soll das Script nicht auf einem ThinkPad X6xt, sondern beispielsweise auf einem ThinkPad X41t oder X20xt Verwendung finden, kann der oben genannte Punkt 3 (Belegung der Hoch / Runter / Rechts (Vor) / Links (Zurück)-Tasten mit der Bildschirmausrichtung ändern) entfallen, da diese X-Serie Tablets noch nicht bzw. nicht mehr über die genannten Hoch/Runter/Rechts/Links-Tasten verfügen. Dementsprechend muss auch das Script in einigen Punkten angepasst werden. Alle anderen Punkte der obigen Beschreibung behalten auch in Bezug auf ThinkPads der genannten Bauserien ihre Gültigkeit.

Hier nun als Beispiel das Rotations-Script, wie es bei einem ThinkPad X20xt verwendet werden kann:

#!/bin/bash
#name: rotateX200.sh
#from: frank.zimmermann@online.de
#date: 2012-01-12
#version: 0.0.1

STATUS_FILE=/home/frank/bin/rotateX201/.rotate-status
CONDITION=`cat $STATUS_FILE`
 
if [ -n "$1" ]
	then
		case "$1" in
		3|right)	N=3; T=cw ;;
		1|left)		N=1; T=ccw ;;
		2|inverted)	N=2; T=half ;;
		0|none)		N=0; T=none ;;
		esac
		/usr/bin/xrandr -o $N && xsetwacom set "Serial Wacom Tablet stylus" Rotate $T && echo $N > $STATUS_FILE
	else
		case "$CONDITION" in
		0) 		`xrandr -o 3` && xsetwacom set "Serial Wacom Tablet stylus" Rotate cw && echo 3 > $STATUS_FILE ;;
		3) 		`xrandr -o 2` && xsetwacom set "Serial Wacom Tablet stylus" Rotate half && echo 2 > $STATUS_FILE ;;
		2) 		`xrandr -o 1` && xsetwacom set "Serial Wacom Tablet stylus" Rotate ccw && echo 1 > $STATUS_FILE ;;
		1) 		`xrandr -o 0` && xsetwacom set "Serial Wacom Tablet stylus" Rotate none && echo 0 > $STATUS_FILE ;;
		esac
fi
 
exit 0

Schnellstarter

Die gewünschten Schnellstarter sind ähnlich wie das Script aufgebaut. Hier die Datei tabletright als Anschauung:

/usr/bin/xrandr -o right
xsetwacom set "Serial Wacom Tablet stylus" Rotate Cw
xsetwacom set "Serial Wacom Tablet eraser" Rotate Cw
sudo setkeycodes 6d 103 6f 159 6e 108 71 158
echo 3 > /home/frank/bin/rotatex61t/.rotate-status

Man sieht also, dass diese einzelne Datei im Prinzip das Gleiche macht, wie der Abschnitt "0)" in der zweiten case-Verzweigung des Rotation-Scripts. Ähnliche Dateien werden nun für jede einzelne Bildschirmausrichtung nach dem Muster des Rotations-Scripts angelegt. Diese werden ebenfalls unterhalb von /usr/local/bin abgelegt und die Rechte angepasst. Bitte beachten Sie, dass die Zeile 4 in obiger Beispieldatei nur bei ThinkPads der Serie X6xt notwendig ist. Sollten Sie die Datei auf einem ThinkPad einer anderen Serie verwenden, kann die Zeile 4 ersatzlos entfallen!

Als Abschluss habe ich mir noch vier Icons erstellt, die man für die Schnellstarter verwenden kann. Der rote Buchstabe steht dabei für right, left, none bzw. inverted.

Tablet-right.png Tablet-normal.png Tablet-inverted.png Tablet-left.png


Mittels des Programms "alacarte" können in der Sektion "Zubehör" vier neue Einträge erstellt werden:

"Neuer Eintrag" --> "Name: Rotate Inverted" --> "Befehl: Ablageort der Schnellstarte-Datei" --> Kommentar nach belieben.

Diese vier Schnellstarter können dann noch zu denn Favoriten zugefügt werden, so dass diese schnell erreichbar sind.

Sollte gewünscht werden, dass das Tablet auch im Tablet-Modus bzw. im gedrehten Zustand herunter gefahren wird, benötigt man noch eine weiter Zeile in der Datei /etc/rc.local, welche den Status-File auf "0" setzt, um nach einem Neustart wieder den Ursprungszustand herzustellen:

#rc.local (Auszug)
echo 0 > /Pfad/zum/Status-File

Das Programm xsetwacom

Für die Konfiguration in Bezug auf Bildschirmausrichtung und Stiftverhalten ist das Programm xsetwacom verantwortlich. Da hierfür keine grafische Oberfläche existiert, ist eine Konfiguration über ein Terminal nötig. Der Befehl

$ xsetwacom --help

bzw.

$ man xsetwacom

liefert eine kürzere oder ausführlichere Beschreibung.

Einstellungen können über

$ xsetwacom -s get "devicename" parameter

ausgelesen werden, mittels des Befehls

$ xsetwacom set "devicename" parameter value

setzt man Parameter und Werte neu. Die Option -s im get-Befehl kann auch durch -x ersetzt werden, so dass man eine Ausgabe erhält, die für die Datei /usr/share/X11/xorg.conf.d/50-wacom.conf verwendet werden kann. Über den set-Befehl können also alle gewünschten Veränderungen getestet werden, bevor diese in die oben genannte Datei geschrieben werden.

/usr/share/X11/xorg.conf.d/50-wacom.conf

In der Datei /usr/share/X11/xorg.conf.d/50-wacom.conf können zahlreiche Veränderungen zum Verhalten des Stiftes vorgenommen werden. Nähere Informationen zum Umfang und den Möglichkeiten der Änderungen liefert

man wacom

bzw.

man xsetwacom

Um die Änderungen wirksam zu machen muss der X-server mit

root# /etc/init.d/gdm3 restart

neu gestartet werden.

Vorsicht! Die vor der Editierung funktionierende Datei ist unbedingt zu sichern, so dass bei einer fehlerhaften Editierung der Ursprungszustand wieder hergestellt werden kann! Dies erreicht man bspw. dadurch, dass vorherige Einstellungen nicht aus der Datei gelöscht, sondern durch voranstellen eines Rautezeichens (#) auskommentiert werden. Sollte der X-Server nicht korrekt starten ist die betreffende Datei mit einem Editor auf der Konsole wieder in den Ursprungszustand zurück zu versetzen oder die Editierung zu überprüfen.

Desktop schöner gestalten: Angepasste Wallpaper

Ein eher ästhetischer Gesichtspunkt betrifft die Gestaltung des Desktophintergrundes. Da der Bildschirminhalt beliebig gedreht werden kann, kann der Desktophintergrund einmal bspw. die Größe 1280x800 bzw. im Hochformat dann 800x1280 betragen. Ein auf die Auflösung 1280x800 optimiertes Bild sieht jedoch in der Auflösung 800x1280 unschön aus. Es gibt grundsätzlich zwei Möglichkeiten dem Problem zu begegnen.

Die erste Möglichkeit ist, ein Bild mit der Auflösung 1280x1280 als Hintergrundbild zu verwenden. Dies bedingt jedoch, dass das "Hauptmotiv" des Bildes relativ stark zentriert ist, was die Auswahl oder Gestaltung des Bildes erschwert. Diese Lösung kann jedoch bei Farbverläufen u.ä. Verwendung finden.

Eine andere Möglichkeit ist, für jede Ausrichtung das selbe Bild (im Folgenden Quellbild genannt) zu verwenden, das einmal für die Auflösung 1280x800 bearbeitet wird und einmal für das Hochformat 800x1280. Durch das gleiche Quellbild sehen beide Motive ganz ähnlich aus und es wird so der Eindruck erweckt, dass jeweils das selbe Bild dargestellt wird, obwohl es ja zwei verschiedene Bearbeitungsstände gibt. Bearbeiten Sie also mit einem Bildbearbeitungsprogramm Ihrer Wahl ein Quellbild und gestalten Sie daraus ein hochformatiges und ein querformaties Zielbild.

Um zwischen den beiden Zielbildern automatisch durch das Script bzw. durch die Schnellstarter hin und herzuschalten, ergänzen Sie in der zweiten Zeile der Schnellstarter bzw. nach dem Befehl xrandr im script die Zeile:

gsettings set org.gnome.desktop.background picture-uri file:///home/pad/zum/bild/hintergrund-quer.jpg

bzw.

gsettings set org.gnome.desktop.background picture-uri file:///home/pad/zum/bild/hintergrund-hoch.jpg

Der Befehl zum Wechsel des Desktophintergrundes muss dabei recht früh im Script übergeben werden, weil es sonst passiert, dass man noch kurz das alte, in dem Fall nicht mehr passende Hintergrundbild, sieht, bevor auf das neue umgeschaltet wird.

Besonderheiten ThinkPad X41 Tablet

Die obige Installationsanleitung ist in den Grundzügen auch für die älteren Modelle X41t gültig. Da bei diesen Modellen die Tablet-Tasten jedoch etwas anders ausgebildet sind, kann bei dem oben gezeigten Rotationsscript der Befehl

sudo setkeycodes

sowie die damit zusammenhängenden Änderungen entfallen. Das selbe gilt bei den Scripten "tabright" usw. Verwenden Sie also bitte das zweite Script.

Besonderheiten ThinkPad X201 Tablet Multitouch

Erstaunlicherweise funktioniert nach der Grundinstallation neben der Stifteingabe auch bereits die Eingabe mittels Finger. Neben der oben bereits aufgeführten Datei /usr/share/X11/xorg.conf.d/50-wacom.conf existiert auch eine /usr/share/X11/xorg.conf.d/50-multitouch.conf. Die Unterstützung einer wirklichen Multitouch-Bedienung beschränkt sich jedoch auf nur wenige Programme. So ist eine Multitouch-Bedienung bspw. bei dem Bildbetrachter eog möglich. Hier kann mittles der Bedienung mit zwei Fingern in das Bild hinein- bzw. herausgezoomt werden.

Da die Ausbildung der Tablet-Tasten von der des X6xt abweicht, kann bei dem Rotations-Script der Befehl

sudo setkeycodes

sowie die damit zusammenhängenden Änderungen entfallen. Das selbe gilt bei den Scripten "tabright" usw. Verwenden Sie also bitte das zweite Script.

Manchmal kann es Sinn machen, die Bedienung mittels Finger zeitweise auszuschalten. Dies erreicht man mit dem Befehl

xsetwacom set "Serial Wacom Tablet touch" Touch off

bzw. kann es mit dem Befehl

xsetwacom set "Serial Wacom Tablet touch" Touch on

wieder einschalten. Da diese Funktion sicherlich hauptsächlich im Tablet-Modus verwendet wird, sollte hierfür ein Schnellstarter / eine Schaltfläche angelegt werden.

Besonderheiten ThinPad X61 Tablet Multitouch

Beim X61 Tablet mit Multitouch, muss der resistive Touchscreen eingeschaltet, absolut gestellt und kalibriert werden.
Hier ist das Skript dazu:

#!bin/bash
xsetwacom --set 'Serial Wacom Tablet touch' 'Mode' 'Absolute'
xsetwacom --set 'Serial Wacom Tablet touch' Area 44 86 935 945
xsetwacom --set 'Serial Wacom Tablet touch' Touch on

Die Werte für Area lassen sich sehr einfach mit dem xinput_calibrator herausfinden.
Man kann das Script, um es bei jedem Start auszuführen, in die Datei /etc/rc.local eintragen.

Tablet Buttons reaktivieren

Neuerdings funktionieren die Tablet Buttons nach dem Umklappen des Bildschirms auf die Tastatur nicht mehr. Die gesamte Tastatur, an der auch die Tablet Buttons hängen, wird beim Umklappen deaktiviert. Vermutlich wurde dieses Feature für die Yoga Books eingeführt, nur einen Tablet PC alter Bauart macht es unbrauchbar. Beobachtet wurde dieses Verhalten im August 2019 unter Arch Linux und Debian 10.

Um die Tablet Buttons zu aktivieren muss zunächst das Paket

xinput 

instaliert werden.

Dann die Datei /usr/local/bin/tablet-buttons.sh mit folgendem Inhalt anlegen. (gilt für das X61 Tablet)

xinput set-int-prop 11 "Device Enabled" 8 0

Diese mit

sudo chmod a+x /usr/local/bin/tablet-buttons.sh 

ausführbar machen.

Da der xinput Befehl mit sudo laufen muss ist die /etc/sudoers noch mal zu ändern. Das sieht bei mir so aus:

meinusername ALL=NOPASSWD: /usr/local/bin/rotatex61t.sh, /usr/bin/setkeycodes ,/usr/local/bin/tablet-buttons.sh

Die Tablet-Buttons.sh kann dann mit der Autostart Funktion des jeweiligen Desktops automatisch gestartet werden.

Für andere Geräte als das X61T muss mit

sudo xinput list

die ID der Tablet Buttons ermittelt werden. Beim X61T ist das die 11.

Nützliche Programme

Im Folgenden werden einige nützliche Programme für die Verwenundung auf einem X-Tablet vorgestellt. Da diese Programm oftmals hinreichend auf anderen Seiten erklärt und dokumentiert sind, soll hier nur kurz das Anwendungsgebiet des jeweiligen Programmes erklärt werden, für weiterführende Informationen folgen Sie bitte dem Link.

Die unten genannten Programm sind in den Menüs oftmals auf verschiende Untermenüs wie Barrierefreiheit, Sonstiges oder Zubehör verteilt. Deswegen kann es sinnvoll sein, ein eigenes Menü "Tablet" anzulegen und mittels des Programms alacarte die Tabletanwendungen in dieses Untermenü zu verschieben.

  • CellWriter (Handschrift-Erkennung): CellWriter ist in den Quellen aller gängigen Distributionen enthalten. Es dient zur Handschriftenerkennung und Steuerung mittels Handschrift. CellWriter im ubuntuusers-wiki
  • Gnome-Barrierefreiheit (Bildschirmtastatur): Die Gnome-eigene Bildschirmtastatur kann über die Schaltfläche "Barrierefreiheit" --> "Bildschirmtastatur" aktiviert werden.
  • Xournal (Notizen erstellen): Xournal ist ein Programm zur Erstellung von Notizen. Man kann es wie einen Schreibblock verwenden. Ebenso ist die Bearbeitung von pdf-Dateien möglich. So kann man diese Dateien bspw. korrigieren oder kommentieren und später wieder als pdf abspeichern. Xournal im ubuntuusers-wiki
  • Gromit (Notizen auf dem Bildschirm anfertigen): Gromit eignet sich dazu, Notizen direkt auf dem Bildschirm anzufertigen. Dies ist vor allem bei Präsentationen nützlich. Ebenso ist es denkbar mit Gromit einen bestimmten Ablauf darzustellen und diesen Screenshot dann abzuspeichern (bspw. die Einrichtung eines Emailkontos o.ä.). Gromit im ubuntuusers-wiki
  • Easystroke (Gestenerkennung): Easystroke eignet sich zur Gestensteuerung. Dabei können den verschiedenen Gesten sowohl Befehle als auch Tastenkommandos zugewiesen werden. Easystroke ist nicht in allen gängigen Quellen enthalten, weshalb das Programm teils manuell nachinstalliert werden muss. Easystroke im ubuntuusers-wiki, Projektseite auf SourceForge
  • MyPaint (Zeichenprogramm): MyPaint wurde speziell für den Einsatz auf Tablets entwickelt. Mittels MyPaint lassen sich Zeichnungen oder auch handschriftliche Notizen anfertigen. Handschriftliche Notizen können jedoch nicht exportiert werden. MyPaint auf ubuntuusers-wiki
  • jscribble: Programm zur Anfertigung von Notizen.
  • ardesia: Ideal für Präsentationen mit dem Tablet. Der Desktop wird hier zum Zeichenbrett. Man kann direkt auf dem Desktop Notizen anfertigen und diese dann bspw. als pdf exportieren. Neben handschriftlichen Notizen werden auch Schriften unterstützt.

Fehlerbehebung

Trotz gewissenhafter Prüfung kann es aufgrund individueller Konfigurationen oder anderer Besonderheiten vorkommen, dass nicht alle Dinge, die oben aufgeführt sind immer bei jedem User das gewünschte Ziel erreichen. Aus diesem Grund werden hier noch einige oft gestellte Fragen in Kurzform behandelt. Diese Liste ist nicht abschließend und kann ggf. ergänzt werden.

Fehlerbild Abhilfe
Die Stiftausrichtung stimmt nicht mit der Bildschirmausrichtung überein
  • Wurde der richtige Device-Name verwendet? Prüfung mittels xsetwacom --list-devices. Passen sie ggf. das Rotationsscript an.
  • Lässt sich die Stiftausrichtung in gedrehtem Zustand ändern? Führen Sie in einem Terminal xsetwacom set "Device Name" Rotate Value aus. Ersezten Sie dabei Value der Reihe nach durch cw, ccw, none bzw. inverted. Haben Sie die richtige Einstellung gefunden, ändern Sie ggf. das Rotationsscript ab.
Der Bildschirm wird nicht gedreht
  • Sind die Tablet-Tasten richtig konfiguriert?
  • Test: Öffnen Sie ein Terminal und rufen Sie das Script im Terminal auf
  • Wird der Bildschirm jetzt gedreht?
  • Ja: Überprüfen Sie die Konfiguration der Tablet-Tasten
  • Nein: Rufen Sie das Script erneut auf. Nun jedoch mittels $ bash -x ./rotationsscript Wert und achten Sie auf Fehlermeldungen.
Der Bildschirm wird zwar gedreht, die Tastenbelegung "rechts", "links" usw. bleibt hingegen gleich
  • Überprüfen Sie die Datei /etc/sudoers, ob es auch nicht-priviligierten Nutzern erlaubt ist den Befehl setkeycodes auszuführen.
Nach einer Bildschirmdrehung mittels Schnellstarten und anschließender Drehung über die Tablet-Taste wird die Drehung nicht fortgesetzt, sondern beginnt immer wieder von vorn
  • Prüfen Sie, ob das Script der Schnellstarter die Bildschirmausrichtung korrekt in den status-File schreibt.