Vraag Is het mogelijk om twee verschillende DPI-configuraties te hebben voor twee verschillende schermen?


Ik gebruik Ubuntu 12.04.3 met NVidia-stuurprogramma's (319) voor mijn Quadro K2100M grafische kaart en wanneer ik mijn hoofdscherm van 3200x1800 overschakel naar 1920x1080 (gebruik van nvidia-settings), wordt het display wazig ...

Ik gebruik twee schermen:

  • Mijn hoofdscherm is een LCD met een maximale resolutie van 1920x1200.
  • Mijn laptopscherm (oorspronkelijke resolutie 3200x1800) zit rechts van dat.

Het grootste probleem is dat het lettertype op Ubuntu veel te klein is op mijn laptopscherm. Daarom wilde ik de resolutie van mijn laptop wijzigen in 1920x1080.

Lezing Galgalesh antwoord Ik probeerde het bereken mijn DPI en hier is de DPI-configuratie die ik zou moeten hebben:

  • 94x94 voor mijn hoofdscherm 1920x1200
  • 235x236 voor mijn 3200x1800 laptopscherm

Is er een manier om dubbele DPI-resoluties te hebben met een uitgebreide desktop?


91
2017-12-20 09:15


oorsprong


Welnu, het besturen van elk LCD-scherm met een niet-native resolutie zal wazig lijken. Dat komt omdat de manier waarop de pixels op een vaste manier zijn ingedeeld en het signaal niet overeenkomt. Wat verwacht je precies te gebeuren? Scaling mogelijk uitschakelen? Maar dan wordt het alleen weergegeven in het midden van het scherm en niet op volledig scherm. Voor een optimale weergave moet u altijd uw weergave op de oorspronkelijke schermresolutie houden. Ik denk niet dat dit iets met Ubuntu te maken heeft. - gertvdijk
@gertvdijk: Dus heb je een manier om beide monitoren op hun oorspronkelijke schermresolutie te houden? Ik denk dat dat is wat Anthony vraagt. - beldaz
@beldaz Mijn antwoord was aan revisie 1 van de vraag. Er werd op dat moment niets vermeld over het instellen op twee schermen. Omdat de vraag aanzienlijk is gewijzigd, worden de wenkbrauwen verhoogd voor berichten die na die datum zijn gewijzigd. Het maakt feitelijk alles wat wordt ingebracht ongeldig en verlaagt mijn motivatie om te helpen echt. Gebruikers zouden in plaats daarvan naar mijn mening een nieuwe vraag moeten stellen. - gertvdijk
@gertvdijk Sorry, het is logisch nu. - beldaz
Ik vraag me af of de mogelijkheid om Wayland in de nieuwste Ubuntu te gebruiken dit gemakkelijker oplost. - mkataja


antwoorden:


Het lijkt erop dat mensen nog steeds moeite hebben om te werken met verschillende monitoren en HiDPI-schermen. Een goede oplossing is beschreven in de archiewiki https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays. Dus ik heb:

  • laptop asus ln303ux: 3200x1800,
  • extern beeldscherm: 1920x1200

Nu gebruik ik Ubuntu 14.10 & GNOME Shell 3.12.2 die redelijk bruikbare HiDPI-ondersteuning heeft. Dus gebruik ik out-of-the-box-ondersteuning van HiDPI - de schaalfactor is 2 (deze kan via de grafische gebruikersinterface worden ingesteld). Dat betekent dat ik op een externe monitor alles tweemaal groter dan acceptabel krijg. Dus gebruik ik xrandr; maar in plaats van het downscaling van een laptopscherm, verhoog ik het externe beeldscherm:

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

Dus een voor een:

  1. --output HDMI1 in mijn geval is het externe scherm, eDP1 is het laptopscherm.
  2. --scale 2x2 - maak alles op het externe scherm twee keer kleiner
  3. --mode XxY - stel expliciet de resolutie in voor het scherm (niet nodig als dit al is ingesteld)
  4. --fb XxY - grootte van een virtueel scherm instellen (framebuffer) (belangrijk zonder dit kunt u slechts een vierde deel van het scherm gebruiken). In mijn geval was er een scherm bovenop een ander scherm, dus ik heb effectieve hoogtes toegevoegd 2400 + 1800 = 4200. Merk ook op dat de maximale framebuffer-grootte gespecificeerd kan zijn in xorg.conf - dan kun je het niet overschrijden (het staat geschreven in de eerste regel van xrandr -q output).
  5. --pos XxY - in mijn geval heb ik de absolute positionering van de schermen ingesteld, zodat mijn laptopscherm direct op de onderkant van de externe scanner staat.

