GSettings 的配置文件是 xml 格式的,文件需以 .gschema.xml 结尾,文件名通常与 id 相同。配置文件安装在 /usr/share/glib-2.0/schemas/ 目录下,手动添加进去的文件需要执行 sudo glib-complie-schemas /usr/share/glib-2.0/schemas 让其生效。

<?xml version="1.0" encoding="UTF-8"?>
<schemalist>
<schema path="" id="">
<key type="" name="">
<default></default>
<summary></summary>
<description></description>
</key>
</schema>
</schemalist>

可以看到一个文件里可以包含多个 schema ,每个 schema 可由多个 key 组成。详细说明如下:

  • id

    schema 中的 id 需要在整个配置系统中是唯一的,不然执行 glib-compile-schemas 时会忽略重复的 id ; id 的开头通常使用与应用相关的域名

  • path

    schema 中的 path 必须是以 / 开头并且以 / 结尾,不能包含连续的 / , path 用于指定在 storage 中存储路径,可以与 id 不一致

  • name

    key 的名称,需要在此 schema 中是唯一的, name 的值由小写字母、数字和 - 组成,并且开头必须是小写字母,不能以 - 结尾,也不能出现连续的 -

  • type

    key 的类型,需要是 GVariant 支持的类型,除了可以使用基本的类型外,也可按照 GVariant 的方式组合类型

  • default

    key 的默认值

  • summary

    key 的简单描述

  • description

    key 的详细描述

python如何修改呢?

from gi.repository import Gio #  导入Gio库

gso = Gio.Settings("com.gh.device.report") # string schema_id

gso.set_int("report-type",1) # 传入值为key name/value,注意key的类型,选择set_boolean()/set_int()/set_string/set_double/set_enum等
a = gso.get_value("report-type")# 获取key的值 gso.set_boolean("https-enable",0)
b = gso.get_value("https-enable")

可能会出现修改不成功情况,需要开启什么东西ps -eaf |grep dbus,我也不太懂,欢迎留言。

参考文档链接:

https://segmentfault.com/a/1190000019968756

https://valadoc.org/gio-2.0/GLib.Settings.Settings.html

python修改Gsettings的配置文件的更多相关文章

  1. Python中操作ini配置文件

    这篇博客我主要想总结一下python中的ini文件的使用,最近在写python操作mysql数据库,那么作为测试人员测试的环境包括(测试环境,UAT环境,生产环境)每次需要连接数据库的ip,端口,都会 ...

  2. ConfigParser读取记事本、notepad++修改后的配置文件会出现:ConfigParser.MissingSectionHeaderError

    使用ConfigParser来读取配置文件,经常会发现经过记事本.notepad++修改后的配置文件读取时出现下面的问题: ConfigParser.MissingSectionHeaderError ...

  3. 翻译文章“AST 模块:用 Python 修改 Python 代码”---!!注意ironpathyon未实现此功能

    https://github.com/upsuper/blog/commit/0214fdd084c4adf2de2ed9912d644fb59ce13a1c +Title: [翻译] AST 模块: ...

  4. 通过python生成nginx模板配置文件

    通过python生成nginx模板配置文件 # cat config.py #coding=utf-8 nginx_conf = ''' server {{ listen {port}; server ...

  5. 修改 App.Config 配置文件 C#

    [转]在WCF程序中动态修改app.config配置文件 今天在个WCF程序中加入了修改配置文件的功能.我是直接通过IO操作修改的app.config文件内容,修改后发现发现其并不生效,用Google ...

  6. 4. python 修改字符串实例总结

    4. python 修改字符串实例总结 我们知道python里面字符串是不可原处直接修改的,为了是原来的字符串修改过来,我们有一下方法: 1.分片和合并 >>> a='abcde'  ...

  7. python修改镜像源

    pip升级:python -m pip install --upgrade pip https://www.cnblogs.com/andy9468/p/10319442.html 1.在命令中临时修 ...

  8. Python+selenium之读取配置文件内容

    Python+selenium之读取配置文件内容 Python支持很多配置文件的读写,此例子中介绍一种配置文件的读取数据,叫ini文件,python中有一个类ConfigParser支持读ini文件. ...

  9. python 修改文件内容

    python 修改文件内容 一.修改原文件方式 1 def alter(file,old_str,new_str): 2 """ 3 替换文件中的字符串 4 :param ...

随机推荐

  1. EXSI6.7 中给虚拟机磁盘扩容

    [admin@localhost ~]$ sudo fdisk -l Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors Un ...

  2. LGP3813题解

    这道题是我去年11月份的时候看到的,当时写了一个假的做法没过样例,然后就没管了. 结果今天在模拟赛的时候放到了 T1( 我也不知道他为什么是对的,可是他就是过了样例和大样例.jpg 容易发现 \(n\ ...

  3. Solon 1.6.33 发布,更现代感的应用开发框架

    相对于 Spring Boot 和 Spring Cloud 的项目 启动快 5 - 10 倍 qps 高 2- 3 倍 运行时内存节省 1/3 ~ 1/2 打包可以缩小到 1/2 ~ 1/10(比如 ...

  4. 分享一些阅读Java相关框架源码的经验

    昨天和部分网友进行了线上的交流,交流中有不少网友提到阅读源码比较难,不知道怎么上手.胖哥分享了一些个人经验,这里总结一下. 阅读源码实际上是Debug源码 其实所谓的阅读源码并不是单纯的阅读,而是调试 ...

  5. 内网渗透----windows信息收集整理

    一.基础信息收集 1.信息收集类型 操作系统版本.内核.架构 是否在虚拟化环境中,已安装的程序.补丁 网络配置及连接 防火墙设置 用户信息.历史纪录(浏览器.登陆密码) 共享信息.敏感文件.缓存信息. ...

  6. [转载]实战 SSH 端口转发

    实战 SSH 端口转发 通过本文的介绍,读者可以从中了解到如何应用 SSH 端口转发机制来解决日常工作 / 生活中的一些问题.学会在非安全环境下使用端口转发来加密网络应用,保护个人隐私以及重要商业信息 ...

  7. Redis数据结构详解(1)-redis中的字符串(SDS)

    前提知识 我们先从百科上摘下Redis的解释: Redis是一个使用ANSI C编写的开源.支持网络.基于内存.分布式.可选持久性的键值对存储数据库. (不用过多在意ANSI,它只是一个标准,你可以理 ...

  8. async-validator 源码学习笔记(六):validate 方法

    系列文章: 1.async-validator 源码学习(一):文档翻译 2.async-validator 源码学习笔记(二):目录结构 3.async-validator 源码学习笔记(三):ru ...

  9. mysql索引失效原理(联合索引失效问题)

    单值索引B+树图单值索引在B+树的结构里,一个节点只存一个键值对 联合索引开局一张图,由数据库的a字段和b字段组成一个联合索引. 从本质上来说,联合索引也是一个B+树,和单值索引不同的是,联合索引的键 ...

  10. 转:C++经典排序算法总结

    转载至:https://www.cnblogs.com/fnlingnzb-learner/p/9374732.html 一.算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比 ...