gnome、kde 和 xfce 中的字型設置如何工作?
我的 Debian 8 系統(Jessie)主要是一個 xfce 系統,但我也使用 gnome 和 kde 程序。我沒有安裝任何桌面環境,但是我用一個
.xsession
文件啟動了我的 xsession。問題是,我無法正確設置字型(和其他 UI 方面)。工具
首先我不知道用什麼工具。有kde
systemsettings
,也有gnome-tweak-tool
。我確實有gnome-settings-daemon
跑步。在 gnome-tweak-tool 中所做的更改會立即體現在 Thunderbird 和 gnome-tweak 工具本身中,但krusader
僅k3b
在我重新啟動它們之後才會影響。但即便如此,字型也太大了,但至少有一個效果。Systemsettings 似乎對正在執行的應用程序沒有任何影響,當我重新啟動一個 kde 應用程序時,它的字型似乎被重置為一些預設設置,
Gnome-tweak-tool 只提供很少的設置,而 systemsettings 允許單獨設置菜單字型、工具欄字型等。所以我認為 gnome 必鬚根據我自己的一些設置以“最適合我”的方式生成細粒度設置。
Xfce 有自己的
xfce4-appearance-settings
工具,但它似乎不會影響應用程序的字型,並且只允許設置一種預設字型。哦,還有qtconfig
,它似乎有兩個版本,一個用於 qt4 和 qt5。我什至可能錯過了一些。目前,我看到的字型與任何這些工具的字型設置都不對應。
問題
- 無論如何,我真的很想了解這整個事情應該如何運作。各種設置工具和應用程序之間的互動以及它們儲存數據的位置對我來說是一個謎。
- 這些設置工具如何互動是否有既定標準?
- 此外,如果有人能告訴我一種處理所有這些魔法的方法,我將不勝感激。在過去,設置 xrdb 需要時間,但至少這是一個我能理解的過程並且它收斂了。
具體來說
- 當我更改主題時會發生什麼?
- 各種設置工具是否會覆蓋彼此的數據?
- (xfce/gnome) 設置守護程序有什麼作用?
- dconf 是做什麼的?
這個答案並不完全規範 - 請參閱最後的回答者說明。
在這個答案中,我打算根據基於 Debian 的發行版(Xubuntu 和 Debian Xfce)的實際經驗提供簡明的解釋。無論如何,我已經確認字型設置不會立即對 Debian 的 GTK+ 環境中的 Qt 應用程序生效。
關於工具
首先我不知道用什麼工具。
如果您是有經驗的使用者,請不要使用任何第三方配置工具。
為方便起見,使用者傾向於使用諸如 GNOME Tweak Tool 之類的工具。然而,為了獲得最佳兼容性,最好使用桌面環境或相應工具包提供的圖形配置工具。否則,請使用更高級的工具,例如 Dconf、Xfconf 或 GSettings。
哦,還有qtconfig,好像有兩個版本,一個是qt4,一個是qt5。我什至可能錯過了一些。
用於
qt4-qtconfig
Qt4,同樣qt5ct
用於 Qt5。要檢查特定應用程序使用的 Qt 版本,請使用 APT 跟踪包依賴關係。例如,我在 Xubuntu 中安裝了 VLC。由於 VLC 使用的是 Qt,我可以查詢 APT 記憶體並使用“qt”作為關鍵字來過濾任何 Qt 依賴項。
$ apt-cache depends vlc | grep 'qt' Depends: libqtcore4 Depends: libqtgui4
在這種情況下,結果暗示 VLC 正在使用 Qt4 工具包。
另一種方法是檢查是否安裝了任何 Qt 包。這可以通過執行 Dpkg 命令來完成。我選擇過濾包含這些關鍵字“libqt”和“gui”的包,因為上面較早的 APT 命令已經暗示了這一點。
$ dpkg-query -W | grep 'libqt' | grep 'gui' libqtgui4:i386 4:4.8.5+git192-g085f851+dfsg-2ubuntu4.1
在這種情況下,結果顯示安裝了 4.8.x 版的 Qt4。如果安裝了 Qt5 包,結果將包含
libqt5gui5
而不是libqtgui4
. Qt5 的命名不同,這就是我使用grep
兩次過濾結果的原因。目前,我看到的字型與任何這些工具的字型設置都不對應。
正如 L. Levrel 之前所暗示的,系統設置很混亂。不要介意 GNOME/KDE/Qt 應用程序,但
gnome-settings-daemon
在 Xfce 系統中執行?Xfce 有自己的設置守護程序xfsettingsd
,由xfce4-settings
Debian 中的這個軟體包提供。字型設置差異
在以下螢幕截圖中,我使用 Xubuntu 和 Debian Xfce 在 Xfce 桌面環境中執行 Xfce 外觀、Qt 4 設置和 VLC 媒體播放器。然後,我將預設字型從“Droid Sans (Regular)”更改為“Droid Sans (Bold)”,字型大小為 10。
對於 Xubuntu,字型設置立即應用於 GTK+ 和 Qt 應用程序。Xfce Appearance 中指定的字型足以影響系統範圍,無論使用何種工具包。
對於 Debian Xfce,字型設置僅適用於 GTK+ 應用程序。我不得不使用 Qt 4 Settings 將 Qt 中的預設字型從“Sans Serif (Normal)”更改為“Droid Sans Mono (Regular)”。在應用更改之前,我還必須從菜單欄中手動保存。
儘管 Xubuntu 和 Debian Xfce 都在執行
xfsettingsd
,但 Debian Xfce 出於某種原因並沒有自動遵守字型設置。可能的線索:Debian Xfce 可能缺少某些允許 Qt 應用程序自動讀取系統設置的軟體包。關於問題
這些設置工具如何互動是否有既定標準?
可能沒有。這就是為什麼使用者不應該使用第三方工具來配置系統設置。最終使用者不會知道這些工具如何相互互動,或者這些工具不太可能設計為在這種混合設置環境中工作。
各種設置工具是否會覆蓋彼此的數據?
這取決於配置工具的工作方式。如果兩個不同的工具共享相同的底層配置方法,即 GSettings,那麼它們都將讀取相同的配置文件。
在第一個螢幕截圖中,請注意 Qt 4 設置仍然顯示“Droid Sans (Regular)”而不是“Droid Sans (Bold)”。Xubuntu 中的系統範圍設置已更改,但 Qt 4 設置不會立即反映更改,可能是由於使用了不同的工具包。退出並再次啟動時,Qt 4 設置現在將顯示最新的字型設置“Droid Sans (Bold)”。
對於其餘問題,我建議查看以下連結頁面以進一步閱讀。
- Xfce 文件上的 xfce:xfce4-settings:xfsettingsd。
- GNOME Wiki 上的項目/dconf !
- 第 34 章中的 DConf-0.24.0 / DConf-Editor-3.16.1。GNOME庫和實用程序,超越 Linux® From Scratch - 版本 7.8。
- 什麼是dconf,它的功能是什麼,我該如何使用它?在問 Ubuntu。
- dconf-editor 和 gsettings 不應該訪問同一個數據庫嗎?在問 Ubuntu。
- GNOME Wiki 上的HowDoI/GSettings!
- Debian Wiki 上的字型。
- Gentoo Wiki 上的字型配置。
- ArchWiki 上的字型配置。
免責聲明:這個答案主要基於我在 Xubuntu 14.04 和 Debian 8 Xfce(都執行 Xfce 4.10)中的經驗。儘管執行類似的桌面環境,但字型設置生效的體驗略有不同。已知限制如下。
- 就像我使用 Xfce 的經驗一樣,我會假設執行類似環境的其他系統不一定會自動遵守字型設置。
- 我沒有調查混合環境的所有可能配置;一些討論的要點可能並不完全適用於手動配置的系統。
- 我沒有測試 KDE 應用程序的字型設置;一些 KDE 應用程序(例如 Dolphin 文件管理器)同時依賴於 KDE 和 Qt 包,但 Qt 應用程序僅依賴於 Qt 包;這個答案可能與 KDE 應用程序無關。
TL;DR不要混合為不同環境創建的工具;不要使用第三方配置工具。使用桌面環境或相應工具包提供的圖形工具。
回答者的說明:我寫這個答案是足夠的,但當時並不完全規範。因此,這個答案現在是一個社區 wiki,因此任何聲譽最低的人都可以改進這篇文章以跟上每個工具包中的最新更改,甚至使用更簡潔的範例重新解釋字型設置差異(如果這樣做,請刪除相關“免責聲明”中的文本)。