Date Tags xfce

Dans les quelques revues que j’ai pu lire à propos de Xfce 4.8, ou encore de Xubuntu natty, j’ai remarqué plusieurs fois quelques petites phrases comme celle-ci :

Xfce 4.8 inclut un nouveau module qui supporte Randr 1.2, permet de changer la résolution, la rotation, la réflection, mais ne supporte ni le mode clone, ni le mode étendu avec des écrans cote-à-cote.

C’est doublement faux : il y a une fonctionnalité peu connue pour activer simplement le mode clone d’une part ; d’autre part la position des écrans est gérée dans la configuration et dans xfce4-settings-helper, mais il n’y a rien dans l’interface graphique pour la régler (par manque de temps principalement).

Mode clone

C’est tout simple, Win+P (comme sous Windows 7) va lancer une version minimale de Xfce4-display-settings qui permet d’activer rapidement l’un ou l’autre des écrans, voire les deux en mode clone. Si vous n’utilisez pas les raccourcis clavier par défaut, lancez xfce4-display-settings --minimal. Pour plus d’infos, j’en avais déjà parlé dans ce précédent billet.

Mode étendu

On passe aux choses sérieuses ; il n’y a pas d’interface graphique dans xfce4-display-settings pour régler ça, mais on peut le faire à la main, à condition de savoir entrer des commandes dans un terminal et lire le résultat. Suivez le guide…

Trouver le nom des écrans connectés

On peut utiliser xfconf pour cela, à condition d’avoir déjà utilisé xfce4-display-settings pour régler son écran (sinon, la configuration n’existera pas, ça gâche tout, même si vous pouvez très bien la générer à la main) :

xfconf-query -c displays -l

Le format de sortie est le suivant : /<Nom du profil>/<Nom de l'écran>/<Nom de la propriété>. Le profil MinimalAutoConfig contient les paramètres pour l’interface minimale décrite ci-dessus ; le profil Default contient les réglages de l’interface normale, c’est celui qu’on va utiliser. Chez moi, deux écrans sont disponibles : LVDS1, qui désigne l’écran intégré du portable (désactivé par défaut), et VGA1, qui désigne mon LCD externe.

Activer le second écran

Pour activer mon écran intégré, je change la valeur de sa propriété Active (relativement logique me direz-vous) :

xfconf-query -c displays -p /Default/LVDS1/Active -t bool -s 'true'

(Bien entendu, je ne rentre pas dans le détail, mais il est possible de changer toutes les propriétés de cette manière. Je vous conseille de jouer avec xfce4-display-settings, d’observer les changements qu’il effectue, et ensuite vous pouvez tripatouiller les réglages avec xfconf-query une fois que vous avez compris…)

Gérer sa position

Pour faire simple, je suppose que mon écran principal possède une résolution de 1280x1024, et que son coin supérieur gauche se situe à l’origine (aux coordonnées X=0 ; Y=0).

Pour placer l’écran secondaire à sa droite :

xfconf-query -c displays -p /Default/LVDS1/Position/X -t int -s 1280

Ou bien, pour le placer sous l’écran principal :

xfconf-query -c displays -p /Default/LVDS1/Position/Y -t int -s 1024

Encore une fois, ce sont deux exemples triviaux, pour illustrer les possibilités offertes.

Appliquer les changements

Pour le moment, seule la configuration a été écrite, les modifications n’ont pas été transmises à Xorg. C’est Xfce4-settings-helper (qui est lancé au début de la session) qui va se charger de cela, une fois qu’on lui aura indiqué quel profil (ici, Default) il doit appliquer :

xfconf-query -c displays -p /Schemes/Apply -t string -s 'Default' --create

Et hop, c’est à cet instant précis que votre écran explose en projetant votre chat et vos tartines par la fenêtre, qui retomberont respectivement sur le côté beurré et sur ses pattes, et vice-versa. Vous pouvez confirmer en un clin d’oeil si les paramètres ont bien été pris en compte, avec xrandr ou encore arandr, pour ne citer qu’eux.

L’avantage majeur d’utiliser le profil Default, c’est que cette configuration sera restaurée par xfce4-settings-helper à chaque lancement de session, à condition que les écrans soient toujours branchés, évidemment (je m’en sers pour désactiver l’écran intégré du portable par exemple).

Je ne suis pas responsable de ce qui arrive, hein… Si vous avez fait une bêtise (“SALUT G DÉSACTIVER TOU MES ÉCRAN LOLILOL”), et bien, c’est que vous l’avez amplement mérité. Vous pouvez toujours fermer votre session, et modifier directement ou supprimer ~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml pour réparer vos pitreries. Quoi qu’il en soit, si vous utilisez l’interface graphique, xfce4-display-settings va vous signaler que vous êtes en train de faire une bêtise, et si vous utilisez xfconf-query directement, il y a une sécurité anti-boulets dans xfce4-settings-helper qui va faire de son mieux pour vous empêcher d’éteindre tous vos écrans en même temps. :-)


À part ça, la fondation Xfce est en train de naître (et j’en suis l’un des 8 membres fondateurs, c’est la classe, mais pas autant que jeromeg qui est dans le “directoire”). :-)