İki farklı ekran için farklı DPI yapılandırmaları mümkün mü?


123

Quadro K2100M grafik kartım için NVidia sürücülü (319) Ubuntu 12.04.3 kullanıyorum ve ana 3200x1800 dizüstü bilgisayar ekranımı 1920x1080 (kullanma nvidia-settings) moduna geçirdiğimde ekran bulanıklaşıyor ...

İki ekran kullanıyorum:

  • Ana ekranım maksimum 1920x1200 çözünürlüğe sahip bir LCD.
  • Dizüstü bilgisayarımın ekranı (orijinal çözünürlük 3200x1800) bunun sağında oturuyor.

Asıl sorun, Ubuntu'da yazı tipinin dizüstü bilgisayar ekranımda çok küçük olması. Bu nedenle, dizüstü bilgisayarımın çözünürlüğünü 1920x1080 olarak değiştirmek istedim.

Galgalesh'in cevabını okuyarak DPI'ımı hesaplamaya çalıştım ve işte olması gereken DPI yapılandırması:

  • Ana LCD ekranım için 94x94 1920x1200
  • Benim 3200x1800 dizüstü bilgisayar ekranı için 235x236

Genişletilmiş bir masaüstü ile çift DPI çözünürlük almanın bir yolu var mı?


3
Yerel olmayan bir özünürlükte herhangi bir LCD ekranı sürmek bulanık gözükecektir. Bunun nedeni, piksellerin sabit bir şekilde yerleştirilmesi ve sinyalin buna uymamasıdır. Tam olarak ne olmasını bekliyorsun? Belki ölçeklendirmeyi devre dışı bırakmak? Ama sonra sadece ekranın ortasında gösterilir ve tam ekran gösterilmez. En iyi görüntü için daima ana ekran çözünürlüğünde göstergesini koru. Bunun Ubuntu ile ilgisi olduğunu sanmıyorum.
gertvdijk

2
@gertvdijk: Peki, her iki monitörü de ana ekran çözünürlüğünde tutmanın bir yolu var mı? Bence Anthony'nin sorduğu şey bu.
beldaz

2
@beldaz Cevabım , sorunun 1'ine revize edildi . O zaman çift ekran kurulumuyla ilgili hiçbir şeyden söz etmedi. Soru önemli ölçüde değiştiğinden, bu tarihten sonra değiştirilen gönderiler için kaşları kaldırır. Temel olarak, katkıda bulunan herhangi bir şeyi geçersiz kılar ve gerçekten yardım etme motivasyonumu düşürür. Kullanıcılar bence yeni bir soru sormalılar.
gertvdijk

@gertvdijk Üzgünüz, şimdi mantıklı.
beldaz

Merak ediyorum, Wayland'ı en yeni Ubuntu'da kullanma imkanı bunu çözmeyi kolaylaştırıyor mu?
mkataja

Yanıtlar:


120

Görünüşe göre insanlar hala birkaç monitör ve HiDPI ekranıyla çalışmak için mücadele ediyor. İyi bir geçici çözüm, kemer wiki https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays . Yani, ben var:

  • dizüstü bilgisayar asus ln303ux: 3200x1800,
  • harici monitör: 1920x1200

Şimdi oldukça kullanışlı HiDPI desteği olan Ubuntu 14.10 ve GNOME Shell 3.12.2 kullanıyorum. Bu yüzden sadece HiDPI'nin kullanıma hazır desteğini kullanıyorum - ölçeklendirme faktörü 2'dir (GUI aracılığıyla ayarlanabilir). Bu, harici monitörde her şeyi kabul edilebilirden iki kat daha büyük elde ettiğim anlamına gelir. Böylece, xrandr kullanıyorum; ancak dizüstü bilgisayar ekranını küçültmek yerine harici monitör ekranını yükseltirim:

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

