web-dev-qa-db-fra.com

Est-il possible d'avoir différentes configurations DPI pour deux écrans différents?

J'utilise Ubuntu 12.04.3 avec les pilotes NVidia (319) pour ma carte graphique Quadro K2100M et lorsque je bascule l'écran principal de mon ordinateur portable 3200x1800 en mode 1920x1080 (en utilisant nvidia-settings), l'affichage devient flou ...

J'utilise deux écrans:

  • Mon écran principal est un LCD avec une résolution maximale de 1920x1200.
  • L'écran de mon ordinateur portable (résolution d'origine 3200x1800) est assis à droite de celui-ci.

Le problème principal est que, sur Ubuntu, la police est beaucoup trop petite sur l’écran de mon ordinateur portable. À cause de cela, je voulais changer la résolution de mon ordinateur portable en 1920x1080.

Lecture réponse de Galgalesh , j'ai essayé de calculer mon DPI et voici la configuration DPI que je devrais avoir:

  • 94x94 pour mon écran principal LCD 1920x1200
  • 235x236 pour mon écran d'ordinateur portable 3200x1800

Existe-t-il un moyen d’avoir une double résolution DPI avec un poste de travail étendu?

114
Anthony O.

Il semble que les gens ont toujours du mal à utiliser plusieurs moniteurs et écrans HiDPI. Une bonne solution de contournement est décrite dans Arch wiki https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays . Donc j'ai:

  • ordinateur portable asus ln303ux: 3200x1800,
  • moniteur externe: 1920x1200

Maintenant, j'utilise Ubuntu 14.10 & GNOME Shell 3.12.2, qui offre un support HiDPI plutôt utilisable. Donc, j'utilise simplement le support prêt à l'emploi de HiDPI - le facteur d'échelle est 2 (il peut être configuré via une interface graphique). Cela signifie que sur un moniteur externe, tout est deux fois plus grand que ce qui est acceptable. Ainsi, j'utilise xrandr; mais au lieu de réduire la taille de l'écran d'un ordinateur portable, j'augmente l'écran du moniteur externe:

xrandr --output HDMI1 --scale 2x2 --mode 1920x1200 --fb 3840x4200 --pos 0x0
xrandr --output eDP1 --scale 1x1 --pos 320x2400

Donc, un par un:

  1. --output HDMI1 dans mon cas est l'écran externe, eDP1 est l'écran de l'ordinateur portable.
  2. --scale 2x2 - Réduit le plus petit chaque fois sur l'écran externe
  3. --mode XxY - définit explicitement la résolution de l'écran (pas nécessaire si est déjà défini)
  4. --fb XxY - définit la taille d'un écran virtuel (framebuffer) ( important sans cela, vous ne pourrez utiliser qu'une quatrième partie de l'écran). Dans mon cas, les écrans se superposant, j’ai donc ajouté les hauteurs effectives 2400 + 1800 = 4200. Notez également que la taille maximale du framebuffer peut être spécifiée dans xorg.conf - vous ne pouvez donc pas la dépasser (elle est écrite dans la première ligne de la sortie de xrandr -q).
  5. --pos XxY - dans mon cas, je règle le positionnement absolu des écrans, de sorte que l'écran de mon ordinateur portable se trouve directement au bas de l'écran externe.

Et ça y est! Tout est aussi croustillant que possible.

FYI: pour obtenir les noms des écrans et les résolutions disponibles, on peut exécuter xrandr --current. Vous trouverez plus d'informations sur le réglage de la résolution ici: https://wiki.ubuntu.com/X/Config/Resolution .

UPDATE - OPTION 2: encore une solution de contournement intéressante pour les applications prenant en charge GTK3. Si je n'utilise normalement qu'une seule application sur le grand écran (par exemple, certains IDE, comme leks), je ne redimensionne pas l'écran, mais j'exécute l'application à sa taille d'origine.

env GDK_SCALE=0.5 GDK_DPI_SCALE=0.5 CLUTTER_SCALE=0.5 appname
111
artem

Pourquoi est-ce flou?

Votre écran affiche toujours 3 200 x 1 800 pixels. Si vous baissez la résolution de l’écran de votre ordinateur, cela signifie simplement que votre écran doit redimensionner l’image pour s’adapter à votre écran. Selon le rapport entre votre résolution native et la résolution actuelle, cette mise à l'échelle produira une image floue.

Vous pouvez trouver plus d'informations sur la mise à l'échelle et la résolution native ici: https://en.wikipedia.org/wiki/Native_resolution

Comment puis-je agrandir le texte?

Si le texte est trop petit, vous avez deux options:

1. Changer la taille de la police Ubuntu

Comment changer les polices et ajuster leur taille?

