gnome连续几个版本的terminal默认配置文件都是同一个配置文件“b1dcc9dd-5262-4d8d-a863-c897e6d979b9”。这是因为gnome的developers编辑了这个配置文件并作为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’。

修通过改gnome的dconf数据库定制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查看,有些重定义的路径很难写的,容易出错。

参考红帽的《桌面迁移与管理指南》

以gnome-terminal为例,修改gnome3 的默认配置的更多相关文章

  1. Cocos2d-x 3.2Lua演示样例UserDefaultTest(用户默认配置)

    Cocos2d-x 3.2演示样例UserDefaultTest(用户默认配置) 本篇博客介绍Cocos2d-x 3.2演示样例中的UserDefaulstTest,我们在开发中可能须要用到一些默认配 ...

  2. Elasticsearch之重要核心概念(cluster(集群)、shards(分配)、replicas(索引副本)、recovery(据恢复或叫数据重新分布)、gateway(es索引的持久化存储方式)、discovery.zen(es的自动发现节点机制机制)、Transport(内部节点或集群与客户端的交互方式)、settings(修改索引库默认配置)和mappings)

    Elasticsearch之重要核心概念如下: 1.cluster 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的.es的一个概念就是 ...

  3. 修改JQM的默认配置属性

    从本文开始,使用 jQuery Mobile 与 HTML5 开发 Web App 系列将会进入第三部分——jQuery Mobile 事件与方法,这其中将会利用之前所讲述的 jQuery Mobil ...

  4. 提升PHP安全:8个必须修改的PHP默认配置

    很明显,PHP+Mysql+Apache是很流行的web技术,这个组合功能强大,可扩展性强,还是免费的.然而,PHP的默认设置对已经上线的网站不是那么适合.下面通过修改默认的配置文件加强PHP的安全策 ...

  5. StringGrid 实例3: 本例功能: 1、修改 TStringGrid的默认宽与高; 2、添加行; 3、确认当前单元并赋值.

    实例3: 本例功能: 1.修改 TStringGrid的默认宽与高; 2.添加行; 3.确认当前单元并赋值. 实例图形:

  6. 【SecureCRT配置】修改默认卷屏行数当做一个操作,屏幕输出有上百行,当需要将屏幕回翻时,这个设置会有很大帮助,默认为500行,可以改为10000行,不用担心找不到了。 选项 => 全局选项 => Default Session => Edit Default Settings => Terminal => Emulation => Scrollback 修改为32000。

    SecureCRT配置屏幕内容输出到log文件 SecureCRT看不到前几分钟操作的内容,或者想把通过vi命令查看的日志输出到log文件(在懒得下载日志文件的情况下),所以接下来就这样操作: 文件保 ...

  7. 如何修改mtk android 默认拍照size

    [DESCRIPTION] 修改默认拍照size [SOLUTION] 修改默认的capture size,改变camera feature table的FID_CAP_SIZE default值不起 ...

  8. PMS 修改禅道默认首页元素及展示

    修改禅道默认首页元素及展示 by:授客 QQ:1033553122 测试环境: 禅道项目管理软件ZenTaoPMS.9.5.1.win64 需求描述 如下,安装禅道后访问默认首页,展示如下,我们希望它 ...

  9. 修改windows远程默认端口

    修改windows远程默认端口 windows端口修改rdp 1 远程服务器运行窗口调出注册表编辑器 注册表编辑器regeidt 2 修改两个注册表 1,在注册表HKEY_LOCAL_MACHINE\ ...

随机推荐

  1. SQl 事物+视图+游标+索引+锁

    一:事务: 是访问并可能更新数据库中各种数据项的一个程序执行单元(unit),事务是恢复和并发控制的基本单位. 事务的四个特性:ACID A:atomicity 原子性,事务里的所有操作都是一体的,要 ...

  2. ReSharper warns: “Static field in generic type”

    http://stackoverflow.com/questions/9647641/resharper-warns-static-field-in-generic-type It's fine to ...

  3. scapy基础-网络数据包结构

    网络层次模型,数据包的组成是学习scapy的基础,下文主要关注模型中各个层次的用途,ethernet II和ip包数据结构.    1.五层模型简介 名称 作用 包含协议 应用层 面向程序对程序的传输 ...

  4. BZOJ_2424_[HAOI2010]订货_最小费用最大流

    BZOJ_2424_[HAOI2010]订货_最小费用最大流 Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付 ...

  5. 洛谷P1155 双栈排序——思路题

    题目:https://www.luogu.org/problemnew/show/P1155 思路... 看博客:https://www.cnblogs.com/Narh/p/9213825.html ...

  6. 安装Git(转载)

    转自:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137396287703 ...

  7. Spring Theme简单应用

    Spring MVC特性里由一个是关于Spring Theme主题的应用,所以写了个Demo 1.这里先看项目结构(Meven项目) 2.所需的POM依赖 <dependency> < ...

  8. bzoj 1059: [ZJOI2007]矩阵游戏【匈牙利算法】

    注意到怎么换都行,但是如果把某个黑方块用在对角线上,它原来所在的行列的的黑方块就都不能用 所以要选出n组不重的行列组合,这里用匈牙利算法做二分图匹配即可(用了时间戳优化) #include<io ...

  9. PHP的包依赖管理工具Composer简介

    composer是一个基于项目的依赖管理器,负责将php项目的所依赖的包和库安装在项目的目录中,默认不会不会安装任何数据到全局.他用于取代之前pear工具 1 安装Composer curl -sS  ...

  10. 状压DP UVA 11795 Mega Man's Mission

    题目传送门 /* 题意:洛克人有武器可以消灭机器人,还可以从被摧毁的机器人手里得到武器,问消灭全部机器人的顺序总数 状态压缩DP:看到数据只有16,就应该想到状压(并没有).因为是照解题报告写的,代码 ...