Yani, birer birer:

  1. --output HDMI1benim durumumda harici ekran, eDP1dizüstü bilgisayar ekranı.
  2. --scale 2x2 - Harici ekrandaki her şeyi iki kat daha küçük yapın
  3. --mode XxY - açıkça ekran çözünürlüğünü ayarlayın (önceden ayarlanmışsa gerekli değildir)
  4. --fb XxY- sanal ekranın boyutunu ayarlamak (çerçevelemek) ( bu olmadan önemli , ekranın sadece dördüncü bölümünü kullanabileceksiniz). Benim durumumda bir ekran bir başkasının üzerinde idi, ben de 2400 + 1800 = 4200 etkili yükseklikler ekledim. Ayrıca, maksimum kare yansıtıcı boyutunun xorg.conf dosyasında belirtilebileceğini unutmayın - sonra onu aşamaz (ilk xrandr -qçıktı satırına yazılır ).
  5. --pos XxY- benim durumumda ekranların mutlak konumunu belirledim, bu yüzden dizüstü bilgisayar ekranım doğrudan dış ekranın altında. Buradaki Y değeri, harici monitör yüksekliğinin iki katıdır.

Ve işte bu! Her şey olabileceği kadar net.

Bilginize: ekranların isimlerini ve mevcut çözünürlükleri almak için, biri çalıştırabilir xrandr --current. Çözünürlük ayarı hakkında daha fazla bilgi burada bulunabilir: https://wiki.ubuntu.com/X/Config/Resolution .

GÜNCELLEME - SEÇENEK 2: GTK3'ü destekleyen uygulamalar için bir başka ilginç çözüm. Normalde büyük ekranda yalnızca bir uygulama kullanırsam (örneğin, bazı IDE, leksah gibi), ekranı yeniden boyutlandırmam, ancak orijinal boyutuna ölçeklendirilmiş uygulamayı çalıştırmam

env GDK_SCALE=0.5 GDK_DPI_SCALE=0.5 CLUTTER_SCALE=0.5 appname

