在筆記型電腦和顯示器之間使用超高清解析度的縮放問題

在筆記型電腦和顯示器之間使用超高清解析度的縮放問題

我有一台使用 Arch Linux 和 Gnome Shell 的筆記型電腦。我的顯示卡是Intel HD 520。在工作中,我將筆記型電腦連接到解析度為 1920×1080 的顯示器。使用 HDMI 電纜完成連接。系統正確偵測兩個螢幕及其解析度。問題如下:

在超高清解析度下,Gnome(Gnome 是這樣做的還是顯示卡驅動程式?)會縮放視窗以使其更大。這是完全合理的,否則 Firefox 的欄將是一條細線。但問題是,當我將視窗(例如 Firefox)從一台顯示器移到另一台顯示器時,這種縮放比例會被保留。結果事情看起來巨大的在我的 1920×1080 顯示器中,即使解析度被正確偵測到。

  1. 這是一個錯誤嗎?如果是的話,這是誰的錯呢? Gnome、Intel HD 顯示卡還是 Linux 核心?
  2. 我可以糾正嗎?

答案1

  1. TLDR:這不是一個錯誤,只是一個不太理想的解決方案,無法舒適地使用 HiDPI 螢幕。

這些解決方案似乎源於這樣一個事實:大多數軟體不會自動補償更高 DPI 的顯示器。如果我們保持原樣(沒有縮放或 DPI 設定),許多程式最終在 HiDPI 螢幕上看起來很小。因此,可以在作業系統層級進行補償(請參閱有關 Arch Linux 的 HiDPI 的信息),但是當您有兩個像素密度不同的螢幕時,這會導致問題。

  1. 給定內部 HiDPI 螢幕 @ 3200x1800 和外部 @ 1920x1080,以下配置應該有效(使用 Dell XPS9350 和 XPS9360 進行測試)。

右側配置外部:

xrandr --dpi 276 --fb 7040x3960 --output eDP-1 --mode 3200x1800 --output 
DP-1 --scale 2x2 --pos 3200x0 --panning 3840x2160+3200+0

配置左側外部:

xrandr --dpi 276 --fb 7040x3960 --output DP-1 --scale 2x2 --panning
-3840x2160+3200+0 --pos 0x0 --output eDP-1 --mode 3200x1800 --pos 3840x0

如果人們發現自己經常切換,那麼將這些命令放入 .bashrc 中可能是個好主意。例如:

alias ext-config-right="xrandr --dpi 276 --fb 7040x3960 --output eDP-1 --mode 
3200x1800 --output DP-1 --scale 2x2 --pos 3200x0 --panning 3840x2160+3200+0"

答案2

似乎超高清螢幕有一個單一的設置,適用於所有連接的顯示器,儘管這可能不合適,並且可能是 X 的設置。

Arch Linux 維基有一個關於此的部分,其中有一些使用 xrandr 來縮放顯示器的選項,其中 eDP1 是筆記型電腦螢幕:

xrandr --output eDP1 --auto --output HDMI1 --auto --scale 2x2 --right-of eDP1

顯然,仍然存在一些問題,要么這兩個螢幕重疊,要么遊標可能無法覆蓋所有兩個螢幕。

如果內部顯示器的尺寸為 AxB,外部顯示器的尺寸為 CxD,縮放比例為 ExF(如 Arch wiki 上的建議),則 shell 腳本會連結到名為文根Github,這需要為顯示提供適當的顯示。它給:

xrandr --output eDP1 --auto --pos ${(A-C)/2}x${D} --scale 1x1 \
--output HDMI1 --auto --scale 2x2 --pos 0x0

對於第二個問題,arch建議使用平移:

xrandr --output eDP1 --auto \
--output HDMI1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP1

最後,如果有任何幫助的話,ubuntu wiki 建議 xrandr 命令可以保存在 中/etc/gdm/Init/Default,就在該行之前initctl -q emit login-session-start DISPLAY_MANAGER=gdm。 (抱歉,第三個連結的代表太低了..)

相關內容