Monitordisplay : gérer ses dispositions d'écrans
Je branche très souvent des écrans externes à mon laptop et je suis un peu lassé de bidouiller xrandr
. En effet, ses instructions sont simples mais assez longues et pénibles à écrire.
Ainsi, j'ai décidé de me faire un outil pour pouvoir configurer des modes d'affichage, pouvoir ajouter plusieurs dispositions et les activer rapidement.
Comme à mon habitude, c'est un outil en ligne de commande. J'ai décidé d'utiliser PHP pour une question de pratique pour moi.
Installation de monitordisplay
Il faut installer l'interpréteur PHP (5 ou 7) :
Maintenant que PHP est installé, il faut récupérer le projet :
Configuration
monitordisplay
va essayer de charger 3 fichiers. Chaque fichier peut surcharger la configuration du précédent. Voici la liste :
/etc/monitordisplay/config.ini
$HOME/.config/monitordisplay/config.ini
$HOME/.monitordisplay
Je suis le seul utilisateur du laptop donc je vais juste créer le dernier.
Le fichier de configuration copié contient 2 écrans :
laptop
et hdmi
sont les identifiants "humains" sur lesquels je vais m'appuyer pour réaliser les dispositions. Le paramètre name
contient l'identifiant technique passé à xrand
.
resolutionX
et resolutionY
indiquent la résolution de l'écran.
Il est possible de configurer plusieurs fois le même écran. Il suffit de modifier l'identifiant humain. Vous pouvez ainsi prévoir plusieurs résolutions.
Maintenant, il reste à renseigner des modes d'affichage. En voici trois exemples :
Tout comme un écran, le mode d'affichage porte un identifiant. Il possède également une liste de dispositions (config[]
) et un indicateur (optionnel) d'écran principal (primary
). L'ordre des identifiants définie la position, de gauche à droite, des écrans.
Utilisation
Pour activer un mode d'affichage (exemple : work
), il suffit de lancer cette ligne de commande :
Le mode work
contient deux dispositions. Pour passer à la seconde disposition, il suffit de lancer :
-t
permet donc de passer successivement d'une disposition à une autre.
Quand monitordisplay
charge un mode ou change de disposition, par défaut, il désactive les écrans non pris en charge. Si vous souhaitez outre-passer ce comportement, il suffit de passer l'argument -s
. C'est assez pratique quand vous souhaitez initialiser une résolution sur un écran sans désactiver les autres.
Le code source est disponible sur gitnet et c'est open bar ;)