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

123

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 (utilisation nvidia-settings), l'affichage devient flou ...

J'utilise deux écrans:

  • Mon écran principal est un écran 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.

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

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

Existe-t-il un moyen d'avoir des résolutions doubles DPI avec un bureau étendu?

Anthony O.
la source
3
Bien, piloter n’importe quel écran LCD avec une résolution non native apparaîtra flou. En effet, la disposition des pixels est fixe et le signal ne correspond pas à cela. Qu'attendez-vous exactement? Désactiver la mise à l'échelle peut-être? Mais alors, il est uniquement affiché au milieu de l'écran et non en plein écran. Pour un affichage optimal, conservez toujours votre affichage sur la résolution d’écran native. Je ne pense pas que cela a quelque chose à voir avec Ubuntu.
gertvdijk
2
@gertvdijk: Avez-vous un moyen de garder les deux moniteurs à leur résolution d'écran native? Je pense que c'est ce que demande Anthony.
Beldaz
2
@beldaz Ma réponse a été à la révision 1 de la question . Il n'a pas mentionné quoi que ce soit lié à la configuration du double écran à l'époque. Parce que la question a été modifiée de manière significative, cela soulève des sourcils pour tous les messages modifiés après cette date. Cela invalide fondamentalement tout ce qui a contribué et diminue ma motivation à aider. Les utilisateurs devraient plutôt poser une nouvelle question, à mon avis.
gertvdijk
@ gertvdijk Désolé, cela a du sens maintenant.
Beldaz
Je me demande si la possibilité d’utiliser Wayland dans le dernier Ubuntu facilite la résolution de ce problème.
mkataja

Réponses:

120

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 assez utilisable. Donc, j'utilise simplement le support prêt à l'emploi de HiDPI - le facteur de mise à l'é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 HDMI1dans mon cas, c'est l'écran externe, eDP1c'est l'écran du portable.
  2. --scale 2x2 - rendre tout sur l'écran externe deux fois plus petit
  3. --mode XxY - régler explicitement la résolution pour l'écran (pas nécessaire si est déjà défini)
  4. --fb XxY- Définir 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 pas la dépasser (elle est écrite dans la première ligne de xrandr -qsortie).
  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. La valeur Y est le double de la hauteur du moniteur 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 courir xrandr --current. Plus d'informations sur le réglage de la résolution peuvent être trouvées 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, un IDE, comme le leksah), je ne redimensionne pas l'écran, mais je l'exécute à la taille d'origine.

env GDK_SCALE=0.5 GDK_DPI_SCALE=0.5 CLUTTER_SCALE=0.5 appname
artem
la source
7
a un error of failed request: BadValue (integer parameter out of range for operation):-(
Juh_
4
L' --fboption ne semble pas activer plus d'un quart de l' 2x2écran (le curseur de la souris ne peut pas être déplacé au-delà du quadrant supérieur gauche)
EoghanM
2
La mise à l'échelle fonctionne, mais ne perdez-vous pas le HiDPI? Tout semble réduit et flou.
Andy
8
Pour une configuration côte à côte avec un moniteur externe 1920x1080 situé à gauche de mon ordinateur portable hiDPI 3200x1800:xrandr --output eDP1 --scale 1x1 --pos 3840x0 ; xrandr --output HDMI1 --scale 2x2 --mode 1920x1080 --fb 7680x2160 --pos 0x0
Daniel Bower
2
Le paramètre --fb est 2 * moniteur externe + écran d'ordinateur portable
Brian C.
10

Pourquoi est-ce flou?

Votre écran affiche toujours 3 200 x 1 800 pixels. Si vous baissez la résolution 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éponse de @ whtyger)

Galgalesh
la source
1
Juste comme une note sur l'augmentation de la taille des polices. Augmentez plutôt le DPI afin que l’ensemble de l’interface utilisateur évolue. Cela devrait être reconnu correctement automatiquement (en lisant l'EDID sur votre écran), mais en cas d'échec: comment trouver et changer le DPI à l'écran?
gertvdijk
23
En fait, ce n'est pas une réponse à ma question. J'utilise deux écrans différents avec des résolutions différentes . J'ai fait le calcul: mon écran LCD principal gauche devrait avoir une résolution de 94x94 DPI alors que mon écran de droite d'ordinateur portable devrait avoir un DPI de 235x235 ... Et je ne trouve aucun moyen de régler deux résolutions DPI différentes sauf en configurant nvidia pour qu'il fonctionne 2 X séparé, puis je ne peux pas passer d'une fenêtre de gauche à droite ... Windows est de loin préférable pour gérer ce problème :(
Anthony O.
9
-1 pour avoir complètement ignoré le sens de la question
Martin Konecny ​​le
8
@AnthonyO. S'il vous plaît ne changez pas votre question considérablement après une réponse que vous n'aimez pas a été posté. Au moment où cette réponse a été publiée, vous n'avez rien mentionné en rapport avec une configuration à double écran (voir révision 1 ). Changer votre question invalide tout ce qui a déjà été posté et vous ne devriez pas le faire. Au lieu de cela, annulez les modifications de question et publiez une nouvelle question.
gertvdijk
5
@MartinKonecny ​​Le questionneur initial a substantiellement modifié sa question. Cette réponse répond effectivement à sa question initiale, vérifiez les révisions.
Jamie Kitson
7

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 passe à 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 frame buffer 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.

Brian C.
la source
Le panoramique était la dernière pièce du puzzle - il résolvait le curseur coincé au quart du numéro d'écran. Merci @Brian!
Rtindru
2
"l'exécuter deux fois" ???? holy pixel, cela fonctionne (j’appliquais déjà le panoramique, mais il s’applique correctement uniquement si j’exécute la même commande deux fois).
Riccardo Galli
Oui, j'ai remarqué que ça fonctionnait à peu près toutes les deux fois que je le lançais, alors j'ai décidé de l'essayer deux fois et, bon, nous y sommes.
Brian C.
Bon, cela ne fonctionne donc pas avec le noyau 4.5.2. J'ai installé ce noyau uniquement pour traiter un problème lié au menu fixe dans la version 4.5.1 et maintenant le script ci-dessus me laisse avec un écran noir. Pour résoudre ce problème sur 4.5.2, je commence par exécuter les commandes eDP1 sans les commandes --off, puis DP1-2.
Brian C.
1
Enfin travaillé avec le panoramique! J'ai toujours une souris et un écran glitch (cependant, depuis que j'ai commencé à utiliser xrandr). Une idée?
Hsandt
4

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

