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'ecran se retourne automatiquement quand je bascule mon laptop en mode "tablette".

Note : la rotation de l'ecran est effectuee via xrandr (truc standard).

Par contre, la rotation de la saisie (tactile, stylet, gomme) est geree 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 possibilites:

La plus repandue (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 necessite de faire tourner un demon qui va surveiller le changement de cette valeur (truc lourd...)

L'autre solution (celle que j'ai retenu) : quand je rabat l'ecran, un "keycode" est genere. Il suffit de le recuperer 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 recuperer 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) et le coller, par exemple, dans /usr/local/bin

À noter que lorsque je pivote l'ecran, je desactive le touchpad.

Il n'y a plus qu'une chose a faire, c'est associer les evenements XF86Back et XF86Forward a "affichage par defaut" 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 Fenetres (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".

Creer ces entrees et modifier les commandes associees :

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 gerer la rotation, on peut ajouter :

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

(a condition bien entendu que le bouton soit mappe sur "XF86RotateWindows").

Du coup, le menu devrait se presenter sous cette forme :

Voila

Si l'ecran pivote automatiquement, c'est gagne.

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