====== 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 [[:doku|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 [[https://f-droid.org/packages/android.androidVNC/|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 [[http://www.uvnc.com/downloads/ultravnc.html|ici]]. On peut également utiliser le client non-libre et propriétaire, mais gratuit aussi, disponible [[https://www.realvnc.com/fr/connect/download/viewer/|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 [[https://askubuntu.com/questions/136139/xrandr-configure-crtc-0-failed-when-trying-to-change-resolution-on-external-m|ici]], mais sans succès sur ma Manjaro live de test…
===== Source =====
[[https://bbs.archlinux.org/viewtopic.php?id=191555|BBS Archlinux]]