Xorg 中的每個應用程式視窗縮放以實現高 dpi 顯示

Xorg 中的每個應用程式視窗縮放以實現高 dpi 顯示

我正在使用 4k 顯示器運行 Gnome Shell,並且我使用的一些應用程式根本無法以高解析度進行縮放。

以下是 LMMS 的範例,該應用程式尚未移植到 Qt 5,因此它不具備高 dpi 縮放功能:

螢幕截圖
(點擊圖片放大)

有沒有辦法在不改變顯示解析度的情況下縮放特定的 X 視窗?

我目前的解決方案是將顯示解析度的尺寸減半,但這會降低支援適當 dpi 縮放的所有其他應用程式的解析度:

螢幕截圖

答案1

我終於找到了一種解決方案,可以擴展舊應用程序,而不會出現任何明顯的視覺或性能下降。

感謝 kaueraal,您現在可以使用run_scaled.您可以從他的任一處取得腳本GitHub 頁面xpra或者如果您運行的是 Arch Linux,則作為軟體包的一部分。

以下是兩個並行運行的應用程式的範例:

  • 左側支援 HiDPI 的 Firefox
  • run_scaledLMMS 在右側運行

在此輸入影像描述

我透過以下方式發現了這個腳本Arch Linux 維基

答案2

如果沒有看到您遇到的確切問題,我建議使用

GDK_SCALE=x

或者

GDK_DPI_SCALE=x

在開始每個應用程式之前。您可能需要手動更改.desktop檔案或從 shell 中運行,並在命令前面添加前綴GDK_SCALE=x

GDK_SCALE只允許整數值,但 GDK_DPI_SCALE=x允許小數值,例如 ieGDK_DPI_SCALE=0.66

對於其他基於 SDK 的應用程序,各個套件可能有類似的設定。不過,由於您的問題與 gnome 桌面有關,我將提供此解決方案。

我還沒有嘗試過使用 4k 顯示器,但運行GDK_DPI_SCALE=1.66 gnome-calculator將演示該解決方案。

來源:https://developer.gnome.org/gtk3/stable/gtk-x11.html

答案3

虛擬桌面為您提供基於本機 VNC 用戶端-伺服器的解決方案(請參閱這裡

這對我來說不是一個完整的解決方案,因為如果應用程式需要視窗管理器,它會帶來一些問題。

答案4

我想我已經找到了 GPU 加速的解決方案!安裝weston並運行它:

weston --xwayland --scale=2
DISPLAY=:1 your_app

就是這樣!

調音

註 1:您可能已經注意到使用了一個神奇的數字,DISPLAY=:1。這裡的基本假設是您的主要 xorg 顯示是:0.如果不是,請進行相應調整。

註2:您可能已經注意到weston預設情況下有一個頂部面板。您可能想要將其刪除。為此,請建立一個weston.ini文件:

[core]
idle-time=0

[shell]
panel-position=none
locking=false

並在啟動 weston 時使用它weston --config=/path/to/weston.ini。您也可以將其放置到~/.config/weston.iniWeston 自動拾取的位置,請參閱以man weston.ini了解更多詳情。

編輯:我還在這裡記錄了新發現的方法:https://wiki.archlinux.org/title/HiDPI#Unsupported_applications,_via_weston

相關內容