以gnome-terminal为例,修改gnome3 的默认配置
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 的默认配置的更多相关文章
- Cocos2d-x 3.2Lua演示样例UserDefaultTest(用户默认配置)
Cocos2d-x 3.2演示样例UserDefaultTest(用户默认配置) 本篇博客介绍Cocos2d-x 3.2演示样例中的UserDefaulstTest,我们在开发中可能须要用到一些默认配 ...
- Elasticsearch之重要核心概念(cluster(集群)、shards(分配)、replicas(索引副本)、recovery(据恢复或叫数据重新分布)、gateway(es索引的持久化存储方式)、discovery.zen(es的自动发现节点机制机制)、Transport(内部节点或集群与客户端的交互方式)、settings(修改索引库默认配置)和mappings)
Elasticsearch之重要核心概念如下: 1.cluster 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的.es的一个概念就是 ...
- 修改JQM的默认配置属性
从本文开始,使用 jQuery Mobile 与 HTML5 开发 Web App 系列将会进入第三部分——jQuery Mobile 事件与方法,这其中将会利用之前所讲述的 jQuery Mobil ...
- 提升PHP安全:8个必须修改的PHP默认配置
很明显,PHP+Mysql+Apache是很流行的web技术,这个组合功能强大,可扩展性强,还是免费的.然而,PHP的默认设置对已经上线的网站不是那么适合.下面通过修改默认的配置文件加强PHP的安全策 ...
- StringGrid 实例3: 本例功能: 1、修改 TStringGrid的默认宽与高; 2、添加行; 3、确认当前单元并赋值.
实例3: 本例功能: 1.修改 TStringGrid的默认宽与高; 2.添加行; 3.确认当前单元并赋值. 实例图形:
- 【SecureCRT配置】修改默认卷屏行数当做一个操作,屏幕输出有上百行,当需要将屏幕回翻时,这个设置会有很大帮助,默认为500行,可以改为10000行,不用担心找不到了。 选项 => 全局选项 => Default Session => Edit Default Settings => Terminal => Emulation => Scrollback 修改为32000。
SecureCRT配置屏幕内容输出到log文件 SecureCRT看不到前几分钟操作的内容,或者想把通过vi命令查看的日志输出到log文件(在懒得下载日志文件的情况下),所以接下来就这样操作: 文件保 ...
- 如何修改mtk android 默认拍照size
[DESCRIPTION] 修改默认拍照size [SOLUTION] 修改默认的capture size,改变camera feature table的FID_CAP_SIZE default值不起 ...
- PMS 修改禅道默认首页元素及展示
修改禅道默认首页元素及展示 by:授客 QQ:1033553122 测试环境: 禅道项目管理软件ZenTaoPMS.9.5.1.win64 需求描述 如下,安装禅道后访问默认首页,展示如下,我们希望它 ...
- 修改windows远程默认端口
修改windows远程默认端口 windows端口修改rdp 1 远程服务器运行窗口调出注册表编辑器 注册表编辑器regeidt 2 修改两个注册表 1,在注册表HKEY_LOCAL_MACHINE\ ...
随机推荐
- Bing必应地图中国API-放大与平移
Bing必应地图中国API-放大与平移 2011-05-24 14:26:32| 分类: Bing&Google|字号 订阅 有些时候我们不希望通过默认的控制栏来控制地图,而是希望能 ...
- Ado.net设计模式
连接类 连接类有固定的使用模式,这是常用的乐观模式: using (var conn = new SqlConnection(connstr)) { conn.Open(); //执行各种数据库操作 ...
- bzoj2989
坐标轴转化+cdq分治 我们发现那个绝对值不太好搞,于是我们把曼哈顿距离转为切比雪夫距离,x'=x-y,y'=x+y,这样两点之间距离就是max(|x1'-x2'|,|y1'-y2'|),这个距离要小 ...
- CI CD系统整合
转载_CI 系统搭建:Git.Gerrit与Jenkins 2014-08-11 20:55 15678人阅读 评论(1) 收藏 举报 分类: 软件集成和项目管理(3) 目录(?)[+] 去年写的这五 ...
- 解决 2003 Can’t connect to MySQL server on ‘localhost’ (10048)
2003 Can’t connect to MySQL server on ‘localhost’ (10048)一般见于使用mysql的windows 2003服务器.错误的出现的原因: 第一种原因 ...
- mybatis批量update操作的写法,及批量update报错的问题解决方法
mybatis的批量update操作写法很简单,如下: public interface YourMapper extends BaseMapper<YourExt> { void upd ...
- Shell脚本下条件测试(eq.ne.....)(转载)
转载:http://cxj632840815.blog.51cto.com/3511863/1168709 Shell编程中的条件测试 在Linux编程中经常会用到判断数值的大小,字符串是否为空这样或 ...
- 0629-TP整理四(create(),success(),error(),U())
create()-前提:表单中name的值要与数据库中的字段一一匹配 可直接获取表单数据进行操作: 作用:将数据库中没有的字段在数组中去除. PHP中添加的语法如下: success()和error( ...
- Django day35 redis连接池,redis-list操作,django中使用redis,支付宝支付
一:redis连接池, 二:redis-list操作, 三:django中使用redis, 四:支付宝支付
- hdu 模拟 贪心 4550
卡片游戏 Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepted Su ...