創作內容

1 GP

用 dconf 修改 Gnome terminal 的字體

作者:Yotsuba│2021-08-28 11:14:26│巴幣:2│人氣:81
我的桌面環境是 Gnome,非 Gnome 使用者不適用

既上次 用 fontconfig 修改 Linux 應用程式字體,我已經學會怎麼安裝新字體了

不過 gnome-terminal 似乎不吃 fontconfig 的設定,而且能選擇的字體特別的少

少到我即使安裝了新字體到系統,gnome-terminal 能選的字體也不會增加




我就很好奇,gnome-terminal 的字體是怎麼調用的 ?

於是我先用 $ ps aux | grep gnome-terminal 找出 gnome-terminal 的 PID

接著用 $ strace -p $PID -e trace=openat 追蹤 gnome-terminal 開啟檔案的系統呼叫

我一邊期待改了設定就能追蹤到字體檔案被調用的系統呼叫,一邊小心翼翼的按下修改

於是我追蹤到了以下兩行重點 :

openat(AT_FDCWD, "/run/user/1000/dconf/user", O_RDWR|O_CREAT, 0600) = 17
openat(AT_FDCWD, "/home/yotsuba/.config/dconf/user", O_RDONLY) = 17

我完全看不懂這兩個檔案是幹麻的 ? 但是出現在我的家目錄肯定和字體檔案相關了

Google 一下發現原來 dconf 是 Gnome 桌面程式專用的設定檔

而 /home/yotsuba/.config/dconf/user 應該是我的 dconf 資料庫沒錯


大概看了一下 dconf 的 man page,操作上感覺挺簡單的

然後總覺得 $ dconf dump / 的輸出感覺有點像一個完整的檔案系統

這裡的 / 並不是我們 Linux 的根目錄,應該是 dconf 自己的根目錄

另外我發現一個很有用的指令,我可以用 $ dconf watch / 繼續觀察 dconf 的變化

這樣觀察起來比 strace 有效率多了


而當我下一次修改字體的時候,它出現了 :

/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/font

'Ubuntu Mono 13'

而且 dconf 是有提供 read 和 write 指令的,也就是說我可以把自己想要的字體寫回去

於是我使用 $ dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/font "'Monaco Bold 13'" 便成功了

Monaco Bold 就是我想要的字體,13 則是字體大小


這裡有一個重點,由於 $ dconf write 需要一個 key 和 value,就和 $ dconf watch 的輸出一樣

重點在於 $ dconf watch 剛才輸出的 value 是 'Ubuntu Mono 13'

對,那個單引號也算在 value 的一部分喔

如果你直接在 shell 輸入 'value' 或 "value",最終都是以 value 被當參數傳進去了

而因為我們希望它真正傳入的字串是 'value',所以要用雙引號包住單引號

所以我們要使用 "'Monaco Bold 13'" 去傳入 'Monaco Bold 13'

這個細節沒處理好,$ dconf write 會報錯喔
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5250666
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

1喜歡★happy819tw 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:用 fontconfig...

追蹤私訊切換新版閱覽

作品資料夾

a32760473大家
喜歡的V畢業了很悲傷,發現自己是社畜也很悲傷,但比悲傷更悲傷的是你的收藏因為重灌時的失誤全沒了。看更多我要大聲說昨天21:40


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】