7
bir error of failed request: BadValue (integer parameter out of range for operation):-(
Juh_

4
Bu --fbseçenek, 2x2ekranın dörtte birinden fazlasını etkinleştirmiyor gibi görünüyor (fare imleci sol üst kadrandan
geçemiyor

2
Ölçeklendirme işe yarıyor, ancak HiDPI'yi kaybetmiyor musunuz? Her şey ölçeklenmiş ve bulanık görünüyor.
Andy

8
: My 3200x1800 HiDPI laptop solunda oturan bir 1920x1080 harici monitör ile yan kurulumu ile bir tarafı içinxrandr --output eDP1 --scale 1x1 --pos 3840x0 ; xrandr --output HDMI1 --scale 2x2 --mode 1920x1080 --fb 7680x2160 --pos 0x0
Daniel Bower

2
--Fb parametresi 2 * harici monitör + dizüstü bilgisayar ekranıdır
Brian C.

10

Neden bulanık?

Ekranınız her zaman 3200x1800 piksel görüntüler. Bilgisayarınızdaki ekran çözünürlüğünü düşürürseniz, ekranınızın görüntüyü ekranınıza uyacak şekilde ölçeklendirmesi gerekir. Yerel çözünürlüğünüz ile mevcut çözünürlük arasındaki orana bağlı olarak, bu ölçeklendirme bulanık bir görüntü oluşturur.

Burada ölçeklendirme ve yerel çözünürlük hakkında daha fazla bilgi bulabilirsiniz: https://en.wikipedia.org/wiki/Native_resolution

Metni nasıl daha büyük hale getirebilirim?

Metin çok küçükse, iki seçeneğiniz vardır:

1. Ubuntu'nun yazı tipi boyutunu değiştirin

Yazı tiplerini nasıl değiştiririm ve boyutlarını nasıl değiştiririm?

2. DPI'yi değiştir (tüm arayüzü yalnızca metin değil, daha büyük yapar)

Ekran DPI'sını nasıl bulabilir ve değiştirebilirim? (cevap @whtyger)


1
Artan font boyutlarını not etmek gibi. Aksine, tüm kullanıcı arayüzünün ölçeklenmesi için DPI'yı artırın. Bu, otomatik olarak doğru bir şekilde tanınmalıdır (EDID'yi ekranınızdan okumak), ancak başarısız olursa: Ekran DPI'sını nasıl bulabilir ve değiştirebilirim?
gertvdijk

23
Aslında bu sorumun cevabı değil. Farklı çözünürlüklerde iki farklı ekran kullanıyorum . Hesaplamayı yaptım: sol ana LCD ekranım 94x94 DPI çözünürlüğe sahip olmalıydı, oysa sağ dizüstü bilgisayar ekranım 235x235 DPI olmalıdır ... Ve nvidia'yı 2 çalışacak şekilde yapılandırarak, iki farklı DPI çözünürlüğü ayarlamak için hiçbir yol bulamıyorum ayrılmış X, ve sonra bir pencereyi soldan sağa geçemiyorum ... Windows bu sorunu ele alması çok daha iyi :(
Anthony O.


8
@AnthonyO. Sevmediğiniz bir cevap gönderildikten sonra lütfen sorunuzu önemli ölçüde değiştirmeyin. Bu cevabın gönderildiği tarihte, çift ekranlı kurulumla ilgili hiçbir şeyden bahsetmediniz (bakınız revizyon 1 ). Sorunuzu değiştirmek, daha önce gönderilen hiçbir şeyi geçersiz kılar ve bunu yapmamalısınız. Bunun yerine, soru düzenlemelerini geri alın ve bunun yerine yeni bir soru gönderin.
gertvdijk

5
@MartinKonecny ​​Orijinal soru sorusunu büyük ölçüde düzenledi, bu cevap orijinal soruyu yanıtlıyor, revizyonları kontrol ediyor.
Jamie Kitson

7

Artmem'in çözümünü kullandım ama EoghanM tarafından belirtilen fare problemine rastladım. Eski hata raporunda bulduğum geçici çözüm, --panning ile ilgili.

Şunun için çekiyorum: - Yerel DIP'de DP1-2 3840x2160. - eDP1 1366x768, DP1-2'nin sağına makul görünecek şekilde ölçeklendirildi.

Bunun DP1-2 + (2x eDP1) gibi bir çerçeve arabelleği olmasını sağladıktan sonra eDP1'e giden her şeyi 1 / 2'ye ölçeklendiriyorum.

Bu basit olmalı ama xrandr biraz zor.

Burada - ölçek, eDP1'e giden her şeyi 1/2 oranında azaltmak için kullanılır. -panning, DP1-2'nin hemen sağında (+ 3840 + 0) pozisyonuna sahip orijinal çerçeve tamponundaki eDP1 ile aynıdır. + 0 + 2160 altında olacaktır.

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

Ayrıca Xft.dpi'yi 185'e ayarladım.

$ cat ~/.Xresources
Xft.dpi: 185

Harici monitörden çıkardığımda çalıştırıyorum:

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

Harika görünmüyor ama masamdan pek uzak değilim. Xft.dpi dosyasını değiştirip tüm masaüstü programlarınızı yeniden başlatarak bu sorunu çözebilirsiniz. Xft.dpi dosyasını değiştirmenin ve istemcilerin onları yeniden başlatmadan kullanmalarını sağlamanın bir yolunu bilmiyorum.


Kaydırma bulmacanın son parçasıydı - ekran sayısının çeyreğinde sıkışmış imleci çözdü. @Brian teşekkürler!
rtindru

2
"iki kez çalıştırıyor" ???? Kutsal piksel, işe yarıyor (Zaten kaydırma uyguluyordum, fakat sadece aynı komutu iki kez çalıştırdıysam doğru olarak uygulanır).
Riccardo Galli

Ya, koştuğum her zaman çalıştığını fark ettim, bu yüzden iki kez deneyeyim dedim ve işte buradayız.
Brian C.

Tamam, öyleyse bu çekirdek 4.5.2 ile çalışmıyor. 4.5.1'de liman işçisi ile ilgili bir problemi çözmek için bu çekirdeği kurdum ve şimdi yukarıdaki senaryo beni siyah bir ekrana bırakıyor. 4.5.2'de bunu düzeltmek için eDP1 komutlarını önce --off ve sonra DP1-2 komutları olmadan yapıyorum.
Brian C.

1
Sonunda kaydırma ile çalıştı! Yine de bir fare ve ekranım var (xrandr kullanmaya başladığımdan beri). Herhangi bir fikir?
hsandt

4

Bunu (problemlerle birlikte) aşağıdaki github tartışmasında belirtilen detayları kullanarak çözebildim: https://github.com/linuxmint/Cinnamon/issues/3606

Harici Monitör QHD (2560X1440), Dahili / Dizüstü Bilgisayarı Monitörü 3200x1800

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

VEYA

Harici Monitör FHD (1920x1080), Dahili / Dizüstü Bilgisayarı Monitörü 3200x1800

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

Bunlar işe yarar, ancak pencereleri oynattığımda, ekranları yeniden boyutlandırdığımda veya bir tarayıcıda kaydırdığımda yüksek çözünürlüklü monitörde (dizüstü bilgisayar) yırtılma konusunda önemli miktarda var. Bu, bir yazılım ödünç verme çözümü gibi hissediyor (tüm bu yırtılma sorunları var ve yavaş canlanıyor).

2017, Linux / Gnome'un çoklu monitör, karma ölçeklendirme çözümünü ele alması gerekiyor. Hem Windows 10 hem de OS X, kısmen çalışan komut satırı desteklerine komut vermek zorunda kalmadan bu sorunu çözmüştür (yırtılma sorunu oyun oynamak için kabul edilemez)


1
Bu yeni bir cevap mı yoksa bir hata mı rapor etmeye çalışıyorsunuz?
user68186,

Bu, mevcut bir cevabın detaylandırılması ve birinden daha fazla seçeneğin yararlanabileceği bir seçenek. @ Artem tarafından verilen cevap, bu ayarların nasıl çalıştığını açıklar. Sadece bir QHD veya FHD harici monitöre ve 4K birincil monitör / dizüstü bilgisayar monitörüne sahip olan kişiler için kullanılabilecek 2 seçenek sunmaya çalıştım. Hata, bu çözümle gördüğünüz yırtılmada. Bu, bu yaklaşımın doğasında var.
Jeets,

2
4k ve çoklu çözünürlüklü kurulumların çoğalmasıyla birlikte, bu kararın alınması gereken son paragrafa katılıyorum. Daha önce hiç de fena değildi, ama şimdi sadece 4k olan bir monitörde kurulumumu mahvediyordum. Umarım Ubuntu 18 LTS bunu çözeceklerdir.
nöronet

3
2018 ... hala aynı sh1t :)
Stefanos Kalantzis

