Outils pour utilisateurs

Outils du site


linux:display

Créer une résolution personnalisée

Avec Xrandr

Xrandr est un outil qui permet de gérer qu'est ce qui sort, sur quoi, à quelle résolution et par rapport à qui. C'est un configurateur d'affichage en ligne de commande. Il se peut que votre linux ne vous propose pas de résolution adaptée à votre écran. Probablement à cause d'un problème de pilote, ou de détection (matériel non/mal reconnu ?). Il existe donc une solution : créer une résolution personnalisée. Cette solution m'a déjà servi sur une vieille TV LCD branchée sur mon pc linux de salon… :)

Voici la méthode :

  • On regarde quelles sont les sorties physiques disponibles, afin de travailler sur la bonne :
xrandr

Vous devriez voir un Screen 0, la sortie sur laquelle il est branché (probablement LVDS-1 s'il s'agit d'un pc portable), ainsi que toutes les autres disponibles (DP-1 DP-2 HDMI-1 et VGA-1 dans mon cas).

  • Création d'un mode
# On trouve les infos pour la création du mode correspondant à 1920x1080 60Hz (résolution supposée être la bonne donc)
cvt 1920 1080 60
 
# Ensuite on copie toute la ligne sans "Modeline" et on créer le mode avec :
xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
 
# On ajoute notre mode à la sortie qui nous intéresse (par exemple VGA-1 si l'écran en question est branché dessus)
xrandr --addmode VGA-1 1920x1080_60.00
 
# On active ensuite le mode crée sur la sortie
xrandr --output VGA-1 --mode 1920x1080_60.00
 
# On active ensuite le mode créé sur la sortie, comme ceci s'il s'agit de votre second écran, qui est à droite du 1er qui est branché sur HDMI-1
xrandr --output VGA-1 --mode 1920x1080_60.00 --right-of HDMI-1

Rendre la modification définitive

Cette technique a pour inconvénient de ne pas être persistente. Une fois redémarré, c'est comme avant. L'astuce pour la rendre définitive consiste à tout betement créer un script qui sera lancé au démarrage.

  • Télécharger le script suivant, et le placer dans ~/.config
    display.sh
    #!/bin/bash
    xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
    xrandr --addmode VGA-1 1920x1080_60.00
    # Pour 1 seul écran
    xrandr --output VGA-1 --mode 1920x1080_60.00
    # Pour le 2 eme écran (commenter la précédente ligne, et décommenter celle ci dessous)
    #xrandr --output VGA-1 --mode 1920x1080_60.00 --right-of HDMI-1

    Attention : le script ci dessus contient tout bêtement les lignes de l'article précédent, prenez soin de les adapter en fonction de votre configuration.

  • Ouvrir un terminal et saisir cette commande pour rendre le script exécutable
    chmod +x ~/.config/display.sh
  • Trouver dans vos paramètres systèmes “Démarrage” ou “Application au démarrage” ou “Session et démarrage” .. le nom dépend de votre environement de bureau
  • Y ajouter votre script au démarrage de la session, comme on pourrait le faire avec n'importe quel autre application
  • Enjoy ;)

Utiliser l'écran d'une autre machine comme un second écran, c'est possible :)

Sur linux, on a la possibilité d'utiliser l'écran d'une autre machine (ou plusieurs autres) en tant que second écran d'une autre. Sur la machine principale, normalement déjà doté de l'outil xrandr, on a juste besoin d'avoir un serveur vnc d'installé.

Machine principale

Installation du serveur VNC

Archlinux / Manjaro

yay -Sy x11vnc
sudo pacman -Sy x11vnc # si vous n'avez pas d'AUR Helper

Debian / Ubuntu / Mint

sudo apt install x11vnc

Création du 2nd écran virtuel

On admet que notre écran principal, et celui qu'on souhaite utiliser comme second écran, ont une résolution de 1920×1080.

  • On regarde quelles sont les sorties physiques disponibles
xrandr

Vous devriez voir un Screen 0, la sortie sur laquelle il est branché (probablement LVDS-1 s'il s'agit d'un pc portable), ainsi que toutes les autres disponibles (DP-1 DP-2 HDMI-1 et VGA-1 dans mon cas).

  • Création d'un mode
# On trouve les infos pour la création du mode correspondant à 1920x1080 60Hz
cvt 1920 1080 60
 
# Ensuite on copie toute la ligne sans "Modeline" et on créer le mode avec :
xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
 
# On ajoute notre mode à la sortie qui nous intéresse (VGA-1 dans mon cas, car non utilisée)
xrandr --addmode VGA-1 1920x1080_60.00
 
# On active ensuite le mode créé sur la sortie, en précisant la position par rapport à l'écran principal
xrandr --output VGA-1 --mode 1920x1080_60.00 --right-of LVDS-1

Partage du 2nd écran avec VNC

  • La commande est assez simple, la syntaxe est la suivante
x11vnc -clip ${X}x${Y}+${X_offset}+${Y_offset}
  • Si le 2nd écran est positionné à gauche (–left-of) l'offset sera +0+0, s'il est positionné à droite (avec –right-of) l'offset sera +1920+0, c'est à dire qu'on se décale d'un écran entier sur l'axe X, donc sur la droite. Donc, dans mon cas l'écran est à droite, la commande sera
x11vnc -clip 1920x1080+1920+0

IP

Le client VNC de la seconde machine se connectera sur la machine principale grâce à son IP, il faut alors la récupérer.

ip -4 a

Machine secondaire

La seconde machine peut être n'importe quel type de machine. Une tablette, un smartphone, un PC. Pourvu qu'elle puisse exécuter un client VNC.

A partir de là, il suffit de se connecter à l'IP de la machine principale depuis la seconde.

Android

Je conseille l'utilisation de l'application androidVNC qui est disponible sur F-Droid.

Saisir l'ip dans “Adresse”, laisser le port par défaut (5900), choisir un format de couleur aussi (si le réseau est bon on peut utiliser le 24-bit, sinon baisser un peu) et appuyer sur Connecter.

Windows

Je conseille l'utilisation du client UltraVNC (libre et gratuit) disponible ici. On peut également utiliser le client non-libre et propriétaire, mais gratuit aussi, disponible ici.

Linux

Je conseille l'utilisation de tigervnc. La commande ci-dessous se connecte directement en plein écran sur l'écran partagé. On y voit que du feu :p

vncviewer -encodings "tight copyrect" -FullScreen=1 -QualityLevel=9 192.168.5.38

Il y a aussi Remmina qui dispose d'une interface graphique complète.

MacOS

[à compléter]

Résolution de problèmes

Configure crtc 0 failed

Je n'ai pas réussi à démêler ce problème. J'ai trouvé des infos ici, mais sans succès sur ma Manjaro live de test…

Source

linux/display.txt · Dernière modification: 2019/10/29 15:43 par T0MuX