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


J'utilise Ubuntu 12.04.3 avec les pilotes NVidia (319) pour ma carte graphique Quadro K2100M et quand je passe mon écran d'ordinateur portable principal 3200x1800 en mode 1920x1080 (en utilisant 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) se trouve à droite de celui-ci.

Le problème principal est que, sur Ubuntu, la police est trop petite sur l'écran de mon ordinateur portable. Pour cette raison, je voulais changer la résolution de mon ordinateur portable en 1920x1080.

En train de lire Galgalesh répond 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 deux résolutions DPI avec un bureau étendu?


91
2017-12-20 09:15


origine


Eh bien, conduire un écran LCD sur une résolution non native apparaîtra flou. C'est parce que la manière dont les pixels sont disposés de manière fixe et que le signal ne correspond pas à cela. Qu'attendez-vous exactement? Désactiver la mise à l'échelle peut-être? Mais alors, il n'est affiché qu'au milieu de l'écran et non en plein écran. Pour un affichage optimal, conservez-le toujours sur la résolution d'écran native. Je ne pense pas que cela ait quelque chose à voir avec Ubuntu. - gertvdijk
@gertvdijk: Avez-vous un moyen de conserver les deux écrans à leur résolution d’écran native? Je pense que c'est ce que demande Anthony. - beldaz
@beldaz Ma réponse était de révision 1 de la question. Il ne mentionnait rien à propos de la configuration à double écran à ce moment-là. Parce que la question a été modifiée de manière significative, cela soulève les sourcils pour les messages modifiés après cette date. Cela invalide fondamentalement tout ce qui a contribué et diminue vraiment ma motivation pour aider. Les utilisateurs devraient plutôt poser une nouvelle question, à mon avis. - gertvdijk
@gertvdijk Désolé, c'est logique maintenant. - beldaz
Je me demande si la possibilité d'utiliser Wayland dans la dernière version d'Ubuntu rend la résolution plus facile. - mkataja


Réponses:


Il semble que les gens ont encore du mal à essayer de travailler avec plusieurs écrans 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 et GNOME Shell 3.12.2 qui ont un support HiDPI très utilisable. Donc, j'utilise juste la prise en charge prête à 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, je reçois tout deux fois plus que ce qui est acceptable. Ainsi, j'utilise xrandr; mais au lieu de réduire la taille de l'écran de l'ordinateur portable, j'ai haut de gamme 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 - Rendez tout sur l'écran externe deux fois plus petit
  3. --mode XxY - définir explicitement la résolution pour l'écran (pas nécessaire si elle est déjà définie)
  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, un écran était au-dessus d'un autre, j'ai donc ajouté des hauteurs efficaces de 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 -q sortie).
  5. --pos XxY - dans mon cas, je règle le positionnement absolu des écrans, l'écran de mon ordinateur portable se trouve donc directement au bas du sceen externe.

Et ça y est! Tout est aussi précis que possible.

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

UPDATE - OPTION 2: une autre solution 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 leksah), je ne redimensionne pas l'écran, mais lance l'application à sa taille d'origine.

env GDK_SCALE=0.5 GDK_DPI_SCALE=0.5 CLUTTER_SCALE=0.5 appname

95
2017-12-02 13:43