Wayland bunun için harika çalışıyor. Bunun dışında sadece bunun için ... Wayn + kde ile de gnome + wayland'dan daha iyi bir deneyime sahibim. Yalnızca X ile çalışan bazı yazılımlar için destek eksikliği ve kararlılık sorunları nedeniyle X’e geri döndüm. 2018 ...
Victor,

4

Bu cevapların hepsi harika ve daha önce bana yardımcı oldu, ancak son zamanlarda

sudo apt-get upgrade 

randr-config'imi sildim! Ayarlarımı geri yüklemeye çalıştığımda, fareyi, --fb girişi ne olursa olsun, ikinci ekranın ilk 1/4 üncü çeyreğinin ötesine alamadım. Gönderen https://wiki.archlinux.org/index.php/HiDPI#Side_display Sonunda yatay kaydırmayı ekleyerek hile yaptığını keşfetti. Ayrıca, "- ofright" veya "--left-of" kullanımı "--pos" dan daha basittir.

"Genel olarak, HiDPI monitörünüz (dizüstü bilgisayar) AxB piksel ise ve normal monitörünüz (harici) CxD ise ve [ExF] tarafından ölçekleniyorsanız, sağdaki komut satırı:"

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

Bu ilginç ve kesinlikle birisinin yararlı olabileceği görülüyor, bunun tam olarak bu sorunun bir cevabı olduğundan emin değilim. Belki de açıp kendi sorunuzu cevaplamalısınız? Pek emin değilim.
Hee Jin,

