====== 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]]