以gnome-terminal為例,修改gnome3 的預設配置

来源:https://www.cnblogs.com/ZenCollection/archive/2019/02/14/10374096.html
-Advertisement-
Play Games

gnome連續幾個版本的terminal預設配置文件都是同一個配置文件“b1dcc9dd-5262-4d8d-a863-c897e6d979b9”。這是因為gnome的developers編輯了這個配置文件並作為gnome-terminal的預設配置文件,用來對terminal生成一個預設的樣式和外 ...


gnome連續幾個版本的terminal預設配置文件都是同一個配置文件“b1dcc9dd-5262-4d8d-a863-c897e6d979b9”。這是因為gnomedevelopers編輯了這個配置文件並作為gnome-terminal的預設配置文件,用來對terminal生成一個預設的樣式和外觀等配置。在3.x連續幾個子版本的gnome,這個設置都沒有作出什麼改變。

如果我們想定製gnome-terminal或其他gnome應用的預設配置,即如果你想把預設配置文件的預設配置選項都調成你想要的,如果你的gnome崩了,待你修複完成後預設的配置還是你自己調製好的,它已經作為一個你專屬的gnome預設配置被保存了。

上個圖感受下這個gnome-teiminal預設配置文件的預設選項。我們採用dconf-editor這個圖形軟體查看gnome的配置情況:

 


可以看到,標題處顯示當前路徑為“/org/gnome/terminal/legacy/profiles:/”,下麵是內容:幾個配置文件的id,以及配置文件的預設值和列表值。預設值,即鍵“default”的值,代表著gnome-terminal的預設配置文件是哪個,可以看到當前的預設值並不是上文提到的那個“b1dcc”開頭的值,這是因為這個鍵的值被我修改過了;列表值,即鍵“list”的值,這個值代表了在gnome-terminal->edit->preference中顯示的配置文件的列表,當前值是和“default”的值是一樣的,表示當前預設配置文件為“d0c70...”,並且使用了這個配置文件,而且配置文件的列表中只顯示這個配置文件。上圖看:

 


接下來修改gnome-terminal預設配置文件的某個鍵的預設值,可以用gsettings命令行工具或者dconf圖形工具查看:

找到gnome-terminal的預設配置文件,點擊進入,找到“font”鍵,打開:

 


可以看到,“font”鍵的當前值是‘Consolas 13’,預設值是‘Consolas Regular 12’,我們要做的就是把預設值改成別的,比如‘Fixed 15’


修通過改gnomedconf資料庫定製gnome預設配置的原理:gnome 的預設配置並不是以文檔的形式存儲的,雖然我們可以在/usr/share/glib-2.0/schemas/找到很多類似保存了配置信息的.xml文件,但是真實的配置信息是存儲在小型二進位schemas資料庫的,對我們來說並不是可視化的內容。那麼如何修改shcema資料庫的值呢?官方給出的方法是用類似打補丁的方式覆蓋某個鍵值。我們找到/etc/dconf/目錄,查看一下樹:

 


資料庫的配置文件保存在/profile,資料庫保存在/db

查看一下/profile/user的信息:

$ cat profile/user
user-db:user
system-db:local
system-db:site
system-db:distro

 


表示用戶級資料庫為user,系統級資料庫為local/site/distro。如果你想在用戶級別修改預設配置,則在user-db下修改,那麼系統級別就在system-db下修改咯。

我們假定在global全局狀態下修改預設配置,則進入/db下“資料庫名.d”的目錄,新建補丁文件(也可以在/profile/user 追加用戶級別或者系統級別的新建的資料庫,再在/db新建對應的目錄起名為“資料庫名.d,再在此目錄下添加補丁。註意不需要手動創建資料庫文件。)上邊寫用中括弧括起來的路徑,下邊寫鍵和修改的預設值。我們已經在local.d下添加了補丁了,查看一下:

 

$ cat db/local.d/01-change-00
[org/gnome/terminal/legacy/profiles:/:d0c707fb-df0d-465e-ae57-d30e4b1e1d0e]

font='Fixed 15'
use-system-font=false

 


