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 ;)

Simon Vieille

Gitea et forgejo v1.19.0 sont dans les bacs 🥳

Gitea et forgejo v1.19.0 sont dans les bacs 🥳

Le 20 mars dernier a été publiée la version v1.19.0 de Gitea ! Forgejo, le soft fork de Gite…

Générer des images pour le partage sur les réseaux

Générer des images pour le partage sur les réseaux

Il existe une quantité importante d'outils pour éditer des images. Ce sont soit des logiciel…

Woodpecker CI, envoyer du mail dans certaines conditions

Woodpecker CI, envoyer du mail dans certaines conditions

En juin dernier, j'ai migré ma plateforme d'intégration continue vers Woodpecker CI et j'en …


  • Steven
  • Bonjour Simon,
    merci pour votre article et pour le partage.
    Je ne sais pas si vous le savez, mais il existe aussi arandr, une interface graphique simple et efficace pour gérer les écrans.
    Cordialement,
    Steven
  • Simon
  • J'utilise parfois arandr, bien pratique en effet. Je préfère cependant des scripts que je peux rapidement lancer sans toucher à la souris. C'est pour moi plus rapide et pratique :)

    Merci pour ton commentaire.

Ajouter un commentaire

Votre commentaire - Vous pouvez utiliser du markdown

Renouveler