Table des matières
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…