路徑就是gnome-terminal配置文件的路徑,第一個鍵值改為我們想要的。關於第二個鍵值,gnome-terminal預設使用系統的預設等寬字體‘Monospace’,若此設置為“true”,還原設置時terminal 的字體就會是‘Monospace’而不是‘Fixed’。這也說明gnome 的配置並不是單一鍵決定的,有時存在多個鍵共同決定某一設置的情況。


這個補丁最好以root用戶創建,因為這是系統級別的。

然後我們更新dconf,設置就會成功了:$ dconf update

查看一下:

 


預設值變成了‘Fixed 15’,我們使用預設值,看一下terminal變成了什麼樣子:


沒錯,就是這個字體,醜醜的。設置成功。

 


總結:對於gnome3的其他配置,定製其預設屬性都可以通過類似打補丁更改資料庫的形式完成。前提是資料庫中存在這個鍵值。

註意事項:路徑最好通過dconf-editor查看,有些重定義的路徑很難寫的,容易出錯。

 

參考紅帽的《桌面遷移與管理指南》


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 變數命名法 這裡是linux不是windows,所以匈牙利命名法是不允許使用的,在內核中,局部變數只要可以明確表達自己的意思,可以使用idx,i這種名字的id, 全局函數和變數需要有表達性的名字例如get_active_name 之類的都是允許使用的。 空格的使用 在關鍵字周圍使用空格 關於註釋的使 ...
  • 請問如何把文件中的空行過濾掉(要求命令行實現) 解答: 創建實戰文件: 方法一: 提示:這是正則表達式的用法,前面講過了。^意思是以...開關,$意思是以....結尾,^$就是匹配以開頭結尾, 或者說匹配以結尾開頭,實際都是匹配空行的意思。 方法二: ...
  • cp命令:複製(copy) 單源複製: 如果DEST不存在,則先創建此文件,並複製源文件數據流至DEST中 如果DEST存在且是非目錄文件,則覆蓋目標文件 如果DEST存在且是目錄文件,則先DEST目錄下創建一個與源文件同名的文件,則×××數據流 多源複製: DEST必須存在,且為目錄,其他情況都會 ...
  • 環境: HelperA64開發板 Linux3.10內核 時間:2019.02.14 目標:定製ubuntu-core rootfs鏡像 參考這篇文章:http://dev.t-firefly.com/thread-10963-1-1.html ​ 在PC上模擬運行根文件系統。需要需要安裝一個工具: ...
  • 使用ssh主要有兩種登錄方式:第一種為密碼口令登錄,第二種為公鑰登錄 密碼口令登錄 通過密碼進行登錄,主要流程為: 1、客戶端連接上伺服器之後,伺服器把自己的公鑰傳給客戶端 2、客戶端輸入伺服器密碼通過公鑰加密之後傳給伺服器 3、伺服器根據自己的私鑰解密登錄密碼,如果正確那麼就讓客戶端登錄 公鑰登錄 ...
  • 摘要 由於機器人SLAM、自動導航、語音交互這一系列演算法都在機器人操作系統ROS中有很好的支持,所以後續的章節中都會使用ROS來組織構建代碼;而ROS又是安裝在Linux發行版ubuntu系統之上的,先學一些Linux命令行相關的知識,對後續ROS教程的快速上手會大有幫助。由於後續ROS的開發都是在 ...
  • cd 切換目錄 1.切換到指定目錄下 2.切換到某個用戶的主文件夾 3.切換到自己的主文件夾 4.返回上級目錄 5.回到剛纔在的目錄 pwd 顯示當前路徑 mkdir 新建目錄 1.簡單創建一個目錄 mkdir 目錄名 2.創建目錄時同時賦予目錄許可權 3.創建多層目錄 4.rmdir 刪除文件夾 只 ...
  • linux有些命令需要輸入密碼,比如ssh或su,又不能通過參數指定,正常只能手動輸入。這讓人多少有些懊惱,儘管這樣很安全! 破解:expect 預設沒這個東西,需要安裝 apt/yum install -y expect 好了,可以使用了,先寫個shell腳本 vi su後將上面內容複製/輸入即可 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...