1
@Emily: Bu cevabın buraya ait olduğunu düşünüyorum. Artem'in bugünkü cevabını kullandım ve ONECore'un belirttiği sorunu çözdüm (sadece ekranın sol üst çeyreği fare tarafından kullanılabiliyordu). Neyse ki, bu cevabı gördüm ve kaydırma anında çalıştı.
BrainCore

Evet, üzgünüm, @ artem'in cevabına bir cevap olmasını istedim, ancak Stackexchange süper harika ve 50 brownie puanı alana kadar cevap vermeme izin vermiyor.
ONECore

Ayrıca, bunun kalıcı görünmediğini unutmayın, bu yüzden xorg.conf dosyasına eklemediğiniz sürece, her yeniden başlatmada sona erer. Ama sonra oraya eklerseniz, ne olursa olsun bu ayarı zorlar (bazen monitörü takmıyorum). Bu yüzden sadece bir kabuk yaratmayı ve istediğim zaman çalıştırmayı çok kolay buluyorum. Basitçe yukarıdaki kodu .sh ile biten bir metin dosyasına ekleyin.
ONEC,

@BrainCore deneyiminizi de paylaştığınız için çok teşekkür ederiz!
Hee Jin,

1

(Daha az eski) bir dizüstü bilgisayara bağlı eski bir 1024x768 monitör var.
Pencereler harici monitörde (daha büyük, daha büyük nokta aralığına sahip) çok daha büyük olan oldukça farklı boyutlarda görüntüleniyor.
Monitörü ölçeklendirmek için bir komut buldum:

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

VGA-1, aşağıdaki komutu çalıştırarak monitörün dahili adıdır:

xrandr --current | grep connected

Bunun etkisi, eski monitörün içeriğini dizüstü bilgisayarla neredeyse aynı boyutta görüntülemesidir.

Yeterince merak, x1.5 ölçeklendirme çalışıyor ama 1.45 değil, ekran (benim durumumda) siyaha döner.

Ölçek yorumunu yaptığımda, sonuç her zaman ekranların içeriği birbiriyle çakıştığı için sonuç korkutucu oldu. Örneğin, imleç imleci iki kez göründü.

Bir program çalıştırdım:

arandr &

Düzeltmek için ilgili ekran konumlarını ayarlamak için Ayarlar> Cihazlar> Ekran ayarları
gibi çalışır .

Yükledim:

sudo apt-get install arandr

@LuisAlvarado ve bilgilerinizi paylaştığınız için teşekkür ederiz!


Bu geçici olarak benim için çalışıyor, ancak yeniden başlattığımda yapışmıyor. arandrBurada ne yaptığını yapmak için bir senaryo bulmam gerektiğini düşünüyorum , sonra da her şeyi bashrc ya da başka bir şey içine koydum. Teşekkürler!
Max von Hippel

arandr bir config dosyasını dışa aktarabilir. Dosyayı masaüstüme koydum ve her açılışta arandr'a besledim. Bir senaryo geliştirmedim ve şimdi bir monitörüm var ve artık arandr kullanmıyorum.
Juan Lanus

0

$xrandrTüm çıktıları görüntülemek için ilk çalıştırma

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

Gördüğünüz gibi bu durumda ikinci monitöre bağlı. DP-3 Sonra ekranı yeniden satış yapabilirsiniz: $xrandr --output DP-3 --auto --scale 2x2

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.