PROJET AUTOBLOG


le hollandais volant

Site original : le hollandais volant

⇐ retour index

Linux Mint 17 : défilement naturel dans GTK2 et GTK3

samedi 24 janvier 2015 à 14:10
Par défaut, sous Windows et GNU/Linux, le défilement n’est pas naturel mais inversé : monter le doigt sur le trackpad ou la molette a pour effet de descendre le texte. En général, tout le monde s’en fout car on y est habitué, mais ça reste illogique quand même. Les utilisateurs de portables Apple sous OS-X ont par défaut le défilement naturel.

Le défilement naturel, c’est le fait de voir les lignes de texte de l’écran monter quand on monte aussi le doigt sur la molette ou sur le trackpad ; comme sur un écran tactile, donc.

Ce tuto vous explique comment avoir le défilement naturel dans tous les logiciels sous Mint 17, et comment contourner le problème du défilement contraire dans GTK2 et dans GTK3.
Il fonctionne sur les ordinateurs ayant un trackpad Synaptics (une bonne partie des portables ont ça).

Le problème


Sur Linux Mint avec l’environnement Mate, le défilement naturel est activé à l’aide d’outils comme Ubuntu Tweak, ou bien avec cette commande :

echo 'pointer = 1 2 3 5 4 6 7 8 9 10 11 12' > ~/.Xmodmap

Le problème, c’est que ça ne marche pas partout : les logiciels en GTK2, comme Firefox ou Caja (=Nautilus) ou Pluma (=Gedit) auront le défilement naturel, mais les logiciels en GTK3 (Rhythmbox, Transmission…) ne l’auront pas. GTK3 ne propose pas d’options pour changer ça.

Il y a pourtant une solution, tirée de ce post sur AskUbuntu. Il s’agit en fait de tout mettre en défilement inversé dans les logiciels (GTK2 et GTK3), mais d’inverser l’ensemble du défilement au niveau du pilote du logiciel qui gère le trackpad : Xorg. Le résultat est que les deux inversions s’annulent et qu’on se retrouve avec du défilement naturel partout.

Prérequis


Cette opération marche chez moi, avec les logiciels suivants :

Le post initial parle d’avoir le paquet xserver-xorg-input-evdev en version 2.9.0. Il n’en est rien, puisque j’ai la version 2.8.2 et que ça marche.

Si vous aviez appliqué la méthode avec la commande donnée plus haut, il faudra faire machine arrière, avec cette commande :

sed -i 's/pointer = 1 2 3 5 4 6 7 8 9 10 11 12/#pointer = 1 2 3 5 4 6 7 8 9 10 11 12/g' ~/.Xmodmap

Manipulations


Pour voir si votre ordinateur possède un trackpad Synaptics, ouvrez un terminal et lancez xInput.

xinput

Il retournera quelque chose comme :

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Microsoft  Microsoft Basic Optical Mouse v2.0 	id=10	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=13	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ Chicony USB 2.0 Camera                  	id=11	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]

On note le « Synaptics TouchPad » sur la quatrième ligne. Dans ce cas, c’est bon, continuez le tutoriel : le nom du pilote sera tout logiquement « synaptics ».
Dans le cas contraire, il faudra déterminer le nom du pilote correspondant au matériel utilisé sur votre ordinateur.

l’ID dans la ligne du touchpad est "13" dans mon exemple, mais ça peut varier chez vous. Notez le numéro.

Tapez ensuite, en remplaçant "13" par votre numéro :
xinput list-props 13 | grep "Synaptics Scrolling Distance"
Synaptics Scrolling Distance (277): 107, 107

On obtient ça :

Notez les deux nombres à la fin : 107 et 107, on en aura besoin.
Si vous aviez trois nombres (probablement 1, 1, 1), notez les trois.

Restez dans le terminal et créez le fichier de configuration pour Xorg (remplacez "pluma" par "gedit" sous Ubuntu, ou n’importe quel autre éditeur de texte) :

gksudo pluma /usr/share/X11/xorg.conf.d/60-synaptics-options.conf

Et insérez-y le texte suivant :

Section "InputClass"
	Identifier "touchpad natural scrolling settings"
	Driver "synaptics"
	MatchIsTouchpad "on"
	MatchDevicePath "/dev/input/event*"
	Option "VertScrollDelta" "-107"
	Option "HorizScrollDelta" "-107"
EndSection

Remplacez évidemment le 107 et 107 par vos nombres respectivement, mais laissez le signe « - » devant : c’est lui qui va inversement le sens du défilement.

Si votre pilote n’était pas Synaptics mais autre chose, remplacez "synaptics" par ce que vous aviez, sur la ligne "Driver".
Si par hasard vous avez suivi mon astuce donnée ici, le fichier ne sera pas vide, et il suffit d’ajouter seulement les lignes commençant par "Option" et qui vous manquent, à la suite des autres lignes d’option.
Si vous aviez trois nombres, ajoutez à la suite des deux options, l’option suivante, toujours en remplaçant le chiffre par le vôtre et en conservant le « - » :

	Option "DialDelta" "-107"

Enregistrez le fichier et fermez Pluma.

Et voilà : il ne vous reste plus qu’à fermer votre session et à la rouvrir pour profiter du défilement naturel partout.

Au cas où ça ne marche toujours pas, essayez ceci puis relancez votre session une nouvelle fois (valable uniquement pour les systèmes utilisant Mate) :

gsettings set org.mate.SettingsDaemon.plugins.mouse active false