OU

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 à plusieurs moniteurs. 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).

Jeets
la source
1
Est-ce une nouvelle réponse ou essayez-vous de signaler un bogue?
user68186
C'est une élaboration sur une réponse existante, avec plus d'options que l'on peut exploiter. La réponse fournie par @artem ci-dessus explique le fonctionnement de ces paramètres. J'ai simplement essayé de fournir 2 options qui peuvent être utilisées telles quelles pour les personnes possédant un moniteur externe QHD ou FHD, ainsi qu'un moniteur principal / moniteur 4K principal. Le bogue est dans le déchirement que vous voyez avec cette solution. Cela est inhérent à cette approche.
Jeets
2
Avec la prolifération des configurations 4k et multi-résolution, je suis d'accord avec le dernier paragraphe, cela nécessite une résolution. Ce n'était pas si grave avant, mais maintenant, je détruis tout simplement ma configuration sur un moniteur maintenant que j'ai un 4K. Espérons que Ubuntu 18 LTS aura ce problème corrigé.
Neuronet
3
Nous sommes en 2018 ... toujours la même chose :)
Stefanos Kalantzis
Wayland fonctionne très bien pour cela. Sauf que c'est juste pour ça ... J'ai aussi une bonne expérience avec wayland + kde, mieux que gnome + wayland. Je suis revenu à X en raison du manque de support pour certains logiciels qui ne tournent que sous X et de problèmes de stabilité. 2018 ...
Victor
4

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. Sur https://wiki.archlinux.org/index.php/HiDPI#Side_display, j'ai finalement découvert que l'ajout du panoramique faisait l'affaire. 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
Une fois
la source
C’est intéressant, et il semble bien que cela puisse être utile à quelqu'un, bien que je ne sois pas tout à fait sûr que cela soit une réponse à cette question. Peut-être devriez-vous ouvrir et ensuite répondre à votre propre question? Pas vraiment sûr.
Hee Jin
1
@ Emily: Je pense que cette réponse appartient ici. J’ai utilisé la réponse d’artem aujourd’hui et j’ai eu exactement le problème énoncé par ONECore (seul le quadrant supérieur gauche de l’écran était utilisable par la souris). Heureusement, j'ai vu cette réponse et le panoramique a fonctionné instantanément.
BrainCore
Ouais, désolé, je voulais que ce soit une réponse à la réponse de @ artem, mais Stackexchange est vraiment génial et ne me laisse pas répondre avant d'avoir obtenu 50 points brownie.
Onecore
Notez également que cela ne semble pas être persistant, donc à moins que vous ne l'ajoutiez à xorg.conf, il disparaît à chaque redémarrage. Mais ensuite, si vous l’ajoutez ici, cela force le réglage à tout moment (parfois, je ne branche pas le moniteur). Je trouve donc très facile de créer un shell et de l'exécuter quand je veux. Ajoutez simplement le code ci-dessus à un fichier texte se terminant par .sh (comme resolution.sh), puis rendez-le exécutable avec "chmod 0700 resolution.sh" dans le terminal.
Onecore
Merci beaucoup d'avoir partagé votre expérience avec @BrainCore!
Hee Jin
1

J'ai un moniteur 1024x768 obsolète, connecté à un ordinateur portable (moins ancien).
Les fenêtres sont rendues dans des tailles très différentes, beaucoup plus grandes dans le moniteur 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.
Cela fonctionne comme le réglage Settings> Devices> Displays .

Je l'ai installé avec:

sudo apt-get install arandr

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

Juan Lanus
la source
Cela fonctionne temporairement pour moi, mais ne colle pas si je redémarre. Je pense que je dois trouver un script pour faire ce que arandrdans mon bashrc ou quelque chose fait ici, puis mettre le tout. Merci!
Max von Hippel
arandr peut exporter un fichier de configuration. Je mets le fichier sur mon bureau et l’introduisis dans arandr à chaque redémarrage. Je n'ai pas développé de script et maintenant j'ai un moniteur et je n'utilise plus d'arandr.
Juan Lanus
0

Fist run $xrandrpour 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 voir dans ce cas, le second moniteur est connecté à DP-3 Ensuite, vous pouvez revendre l’affichage: $xrandr --output DP-3 --auto --scale 2x2

Abdelhak
la source