Die automatische Rotation nach dem Guide war mir im Zuge meiner Energiesparoptionen ein Dorn im Auge, basiert das System doch auf Polling welches ständig prüft ob ein Ereignis nun eingetreten ist oder nicht. Dazu muss der Prozessor mehrmals aufwachen, das kostet wiederrum Energie.

Aber ansich finde ich die Möglichkeit den Bildschirm automatisch auszurichten schon sehr schön. Not macht erfinderisch.

Ich habe mir eine Möglichkeit überlegt beide Varianten zu vereinen, Ereignisgesteuert aber ohne Polling, es hat etwas weniger Komfort aber ist vielleicht noch ein wenig nützlicher als eine ständige automatische Rotation.

Das Prinzip basiert auf dem Rotier-Knopf und den ACPI Ereignissen. Die Idee ist diese, sobald man den Rotier-Knopf drückt wird geprüft in welchem Zustand sich das Tablet befindet, ist es gerade im Tabletmodus wird für 8 Sekunden die automatische Rotation eingeschaltet, dies sollte genug sein um das Tablet so zu drehen wie man möchte.

Um das ganze hier zu konkretisieren, Vorraussetzungen:

  • Installiertes hdaps Modul
  • Lukes rotate.py irgendwo funktionierend abgelegt
  • ein installiertes thinkpad_acpi Modul

(vergleiche auch: (Teil 2 – Sondertasten + Rotation) und (Teil 3 – Autorotation))
Der Rest ist nun recht einfach.

Wir schnappen uns eine Konsole und reißen die Macht an uns, für die Weltherrschaft reicht das zwar noch nicht ganz, aber wir stehen kurz davor:

1
sudo su

Dann legen wir, beispielsweise unter /usr/local/bin eine neue Datei an die wir sinnigerweise rotatebutton.sh nennen könnten:

1
nano /usr/local/bin/rotatebutton.sh

In diese fügen wir nun folgendes ein:

1
2
3
4
5
6
7
8
9
#!/bin/bash
if [ `cat /sys/devices/platform/thinkpad_acpi/hotkey_tablet_mode` = "1" ]
then
        /usr/local/bin/rotate tablet
        sleep 8
        killall -e rotate
else
        /usr/local/bin/rotate normal
fi

Zum Herunterladen: rotatebutton
eventuell muss der Pfad zum Rotationsskript angepasst werden, ebenso die Schlafzeit.
Danach noch die Datei ausführbar machen:

1
chmod +x /usr/local/bin/rotatebutton.sh

Das Skript prüft den Status des IBM Hotkeys Tablet Mode, wenn dieser gesetzt ist wird die Rotation nach HDAPS für 8 Sekunden aktiviert, danach wird das Rotationsskript wieder getötet.

Somit erreicht man: Komfort durch automatische Rotation, wenig Belastung des Prozessors durch Verhinderung des Pollings, kein versehentliches Drehen des Bildschirms bei der Arbeit.

Jetzt müssen wir nur noch den Rotierknopf unserem Skript zuweisen:

1
gconf-editor

Unter apps/metacity/keybinding-commands
Ändern wir den Wert eines freien (oder der alten Rotationsbelegung) Kommandos auf:

1
sudo /usr/local/bin/rotatebutton.sh

unter /apps/metacity/global_keybindings/ fügen wir dann beim entsprechenden run_command_X das Keyevent ein:

1
XF86User1KB

Eventuell muss die sudoers Liste noch angepasst werden:

1
visudo

Dort fügen wir in die Zeile mit %tabletgroup noch folgendes hinzu:

1
,/usr/local/bin/rotatebutton.sh

Nun noch abspeichern, wenn man durch visudo wirklich in vi gelandet ist, so hat man gewisse Schwierigkeiten bei der Bedienung, bei mir bin ich glücklicherweise in nano gelandet, man kann die Datei auch einfach mit nano /etc/sudoers aufrufen, aber wenn man einen Fehler macht kann das unangenehme Auswirkungen haben.
(sofern die Anleitungen dieser Seite befolgt wurden sollte jetzt alles funktionieren.)