eu un error of failed request: BadValue (integer parameter out of range for operation) :-( - Juh_
Merci cela fonctionne presque parfaitement. Le seul inconvénient est un curseur géant sur le moniteur basse résolution. Une idée de comment résoudre ce problème? - wgcrouch
le --fb l'option ne semble pas permettre plus d'un quart de la 2x2 screen (le curseur de la souris ne peut pas être déplacé au-delà du quadrant supérieur gauche) - EoghanM
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
Le paramètre --fb est 2 * moniteur externe + écran d'ordinateur portable - Brian C.


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

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

J'arrive à ce que cela se produise en ayant un tampon de trame qui est comme DP1-2 + (2x eDP1) puis je redimensionne tout en allant à eDP1 de 1/2.

Cela devrait être simple mais xrandr est un peu difficile.

Ici --scale est utilisé pour réduire tout ce qui va à eDP1 de 1/2. --panning est identique à eDP1 dans la mémoire tampon d'origine avec la position (+ 3840 + 0) 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

Je mets aussi Xft.dpi à 185

$ cat ~/.Xresources
Xft.dpi: 185

Lorsque je débranche mon moniteur externe, je cours:

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

Cela 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 modifier Xft.dpi, puis de demander aux clients de l'utiliser sans les redémarrer.


7
2018-03-16 15:47



Le panoramique était la dernière pièce du puzzle - il a résolu le curseur bloqué à un quart du problème. Merci @Brian! - rtindru
"courir deux fois" ???? saint pixel, ça marche (j'appliquais déjà le panoramique, mais c'est correctement appliqué seulement si je lance la même commande deux fois). - Riccardo Galli
Ya, j'ai remarqué que ça marchait à chaque fois que je l'ai couru, alors j'ai pensé que je l'essayerais deux fois, et bien, nous y sommes. - Brian C.
Bon, cela ne fonctionne pas avec le noyau 4.5.2. Je n'ai installé que ce noyau pour résoudre un problème lié au docker dans la version 4.5.1 et maintenant le script ci-dessus me laisse un écran noir. Pour résoudre ce problème sur 4.5.2, je fais les commandes eDP1 sans la commande --off puis la commande DP1-2. - Brian C.
Finalement travaillé avec panoramique! J'ai toujours une souris et un écran glitchy (depuis que j'ai commencé à utiliser xrandr). Une idée? - hsandt


Pourquoi est-ce flou?

Votre écran affiche toujours 3200x1800 pixels. Si vous réduisez la résolution de l'écran sur votre ordinateur, cela signifie simplement que votre écran doit redimensionner l'image pour l'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 d'Ubuntu

Comment changer les polices et ajuster leur taille?

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

Comment trouver et changer l'écran DPI? (réponse de @whtyger)


6
2017-12-23 16:23



Juste comme une note sur l'augmentation de la taille des polices. Augmentez plutôt le DPI afin que l’interface utilisateur complète Cela devrait être reconnu correctement automatiquement (en lisant l'EDID depuis votre écran), mais si cela échoue: Comment trouver et changer l'écran DPI? - gertvdijk
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 d'ordinateur portable droit devrait avoir 235x235 DPI ... Et je ne trouve aucun moyen de définir deux résolutions DPI différentes sauf en configurant nvidia pour exécuter 2 X séparé, et puis je ne peux pas passer une fenêtre de gauche à droite ... Windows est bien mieux pour gérer ce problème :( - Anthony O.
-1 pour ignorer complètement le point de la question - Martin Konecny
@AnthonyO. S'il vous plaît ne changez pas considérablement votre question après qu'une réponse a été postée, vous n'aimez pas. Au moment où cette réponse a été postée, vous n'avez rien mentionné concernant 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 questions et publiez une nouvelle question à la place. - gertvdijk
@MartinKonecny ​​Le questionneur original a substantiellement modifié sa question, cette réponse répond à sa question initiale, vérifiez les révisions. - Jamie Kitson


Ces réponses sont toutes excellentes et m'ont aidé précédemment, mais une récente

sudo apt-get upgrade 

supprimé mon randr-config! En essayant de restaurer mes paramètres, j'ai constaté que je ne pouvais plus dépasser la 1 / 4ème quadrant 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 faisait l'affaire. En outre, l’utilisation de «--right-of» ou «--left-of» est plus simple que «--pos».

"Généralement, si votre moniteur HiDPI (ordinateur portable) est constitué de pixels AxB et que votre moniteur standard (externe) est CxD et que vous effectuez une mise à l’échelle par [ExF], la ligne de commande de right-of est:"

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

