Des geekeries, de la MAO, de tout et de rien…
Je suis
Charlie

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

Icône auteur nah, Icône canondrier 17 décembre 2010, Icône commentaire
Mots clés Icône catégorie Tablet PC, linux, geekeries, classé dans Icône catégorie Geekeries, Linux, Asrall

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 démon 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 : mappé sur 166 XF86Back
setkeycodes e059 159 # mode "laptop" xorg : mappé 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'écran, je désactive le touchpad.

Il n'y a plus qu'une chose à 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.