2. Changer le DPI (rendra toute l'interface plus grande, pas seulement le texte)

Comment trouver et changer l'écran DPI? (répondre par @whtyger)

8
Galgalesh

J'ai utilisé la solution d'artmem, mais j'ai rencontré le problème de souris mentionné par EoghanM. La solution de contournement que j'ai trouvée dans l'ancien rapport de bogue auquel il faisait référence était liée à --panning.

Je tire pour: - DP1-2 3840x2160 en DIP natif. - eDP1 1366x768, mis à l'échelle pour sembler raisonnable à droite de DP1-2.

J'arrive à le faire en utilisant un tampon de trame similaire à DP1-2 + (2x eDP1), puis j'échelle tout ce qui se passe sur eDP1 de 1/2.

Cela devrait être simple mais xrandr est un peu délicat.

Ici --scale est utilisé pour réduire tout ce qui passe à eDP1 de 1/2. --panning est identique à eDP1 dans le tampon de trame d'origine avec la position (+ 3840 + 0) de juste à droite de DP1-2. + 0 + 2160 serait en dessous.

xrandr -d :0 --fb 6572x3696 --output DP1-2 --mode 3840x2160 --scale 1x1 --rate 60 --pos 0x0 --primary

# sometimes panning get applied incorrectly when switching from some other mode, running it twice is a work around
xrandr -d :0 --output eDP1 --off
xrandr -d :0 --fb 6572x3696 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+3840+0
xrandr -d :0 --fb 6572x3696 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+3840+0

J'ai également mis Xft.dpi à 185

$ cat ~/.Xresources
Xft.dpi: 185

Lorsque je débranche du moniteur externe, je lance:

xrandr -d :0 --output DP1-2 --off
xrandr -d :0 --fb 2732x1536 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+0+0 --pos 0x0 --primary

Ça n'a pas l'air génial mais je ne suis pas loin de mon bureau. Vous pouvez contourner ce problème en modifiant Xft.dpi et en redémarrant tous vos programmes de bureau. Je ne connais pas de moyen de changer Xft.dpi et d’obtenir que les clients l’utilisent sans le redémarrer.

7
Brian C.

Ces réponses sont toutes excellentes et m’ont déjà aidé, mais une récente

Sudo apt-get upgrade 

supprimé mon randr-config! En essayant de restaurer mes paramètres, je me suis rendu compte que je ne pouvais plus passer la souris au-delà du quart de cercle supérieur du deuxième écran, quelle que soit l'entrée --fb. De https://wiki.archlinux.org/index.php/HiDPI#Side_display J'ai finalement découvert que l'ajout de panoramique était la solution. De plus, l'utilisation de '--ight-of' ou '--left-of' est plus simple que '--pos'.

"Généralement, si votre moniteur HiDPI (ordinateur portable) est composé de pixels AxB et votre moniteur standard (externe) sous CxD et que vous redimensionnez à l'aide de [ExF], la ligne de commande du droit est de:"

xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP-1
4
ONECore

J'ai pu résoudre ce problème (avec des problèmes) en utilisant les détails décrits dans la discussion suivante sur github: https://github.com/linuxmint/Cinnamon/issues/3606

Moniteur externe QHD (2560X1440), moniteur interne/d'ordinateur portable 3200x1800

xrandr --output eDP-1 --scale 1x1 --pos 0x2880
xrandr --output DP-1 --mode 2560x1440 --scale 2x2 --fb 5120x4680

OR

Moniteur externe FHD (1920x1080), moniteur interne/d'ordinateur portable 3200x1800

xrandr --output eDP-1 --scale 1x1 --pos 0x2160
xrandr --output DP-1 --mode 1920x1080 --scale 2x2 --fb 3840x3960

Celles-ci fonctionnent, mais le moniteur haute résolution (ordinateur portable) se déchire lorsque je déplace des fenêtres, que je redimensionne des écrans ou que je navigue dans un navigateur. Cela ressemble à une solution de rendu logiciel (qui présente tous ces problèmes de déchirement et de rafraîchissements lents).

En 2017, Linux/Gnome doit prendre en charge la solution de mise à l’échelle mixte multi-écrans. Windows 10 et OS X ont résolu ce problème sans avoir à recourir à des correctifs partiels en bandes de commande (le problème de la déchirure n'est pas acceptable pour les jeux).

4
Jeets

J'ai un moniteur 1024x768 obsolète, connecté à un ordinateur portable (moins ancien).
Les fenêtres rendues dans des tailles très différentes, beaucoup plus grandes dans l’écran externe (qui a un pas de pixels plus ancien et plus grand).
J'ai trouvé une commande pour redimensionner le moniteur:

xrandr --output VGA-1 --scale 1.5x1.5

VGA-1 est le nom interne du moniteur, trouvé en exécutant la commande suivante:

xrandr --current | grep connected

L’effet est que l’ancien moniteur affiche maintenant son contenu presque à la même taille que le portable.

Curieusement, cela fonctionne à l'échelle x1,5 mais pas 1,45, l'affichage (dans mon cas) devient noir.

Lorsque j'ai lancé le commentaire sur la balance pour la première fois, le résultat était effrayant car le contenu des deux écrans se chevauchait. Par exemple, le pointeur du curseur est apparu deux fois.

J'ai couru un programme:

arandr &

pour définir les positions relatives de l'écran pour le réparer.
Il fonctionne comme le paramètre Paramètres> Périphériques> Écrans.

Je l'ai installé avec:

Sudo apt-get install arandr

Merci @LuisAlvarado et aux autres d’avoir partagé vos connaissances!

0
Juan Lanus

Fist run $xrandr pour afficher toutes les sorties

Screen 0: minimum 320 x 200, current 7680 x 2160, maximum 8192 x 8192
eDP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   3840x2160     60.00*+  59.98    59.97  
   3200x1800     59.96    59.94  
   2880x1620     59.96    59.97   
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 connected 3840x2160+3840+0 (normal left inverted right x axis y axis) 521mm x 294mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1680x1050     59.88  
   1280x1024     75.02    60.02

Comme vous pouvez le constater dans ce cas, le deuxième moniteur est connecté à DP-3. Vous pouvez ensuite revendre l’affichage: $xrandr --output DP-3 --auto --scale 2x2

0
Abdelhak