3
2018-05-15 15:39



C'est intéressant, et il semble que cela puisse être utile à quelqu'un, même si je ne suis pas certain que cela soit une réponse à cette question. Peut-être que vous devriez ouvrir et ensuite répondre à votre propre question? Pas vraiment sûr. - Emily
@Emily: Je pense que cette réponse appartient ici. J'ai utilisé la réponse d'artem aujourd'hui et j'ai posé le problème exact 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 fonctionnait instantanément. - BrainCore
Ouais, désolé, je voulais que ce soit une réponse à la réponse de @ artem, mais Stackexchange est super génial et ne me laissera pas répondre jusqu'à ce que j'obtienne 50 points de brownie. - ONECore
Notez également que cela ne semble pas être persistant, donc à moins de l'ajouter à xorg.conf, il disparaît à chaque redémarrage. Mais si vous l'ajoutez là-bas, cela forcera le réglage, peu importe (parfois, je ne branche pas le moniteur). Donc, je trouve 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 de partager votre expérience aussi @BrainCore! - Emily


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

Moniteur externe QHD (2560X1440), moniteur interne / 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 / 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) est très souvent déchiré lorsque je déplace des fenêtres, redimensionne des écrans ou fait défiler un navigateur. Cela ressemble à une solution de rendu de logiciel (qui présente tous ces problèmes de déchirement et de rafraîchissement lent).

En 2017, Linux / Gnome doit prendre en charge la solution multi-moniteurs et évolutive. Windows 10 et OS X ont tous les deux résolu ce problème sans avoir à recourir à des correctifs de bande-aide en ligne de commande qui fonctionnent partiellement (le problème de déchirement n'est pas acceptable pour les jeux)


2
2017-07-20 18:54



Est-ce une nouvelle réponse ou essayez-vous de signaler un bug? - 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 comment ces paramètres fonctionnent. J'ai simplement essayé de fournir 2 options pouvant être utilisées telles quelles pour les personnes disposant d'un moniteur externe QHD ou FHD et d'un moniteur / moniteur portable 4K. Le bug est dans le déchirement que vous voyez avec cette solution. C'est inhérent à cette approche. - Jeets
Avec la prolifération des configurations 4k et multi-résolutions, je suis d’accord avec le dernier paragraphe, qui nécessite une résolution. N'était pas trop mauvais avant, mais maintenant, il est tout simplement en train de détruire ma configuration sur un moniteur maintenant que j'ai un 4k. Espérons que Ubuntu 18 LTS aura ce problème. - neuronet
C'est 2018 ... toujours le même sh1t :) - Stefanos Kalantzis
Wayland fonctionne très bien pour cela. Sauf que c'est juste pour ça ... Vous avez une bonne expérience avec wayland + kde, mieux que gnome + wayland. Je suis de retour à X en raison du manque de support pour certains logiciels qui ne fonctionnent que sur X, et de problèmes de stabilité. 2018 ... - Victor


J'ai un moniteur 1024x768 obsolète, connecté à un ordinateur portable (moins obsolète).
Les fenêtres sont de tailles très différentes, beaucoup plus grandes sur le moniteur externe (qui a un plus grand pas de points).
J'ai trouvé une commande pour mettre à l'échelle le moniteur:
xrandr --output VGA-1 --scale 1.5x1.5
VGA-1 est le nom interne du moniteur, détecté en exécutant la commande suivante:
$ xrandr --current | grep connected
L'effet est que l'ancien moniteur affiche désormais son contenu à peu près la même taille que le bloc-notes.

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

Lorsque j'ai exécuté le commentaire d'échelle la première fois, le résultat était effrayant car le contenu des deux écrans se chevauchait. Pour 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 paramètre Settigs> Devices> Displays.
Je l'ai installé avec:
sudo apt-get install arandr 

Merci @LuisAlvarado et d'autres pour partager vos connaissances!


0
2017-09-13 00:04