x220t Ubuntu 11.10

In diesem Post schilder ich meine Erfahrungen, die ich gemacht habe, damit Ubuntu 11.10 auf meinem x220t läuft.
Ich gehe aber hier von einer normaler Installation aus.
Touch, Pen und Eraser hat Ubuntu bei mir gleich erkannt, hatte da also keine Probleme. Deswegen kümmer ich mich jetzt nur um die Sachen:

+ Bildschirmtasten verwendbar machen
+ Rotation des Bildschirmes bei Tastendruck
+ bei Bedarf deaktiveren der Toucheingabe über den Finger
+ Rotation beim Wechsel vom Notebook in den Tabletmode und zurück

Ich bin mit einigen Lösungen nicht ganz zufrieden, vor allem was die Rotation beim Moduswechsel betrifft.
Was auch noch fehlt ist die Rotation des Bildschirm in Abhängigkeit der Lage, wie man es von jedem Smartphone kennt.
Werde mich darum aber erst in den Semesterferien kümmern können :)
[UPDATE:] Habe es doch schon hingekriegt x220t Ubuntu 11.10 – 2

Da ich dieses alles geschrieben habe, nachdem ich alles eingerichtet habe, kann es sein, dass ich Sachen unvollständig beschrieben habe. Einfach melden, was nicht passt :)

Bildschirmtasten verwendbar machen
durch anlegen einer neuen udev Regel

sudo groupadd rotate
sudo usermod [deinUser] -a -G rotate

nano /etc/udev/rules.d/62-tablet.rules

KERNEL!="event[0-9]*", GOTO="oem-wmi_end"
SUBSYSTEM=="input", ATTRS{name}=="ThinkPad Extra Buttons", MODE="640", GROUP="rotate", SYMLINK="input/tablet-buttons"
LABEL="oem-wmi_end"

Nach einem Neustart sollte jeder user mit der Gruppe rotate diese Tasten dann verwenden können.

Versehen der Tasten mit einer Funktion

sudo setkeycodes 6c 148
sudo setkeycodes 67 149

Damit das bei jedem Start ausgeführt wird, erstellen wir uns ein kleines Start-Script

nano /etc/init.d/tablet

#!/bin/bash
setkeycodes 6c 148
setkeycodes 67 149

Machen dieses Script ausführbar, starten es gleich mal und sorgen dafür, dass automatisch bei einem Systemneustart auch gestartet wird.


sudo chmod 755 /etc/init.d/tablet
sudo /etc/init.d/tablet
sudo update-rc.d -f tablet defaults

Jetzt können wir die Taste mit dem Pfeil und die Rotationstaste auf dem Bildschirm verwenden.
Um zu testen, ob die Tasten funktionieren, starten wir einfach mal xev. Ein Drücken der Tasten sollte dort eine Ausgabe erfolgen.
Aber eine Funktion werden die Tasten noch nicht haben.

Rotation des Bildschirm bei Tastendruck

Jetzt laden wir uns erstmal ein Rotationsscript herunter. Ich habe dieses hier verwendet:
https://launchpad.net/magick-rotation.
Wenn wir diese Datei heruntergeladen und entpackt haben, beinhaltet der Ordner folgende Dateien:

62-magick.rules             ChangeLog  debug.py    hinge.py          install_log   MagickIcons        oem_wmi.py
apt_installprogress_gtk.py  check.c    firstrun    installer_gtk.py  listener.py   Magick-README.txt  whitelist.py
apt_pm.py                   config.py  gui_gtk.py  INSTALLER.txt     MagickExtras  magick-rotation    xrotate.py

Von dieser Datei habe ich selber nur das xrotate.py verwendet.
Diese habe ich mir nach /usr/bin/ kopiert, damit ich das überall verwendet kann.

sudo cp ./xrotate.py /usr/bin/xrotate

Das Script kann dann wie folgt aufgerufen werden

xrotate [normal/left/inverted/right]

Ist nichts angegeben, wird der Bildschirm durch jedes ausführen rotiert von normal->left->inverted->right

Jetzt können wir in Ubuntu unter “Systemeinstellung->Tastatur” eine eigene Tastenkombination definieren, die beim Drücken xrotate ausführt.

Ich selber verwende dieses Script, welches mir eine Auswahl anbietet, in welche Richtung ich den Bildschirm drehen möchte:

nano ~/scripte/tabletRotate

#!/bin/bash
 
rotate=`zenity --height=220 --list --radiolist --column=Auswahl --column="" \
\"\" "left" \
\"\" "right" \
\"\" "inverted" \
\"\" "normal"`
 
#rotate=$?
 
case "$rotate" in
        "left")
                xrotate left
                ;;
        "inverted")
                xrotate inverted
                ;;
        "right")
                xrotate right
                ;;
        "normal")
                xrotate normal
                ;;
