快轉到主要內容

Linux X11桌面的螢幕縮放比例 & 個別程式縮放(scale)的方法

· 民國114年乙巳年
· ·
分類   Linux系統 Linux使用技巧
標籤   Linux GNOME KDE Plasma X Window
目錄

桌上型電腦和筆電使用Linux,都會遇到螢幕小需要放大字,或是螢幕大需要放大應用程式的情況。

螢幕解析度超過1080p的HiDPI螢幕,Linux可能就會有縮放(scaling)問題。

這邊Ivon會列出一些解決方式,並討論如何給個別APP縮放大小。適用Ubuntu、Fedora、Arch Linux等發行版。

這裡使用的通訊協定為X11,如果你使用Wayland請看這篇

1. 全域螢幕縮放
#

GNOME
#

GNOME 47的非整數倍縮放(Fractional Scaling)屬於實驗狀態,因為它會先放大再縮小到正確的比例,造成效能下降。

Ubuntu的GNOME有特別打過patch,所以支援非整數縮放。Arch Linux則是要安裝mutter-x11-scaling才能支援非整數倍縮放。

  1. 執行以下指令開啟非整數縮放
gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']"
  1. 開啟GNOME系統設定 → 顯示器,就有縮放選項。

另一個方式是只調整字型大小,不放大UI。

就到系統設定→無障礙輔助,開啟「大型文字」。

此功能對小尺寸的螢幕很有效,應用程式的字型都會放大。

如果想要使用特定字型的縮放比例,需要額外安裝gnome-tweaks套件,在應用程式列表找到「調校」,調整字型縮放。

KDE Plasma
#

KDE Plasma 5.27以上版本支援非整數倍縮放。

在KDE的系統設定→顯示與螢幕設定全域縮放比例。

調整比例需重新開機才會生效。

系統設定 → 外觀,強制指定字型DPI,可以只放大程式字型,不放大UI。

xrandr指令
#

除了用圖形界面調縮放比例外,用xrandr指令直接改縮放比例也是可以的。xrandr指令能夠調整更細緻的設定,舉凡設定螢幕方向、解析度、縮放比例。

如果連接多個顯示器,xrandr的指令會很有用,讓二個螢幕有不同的縮放大小。

只要是使用X11協定的桌面環境,就能使用xrandr調整,所以GNOME、KDE Plasma、XFCE、LXQT、Cinnamon等桌面都可以使用此工具。

  1. 取得目前螢幕的代號,常見的是HDMIeDPDP
xrandr -q
  1. 縮放比例為目前螢幕長寬的縮放比例乘算,假如目前螢幕長寬是100%縮放,1.25就是長寬縮放為125%。
xrandr --output HDMI-0 --scale 1.25x1.25
  1. 多個顯示器能個別指定縮放比例
xrandr --output eDP1 --scale 0.5x0.5 --output DP2 --right-of eDP1 --output HDMI1

2. 個別應用程式縮放
#

不縮放整個螢幕,而是讓個別應用程式以特定縮放比例開啟。我們可以透過指定環境變數,使應用程式按照程式框架的縮放比例來變換大小。

例如開啟終端機,輸入GDK_SCALE=2 firefox會以二倍縮放啟動Firefox;然而此環境變數不支援非整數縮放,如果要以非整數縮放啟動Firefox,請改用GDK_DPI_SCALE=1.1 firefox

鬼才知道要執行的程式是用什麼框架寫的…?Linux的程式大部分都是開源的,去看一下該程式的原始碼就大概知道該程式是用什麼框架寫的。KDE的應用程式通常都是QT,GNOME則是GTK,近年來跨平台的應用程式常用Electron。

建議將環境變數統一加入~/.bashrc,這樣登入就會自動對所有應用程式生效。如何設定環境變數:

# 編輯檔案
vim ~/.bashrc

# 填入環境變數
export name=value

# 編輯完成後重開機

下面說明個別的環境變數用法。

GTK環境變數
#

使用GDK_SCALE=2GDK_DPI_SCALE=0.5來縮放應用程式。注意GDK_SCALE只接受整數縮放。

GDK_SCALE也會一併縮放Java 9以上撰寫的程式,以及Mono(.Net)程式。

QT環境變數
#

QT5.6以後的程式可以用QT_AUTO_SCREEN_SCALE_FACTOR=1讓應用程式跟隨系統縮放。

或者是用QT_SCALE_FACTOR=2變數,強制指定應用程式的縮放比例。

Electron與Chromium瀏覽器
#

執行Electron程式時加上--force-device-scale-factor=2引數,用於縮放程式。

例子:修改Google Chrome的啟動指令,用vim編輯/usr/share/applications/google-chrome.desktop,找到Exec=這行,在啟動Google Chrome的後面加上引數。

Wine/Proton
#

執行winecfg指令,在圖形的頁面調整DPI。

至於Steam客戶端,請用環境變數STEAM_FORCE_DESKTOPUI_SCALING=1.5設定縮放比例。

參考資料
#

相關文章

Linux系統如何讀取Windows的NTFS硬碟&開機自動掛載
分類   Linux系統 Linux使用技巧
標籤   Windows Linux GNOME KDE Plasma
如何修改Linux開啟檔案的預設程式 (XDG MIME Applications)
分類   Linux系統 Linux使用技巧
標籤   Freedesktop Specifications GNOME KDE Plasma
Linux觸控螢幕使用虛擬鍵盤打字 (X11 / Wayland)
分類   Linux系統 Linux好用軟體
標籤   Linux GNOME KDE Plasma

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。