En dit is het! Alles is zo helder als het zou kunnen zijn.

Ter info: om de namen van de schermen en beschikbare resoluties te krijgen, kan men uitvoeren xrandr --current. Meer informatie over het instellen van de resolutie vindt u hier: https://wiki.ubuntu.com/X/Config/Resolution .

UPDATE - OPTIE 2: nog een interessante oplossing voor toepassingen die GTK3 ondersteunen. Als ik normaal gesproken maar één applicatie op het grote scherm gebruik (bijv. Wat IDE, zoals leksah), wijzig ik het formaat van het scherm niet, maar voer ik de applicatie op de oorspronkelijke grootte in

env GDK_SCALE=0.5 GDK_DPI_SCALE=0.5 CLUTTER_SCALE=0.5 appname

95
2017-12-02 13:43



heb een error of failed request: BadValue (integer parameter out of range for operation) :-( - Juh_
Dank dit werkt bijna perfect. Het enige nadeel is een gigantische cursor op de lage resolutie monitor. Enig idee hoe dat op te lossen? - wgcrouch
De --fb optie lijkt niet meer dan een kwart van de 2x2 scherm (muiscursor kan niet langs het kwadrant linksboven worden verplaatst) - EoghanM
Voor een zij aan zij setup met een 1920x1080 extern beeldscherm aan de linkerkant van mijn 3200x1800 hiDPI-laptop: xrandr --output eDP1 --scale 1x1 --pos 3840x0 ; xrandr --output HDMI1 --scale 2x2 --mode 1920x1080 --fb 7680x2160 --pos 0x0 - Daniel Bower
De parameter -fb is 2 * externe monitor + laptopscherm - Brian C.


Ik heb de oplossing van artmem gebruikt, maar heb het muisprobleem van EoghanM geprobeerd. De oplossing die ik vond in het oude bugrapport waar hij aan linkt, heeft betrekking op --panning.

Ik schiet voor:  - DP1-2 3840x2160 in native DIP.  - eDP1 1366x768, geschaald om redelijk rechts van DP1-2 te kijken.

Ik krijg dit te gebeuren door een framebuffer te hebben die lijkt op DP1-2 + (2x eDP1) en dan schaal ik alles op naar eDP1 met 1/2.

Dit zou eenvoudig moeten zijn, maar Xrandr is een beetje lastig.

Hier wordt - schaal gebruikt om alles te reduceren naar eDP1 met 1/2. - panning is hetzelfde als eDP1 in de originele framebuffer met de positie (+ 3840 + 0) van net rechts van DP1-2. + 0 + 2160 zou eronder staan.

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

Ik heb ook Xft.dpi op 185 gezet

$ cat ~/.Xresources
Xft.dpi: 185

Wanneer ik de stekker van de externe monitor uit het stopcontact haal, voer ik het volgende uit:

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

Dat ziet er niet geweldig uit, maar ik ben niet zo heel ver weg van mijn bureau. Je kunt dit omzeilen door Xft.dpi te wijzigen en al je desktop-programma's opnieuw te starten. Ik ken geen manier om Xft.dpi te veranderen en laat clients het gebruiken zonder ze opnieuw te starten.


7
2018-03-16 15:47



Panning was het laatste stukje van de puzzel - het loste de cursor op bij een kwart van het schermprobleem. Bedankt @Brian! - rtindru
"het twee keer uitvoeren" ???? holy pixel, het werkt (ik paste al panning toe, maar het wordt alleen correct toegepast als ik twee keer hetzelfde commando uitvoer). - Riccardo Galli
Ya, ik merkte dat het werkte om de andere keer dat ik het runde, dus ik dacht dat ik het twee keer zou proberen en, nou, hier zijn we dan. - Brian C.
Oke, dus dit werkt niet met de kernel 4.5.2. Ik heb net die kernel geïnstalleerd om een ​​probleem met een docker in 4.5.1 op te lossen en nu laat het bovenstaande script een zwart scherm achter. Om dit op 4.5.2 te repareren, voer ik de eDP1-opdrachten eerst uit zonder de opdracht --off en dan de opdracht DP1-2. - Brian C.
Eindelijk gewerkt met panning! Ik heb echter nog steeds een glitchy-muis en -scherm (sinds ik xrandr ben gaan gebruiken). Enig idee? - hsandt


Waarom is het wazig?

Uw scherm geeft altijd 3200x1800 pixels weer. Als u de schermresolutie op uw computer verlaagt, betekent dit dat uw scherm de afbeelding moet aanpassen aan uw scherm. Afhankelijk van de verhouding tussen uw eigen resolutie en de huidige resolutie, zal die schaal een wazig beeld produceren.

Hier vindt u meer informatie over schaling en native resolutie: https://en.wikipedia.org/wiki/Native_resolution

Hoe kan ik de tekst groter maken?

Als de tekst te klein is, hebt u twee opties:

1. Verander de lettergrootte van Ubuntu

Hoe verander ik lettertypen en pas ik hun grootte aan?

2. DPI wijzigen (maakt de hele interface groter, niet alleen tekst)

Hoe het DPI-scherm te vinden en te wijzigen? (antwoord door @whtyger)


6
2017-12-23 16:23



Net als een opmerking over het vergroten van lettergroottes. Verhoog eerder de DPI zodat de hele gebruikersinterface wordt geschaald. Dit moet automatisch goed worden herkend (door de EDID op uw scherm te lezen), maar als dat mislukt: Hoe het DPI-scherm te vinden en te wijzigen? - gertvdijk
Dat is eigenlijk geen antwoord op mijn vraag. ik gebruik twee verschillende schermen met verschillende resoluties. Ik heb de berekening gemaakt: mijn linker LCD-hoofdscherm zou een resolutie van 94x94 DPI moeten hebben, terwijl mijn rechter laptopscherm 235x235 DPI zou moeten hebben ... En ik kan geen enkele manier vinden om twee verschillende DPI-resolutie in te stellen, behalve door nvidia te configureren voor het uitvoeren van 2 gescheiden X, en dan kan ik niet één venster van links naar rechts passeren ... Windows is veel beter om dat probleem aan te pakken :( - Anthony O.
-1 voor het volledig negeren van het punt van de vraag - Martin Konecny
@AnthonyO. Wijzig uw vraag alstublieft niet aanzienlijk nadat u een antwoord heeft geplaatst dat u niet bevalt. Op het moment dat dit antwoord werd geplaatst, hebt u niets vermeld over een setup op twee schermen (zien herziening 1). Als je je vraag wijzigt, vervalt alles wat al is gepost en dat zou je niet moeten doen. Herstel in plaats daarvan de vraagbewerkingen en plaats in plaats daarvan een nieuwe vraag. - gertvdijk
@MartinKonecny ​​De oorspronkelijke vraagsteller heeft zijn vraag grotendeels bewerkt, dit antwoord beantwoordt zijn oorspronkelijke vraag, controleer de herzieningen. - Jamie Kitson


Deze antwoorden zijn allemaal geweldig, en hielpen me eerder, maar een recente

sudo apt-get upgrade 

mijn randr-config verwijderd! Bij het proberen om mijn instellingen te herstellen, merkte ik dat ik de muis niet langer voorbij het bovenste 1 / 4e kwadrant van het tweede scherm kon krijgen, ongeacht de --fb invoer. Van https://wiki.archlinux.org/index.php/HiDPI#Side_display Uiteindelijk ontdekte ik dat het toevoegen van panning de truc was. Ook is het gebruik van '- right-of' of '-left-of' eenvoudiger dan '--pos'.

"Als uw HiDPI-monitor (laptop) AxB-pixels is en uw normale monitor (extern) CxD is en u schaalt door [ExF], is de opdrachtregel voor right-of:"

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



Dit is interessant, en het lijkt zeker alsof het nuttig zou kunnen zijn voor iemand, hoewel ik niet zeker weet of dit juist een antwoord op deze vraag is. Misschien moet je je vraag openen en dan beantwoorden? Niet helemaal zeker. - Emily
@Emily: Ik denk dat dit antwoord hier thuishoort. Ik heb het antwoord van artem vandaag gebruikt en had het exacte probleem ONECORE vermeld (alleen het kwadrant links boven op het scherm was bruikbaar met de muis). Gelukkig zag ik dit antwoord en panning werkte meteen. - BrainCore
Ja, sorry, ik wilde dat het een antwoord was op het antwoord van @ artem, maar Stackexchange is super geweldig en laat me daar niet antwoorden tot ik 50 browniepunten krijg. - ONECore
Merk ook op dat dit niet persistent lijkt te zijn, dus tenzij je het toevoegt aan xorg.conf, verdwijnt het bij elke herstart. Maar als je het daar toevoegt, forceert het die instelling, wat er ook gebeurt (soms plug ik de monitor niet in). Dus ik vind het super eenvoudig om gewoon een shell te maken en uit te voeren wanneer ik wil. Voeg eenvoudig de bovenstaande code toe aan een tekstbestand dat eindigt op .sh (zoals resolution.sh) en maak het vervolgens uitvoerbaar met "chmod 0700 resolution.sh" in de terminal. - ONECore
Hartelijk bedankt voor het delen van je ervaringen @BrainCore! - Emily


Ik heb dit (met problemen) kunnen oplossen met behulp van de details die in de volgende github-discussie zijn beschreven: https://github.com/linuxmint/Cinnamon/issues/3606

Externe monitor QHD (2560X1440), interne / laptop-monitor 3200x1800

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

OF

Externe monitor FHD (1920x1080), interne / laptop-monitor 3200x1800

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

Deze werken, maar er is een aanzienlijke hoeveelheid scheur in de hoge resolutie monitor (laptop) wanneer ik vensters verplaats, de grootte van schermen wijzig of in een browser scroll. Dit voelt als een software-oplossing (die al deze problemen van scheuren en langzaam vernieuwen heeft).

Het 2017, Linux / Gnome moet zich richten op de multi-monitor, mixed scaling oplossing. Zowel Windows 10 als OS X hebben dit opgelost zonder toevlucht te hoeven nemen tot patchfixaties voor commandoreparaties die gedeeltelijk werken (het scheurprobleem is niet acceptabel voor gamen)


2
2017-07-20 18:54



Is dit een nieuw antwoord of probeer je een bug te melden? - user68186
Het is een uitwerking van een bestaand antwoord, met meer opties die men kan gebruiken. Het antwoord van @artem hierboven legt uit hoe deze instellingen werken. Ik heb gewoon geprobeerd om 2 opties te bieden die kunnen worden gebruikt zoals het is voor mensen met een QHD- of FHD-externe monitor en een 4K primaire monitor / laptopmonitor. De bug zit in de tranen die je met deze oplossing ziet. Dat is inherent aan deze aanpak. - Jeets
Met de toename van 4k en multi-resolutie setups, ben ik het eens met de laatste paragraaf waarvoor een oplossing nodig is. Was niet al te slecht eerder, maar nu is het simpelweg mijn setup op één monitor kapot, nu ik een 4k heb. Hopelijk krijgen Ubuntu 18 LTS deze gerepareerd. - neuronet
Het is 2018 ... nog steeds dezelfde sh1t :) - Stefanos Kalantzis
Wayland werkt hier prima voor. Maar dat is alleen hiervoor ... Ik heb een goede ervaring met wayland + kde, beter dan gnome + wayland. Ik ben terug bij X vanwege een gebrek aan ondersteuning voor sommige software die alleen op X draait en stabiliteitsproblemen. 2018 ... - Victor


Ik heb een verouderde 1024x768-monitor, aangesloten op een (minder verouderde) notebook.
De vensters zijn in heel verschillende grootten weergegeven, veel groter in de externe monitor (die een oudere, grotere puntafstand heeft).
Ik vond een opdracht om de monitor te schalen:
xrandr --output VGA-1 --scale 1.5x1.5
VGA-1 is de interne naam van de monitor, gevonden door het volgende commando uit te voeren:
$ xrandr --current | grep connected
Het effect is dat de oude monitor nu bijna dezelfde inhoud als de notebook weergeeft.

Vreemd genoeg werkt het schaal x1.5 maar niet 1,45, het scherm (in mijn geval) wordt zwart.

Toen ik de schaalcommentaar uitvoerde, was het resultaat de eerste keer beangstigend omdat de inhoud van beide schermen elkaar overlapt. Voor xample verscheen de cursoraanwijzer tweemaal.
Ik heb een programma uitgevoerd:
arandr &
om de relatieve schermposities in te stellen om dit te verhelpen.
Het werkt als de instelling Settigs> Apparaten> Beeldschermen.
Ik heb het geïnstalleerd met:
sudo apt-get install arandr 

Bedankt @ Luis Alvarado en anderen voor het delen van uw kennis!


0
2017-09-13 00:04