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

10 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 :)

  7. Georg sagt:

    @Sebastian

    Ein Tablet-Ersatz ist es meiner Meinung nach nicht. Dazu ist es zu schwer und zu klobig – im Verhältnis zu einem aktuellen Tablet. Tablet-Feeling kommt damit bei mir selten auf. Auch sind weder Windows 7 noch Ubuntu 12.04 auf Tabletnutzung ausgelegt. So arbeite ich meistens mit dem Digitizer, da viele Buttons (z.B. Schließen, Minimieren) einfach zu klein sind um sie beim ersten mal mit nem Finger zu treffen.
    Ich denke dass erst Windows 8 die Tablet-Funktion richtig ausnutzt. Auch wenn sich viele über das neue Design beschweren bin ich der Meinung, dass es für Convertibles wie das X220t perfekt ist.

  8. Sven sagt:

    Da ich selber kein (richtiges) Tablet habe, aber oefters mal eines in der Hand hatte und daran rumspielen konnte, habe ich auch den Eindruck gewonnen, dass die Bedienung schon ne ecke besser ist.
    Ich finde aber dass Unity und Gnome 3 (was man davon waehlt ist meiner Meinung nach Geschmackssache, wie KDE und Gnome 2 ^^ ) aber in die richtige Richtung gehen fuer Convertibles. Es sind beides gute Komprisse, um mit Maus/Keyboard und Finger/Pen arbeiten zu koennen.
    Aber ein Kompromiss ist ja auch ein Loesung, mit der eigentlich keiner wirklich zufrieden ist 😉
    Auf einem reinem Tablet koennte ich mir die Oberflaeche gar nicht vorstellen. Die kleine Schliessen, Minimieren (und viele andere auch) lassen mich auch oefters den Kopfschuetteln.
    Ich persoenlich wuerde jetzt es ja gut finde, wenn sich die Oberflaeche anpassen wuerde. Also im Tablet-Mode touch optimierter waere, groesse Button z.B.

    Die Kacheln bei Windows 8 finde ich von der Idee her auch richtig gut. Da haette ich es aber auch besser gefunden, wenn die Kacheln einem nicht aufgezwungen werden, sondern abhaengig vom Betriebsmodus des convertibles sind.
    Soll heissen: im tablet mode – kacheln an, im laptop mode – windows 7 oberflaeche
    Aber vielleicht aendert sich da ja auch noch was. Wenn Windows 8 raus ist, werde ich das auch mal testen. Vllt ist das ja sogar sooo gut, dass ich von Ubuntu weggehe 😉

  9. Micha sagt:

    Hallo,

    das ist super die Kiste. Nun fällt mir dann doch noch was ein, um die ganze Sache weiter anzuheizen.

    Es wäre doch gut, wenn beim Umklappen des Bildschirms nicht nur der Screen rotiert würde sondern auch:

    – die Launcher-Leiste von ggf. autohide auf immer vorhanden wechselt (gconftool-2 –set –type int /apps/compiz-1/plugins/unityshell/screen0/options/launcher_hide_mode 0), klappt aber nicht, wenn ich das in das tabletAutorotate schreibe, hmmm.

    – Touchpad und Pointer auf der Tastatur deaktiviert werden (ich hatte am Anfang das Problem, dass bei falschem Druck auf den Bildschirm der Mauszeiger Signale vom Pointer unterhalb bekam :-) )

    – optional weitere Gnome-Einstellungen auf „touchscreen-benutzerfrundlich“ wechseln, z.B.: breitere Menüleiste, breiterer Scrollbar

    Naja, sind bisher nur Ideen aber Ideen, die fetzen, oder?

    Meinst du, das lässt sich alles in das tabletAutorotate-Skript überführen? Am meisten wundert mich, dass die Zeile oben mit dem Launcher-Modus nicht klapp. Wenn ich die gleiche Zeile in z.B. tabletRotate einbaue funktioniert das problemlos.

    Micha

  10. Sven sagt:

    Also das erste mit dem Autohide habe ich auch schon gesucht, aber habe das nicht gefunden. Danke ! Damit laesst sich arbeiten :)

    zur info, Trackpoint laesst sich hier mit deaktivieren:

    xinput set-prop „TPPS/2 IBM TrackPoint“ „Device Enabled“ 0

    das mit den gnome-einstellungen finde ich auch gut, aber da habe ich auch noch nicht rausgefunden, wie man die per cli aendert. wenn du da was hast, her damit ! :)

    finde die ideen jedenfalls echt super, werde die ersten beiden sachen bei zeiten mit ins script einbauen, was ich hier verwende:

    x220t-ubuntu-12-04-precise-pangolin

    diese script wird per acpi ausgeloest, finde ich besser als tabletAutorotae, weil man keine loop braucht.

Hinterlasse eine Antwort

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