esac
 
exit 0

chmod +x ~/scripte/tabletRotate

bei Bedarf deaktiveren der Toucheingabe über den Finger

Die Taste mit dem Pfeil habe ich mit folgendem Script hinterlegt:

nano ~/scripte/toggleFingerTouch

#!/bin/bash
finger="Wacom ISDv4 E6 Finger touch"
toggle=`xsetwacom --get "$finger" Touch`
case "$toggle" in
        "off")
                echo "Enable Touch"
                xsetwacom --set "$finger" Touch on
                ;;
        "on")
                echo "Disable Touch"
                xsetwacom --set "$finger" Touch off
                ;;
        esac
exit 0

chmod +x ~/scripte/toggleFingerTouch

Diese Script deaktiviert/aktiviert die Toucheingabe über den Finger. Wenn ich mein Bildschirm drehe und mit dem Stift schreibe, ist das manchmal angenehmer.

Rotation beim Wechsel vom Notebook in den Tabletmode und zurück

Damit mein Bildschirm automatisch dreht, wenn ich zwischen dem Tablet/Notebook Modus wechsel, verwende ich dieses Script:

nano ~/scripte/tabletAutorotate

#!/bin/bash
file="/sys/devices/platform/thinkpad_acpi/hotkey_tablet_mode"
 
oldmode=`cat $file`
 
while [ true ]
do
        sleep 1
        newmode=`cat $file`
        if [ $newmode != $oldmode ]; then
                oldmode=$newmode
                case "$newmode" in
                        0)
                                xrotate normal
                                ;;
                        1)
                                xrotate inverted
                                ;;
                esac
        fi
done
exit 0

chmod +x ~/scripte/tabletAutorotate

dann müssen wir es noch einrichten, dass dieses Script bei jedem einloggen gestartet wird. Da wir dazu keine Root brauchen, machen wir einfach folgendes:

echo "$HOME/scripte/tabletAutorotate &" >> ~/.profile

Eigentlich wollte ich das über acpid Daemon machen, funktioniert aber nur teils.
Der acpid Daemon erkennt zwar das Drehen des Bildschirm, führt aber einfach nicht das Srcipt aus. Voll doof :(

Quellen:

[1] http://commons.wikimedia.org/wiki/File:Ubuntu_logo_copyleft_1.svg
[2] http://thinkpad-wiki.org//
[3] http://www.thinkwiki.org/wiki/ThinkWiki

6 Kommentare
  1. Anon1 sagt:

    Deine Angabe hinsichtliches deines Befehls:

    sudo useradd [deinUser] -a -G rotate
    (bei [deinUser] habe ich natürhlich meinen Usernamen angegeben)

    ist entweder falsch oder nicht vollständig,
    weil bei mir (Ubuntu version 11.10) gibt es darauf:

    useradd: Ungültige Option — a

  2. Sven sagt:

    Da ist mir beim Schreiben ein Fehler unterlaufen, das muss natuerlich lauten:

    sudo usermod [deinUser] -a -G rotate

    Dann sollte es gehen :)

  3. Sebastian sagt:

    Hat jemand Erfahrungen gemacht, ob der Rechner unter Ubuntu 12.04 besser läuft? Oder sind diese ganzen Tipps dort immer noch nötig?

  4. Sven sagt:

    Ich selber noch nicht, aber ich werde das bald mal testen.
    Dann werde ich dazu auch noch was kurzes schreiben.

  5. Sebastian sagt:

    Habe deine Artikel jetzt abonniert, also enttäusche mich bitte nicht ;-)

    Ich hätte noch eine andere Frage bezüglich der Ausmaße, Gewicht und Geräuschkulisse: Ich überlege das Ding auch als Tablet-Ersatz anzuschaffen, insbesondere um Abends im Bett noch ein PDF oder ähnliches zu lesen. Also zusammenklappen und auf dem Bauch ablegen. Ist es dafür in Ordnung? Oder eben zu schwer oder zu laut? Angaben wie „ab 1,66 kg“ aus den Technikblättern helfen dabei herzlich wenig. Vielleicht hast du ja Eindrücke in diese Richtung… Vielen dank!

  6. Sven sagt:

    Jetzt, wo ich das so lese, faellt mir auf, dass ich den im Tablet-Modus noch nie wirklich zum Lesen verwendet habe, immer nur zum Schreiben, aber das auch in den unmoeglichsten Positionen, und eigentlich immer sehr bequem ^^
    Da ich selber auch ein Bett und sicher auch ein PDF habe, probiere ich das aber die naechste Tage mal kurz aus, ob Gewicht und Co. da irgendwie negativ auffallen, dann kann ich dir mehr sagen :)

Hinterlasse eine Antwort

Deine Email-Adresse wird niemals veröffentlicht. Pflichtfelder sind mit * gekennzeichnet.

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">