Chibi-nah::blog

Des geekeries, de la MAO, de tout et de rien…

Archives

Gestion de la rotation avec un Tablet PC HP TM2 (Sous Linux)

Juste une note rapide pour expliquer comment faire pour que l'écran se retourne automatiquement quand je bascule mon laptop en mode "tablette".

Note

la rotation de l'écran est effectuée via xrandr (truc standard).

Par contre, la rotation de la saisie (tactile, stylet, gomme) est gérée par xsetwacom. À adapter au besoin...

Attention: cet article a été écrit pour un Tablet PC doté d'une tablette WACOM. Il est inutile de l'essayer avec un PC doté d'une tablette NTrig, ça ne fonctionnera pas.

Il y avait deux possibilités :

La plus répandue (en tout cas, celle que je trouve presque partout sur le web) : surveiller la valeur de /sys/devices/platform/hp-wmi/tablet

Si le fichier contient "0", c'est en mode "laptop", si "1", mode "tablet".

Simple, mais nécessite de faire tourner un daemon unix qui va surveiller le changement de cette valeur (truc lourd...)

L'autre solution (celle que j'ai retenu) : quand je rabat l'écran, un "keycode" est généré. Il suffit de le récupérer et de le transformer en scancode, pour que Xorg puisse le traiter.

Remarque : ici, j'utilise XF86Back et XF86Forward. Comme je n'ai pas ces touches sur mon clavier, ça ne me dérange pas. Par contre, si cela pose un problème avec les navigateurs web/client email/pigeons voyageurs, il suffit d'utiliser un autre code inutilisé.

Pour cela : il suffit de récupérer les deux codes (via les logs du noyau), puis de scripter un peu.

Dans le rc.local : ajouter

setkeycodes e058 158 # mode "tablet" xorg : mappe sur 166 XF86Back
setkeycodes e059 159 # mode "laptop" xorg : mappe sur 167 XF86Forward

Récupérer le script "rotate" (depuis le vrac : http://vrac.chibi-nah.net/ ) et le coller, par exemple, dans /usr/local/bin

À noter que lorsque je pivote l'écran, je désactive le touchpad.

Il n'y a plus qu'une chose a faire, c'est associer les événements XF86Back et XF86Forward à "affichage par défaut" et "rotation de 180°" (en gros, utiliser des raccourcis claviers pour lancer un programme).

Pour cela, consultez la doc de votre Environnement de bureau (Gnome, KDE) ou Gestionnaire de Fenêtres (Window Maker, Fluxbox, ...).

Je prends l'exemple de Window Maker :

Lancer l'outil WPrefs, aller sur "Personnalisation du menu de lancement".

Ajouter un sous-menu "Rotation".

Créer ces entrées et modifier les commandes associées :

Nom Lancer le programme Raccourci clavier
"Normal" /usr/local/bin/rotate 0 XF86Forward
"90°" /usr/local/bin/rotate 90  
"180°" /usr/local/bin/rotate 180 XF86Back
"270°" /usr/local/bin/rotate 270  

Si vous avez un bouton pour gérer la rotation, on peut ajouter :

"Rotation" /usr/local/bin/rotate rotate XF86RotateWindows

(À condition bien entendu que le bouton soit mappé sur "XF86RotateWindows").

Du coup, le menu devrait se présenter sous cette forme :

Voilà

Si l'écran pivote automatiquement, c'est gagné.

On peut aussi pivoter l'écran manuellement, en naviguant dans le menu.