gsettings命令使用简介

1.gsettings创建项

应用程序可以使用gsettings来保存配置信息,可以通过代码在程序中进行设置、修改gsettings的已有的项,但是不能通过程序代码创建新的gsettings项,gsettings的项的在一个叫做schema的规范文件中创建,schema文档其实是一个规范的xml文档。其实例如下:

<?xml version="1.0" encoding="UTF-8"?>
<schemalist><schema path="/org/lili/test/app/testgsettings/" id="org.lili.test.app.testgsettings"><key type="b" name="enabled"><default>true</default><summary>Enable Testgsetting</summary><description>Globally enable or disable the TestApp,Setting it to "false" will disable TestApp.</description></key><key type="i" name="brightness"><default>30</default><summary>The brightness of the screen</summary><description>This is the laptop panel screen brightness used when the session is idle.</description></key></schema>
</schemalist>

对于schema文件的注意事项:

  • path两头必须都有/,否则会验证失败
  • schema文件的扩展名必须是gschema.xml,否则这个规则文件将无法被正确编译安装,最终无法被gsettings使用
  • 如果想让gsettings能被dconf-editor所读取,则必须指定path属性

    2.schema文件的编译安装

    schema文件并不能直接被gsettings使用,需要用glib-compile-schemas编译器将schema文件编译为二进制文件才能被gsettings所使用。GSettings 会读取 XDG_DATA_DIRS 下的 glib-2.0/schemas路径,所以通常将schema文件放到环境变量XDG_DATA_DIRS/glib-2.0/schemas/路径下,一般为/usr/share/glib-2.0/schemas 和 /usr/local/share/glib-2.0/schemas。例如,我们将schema文件拷贝到/usr/share/glib-2.0/schemas 路径下,我们可以在命令行运行以下命令编译刷新系统的gsettings:

#glib-compile-schemas /usr/share/glib-2.0/schemas

执行完上述命令后就可以发现自己定义的schema已经生效:
myschema

3.常用的gsettings命令

#gsettings list-schemas             显示系统已安装的不可重定位的schema
#gsettings list-relocatable-schemas 显示已安装的可重定位的schema
#gsettings list-children SCHEMA     显示指定schema的children,其中SCHEMA指xml文件中schema的id属性值,例如实例中的"org.lili.test.app.testgsettings"
#gsettings list-keys SCHEMA         显示指定schema的所有项(key)
#gsettings range SCHEMA KEY         查询指定schema的指定项KEY的有效取值范围
#gsettings get SCHEMA KEY           显示指定schema的指定项KEY的值
#gsettings set SCHEMA KEY VALUE     设置指定schema的指定项KEY的值为VALUE
#gsettings reset SCHEMA KEY         恢复指定schema的指定项KEY的值为默认值
#gsettings reset-recursively SCHEMA 恢复指定schema的所有key的值为默认值
#gsettings list-recursively [SCHEMA]如果有SCHEMA参数,则递归显示指定schema的所有项(key)和值(value),如果没有SCHEMA参数,则递归显示所有schema的所有项(key)和值(value)

4.使用实例

4.1显示系统都安装了哪些不可重定位的schema

gsettings_list-schemas

4.2查看org.cinnamon.settings-daemon.plugs都有哪些子schema

gsettings_list-children

4.3查看org.cinnamon.settings-daemon.plugs.power的schema下都有哪些项(key)

gsettings_list-keys

4.4查看org.cinnamon.settings-daemon.plugs.power的schema下所有项的取值

gsettings_list-recursively

4.5查看org.cinnamon.settings-daemon.plugs.power的schema下的项button-hibernate的值

gsettings_get

4.6查看org.cinnamon.settings-daemon.plugs.power的schema下的项button-hibernate的取值范围

gsettings_range

4.7修改设置org.cinnamon.settings-daemon.plugs.power的schema下的项button-hibernate的值为shutdown

gsettings_set

4.8恢复org.cinnamon.settings-daemon.plugs.power的schema下的项button-hibernate的值为默认值

gsettings_reset

4.9修改org.cinnamon.settings-daemon.plugs.power的schema下的多项值后,恢复整个schema的所有项为默认值

4.9.1修改前配置截图

gsettings_list-recursively

4.9.2修改后配置截图

gsetting_set

4.9.3恢复后的配置截图

gsettings_reset-recursively

感谢:本文前半部分参考了http://blog.csdn.net/zhgn2/article/details/8834339

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/274054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 之HashSet、LinkedHashSet、TreeSet比较

4.HashSet、LinkedHashSet、TreeSet比较 Set接口Set不允许包含相同的元素&#xff0c;如果试图把两个相同元素加入同一个集合中&#xff0c;add方法返回false。Set判断两个对象相同不是使用运算符&#xff0c;而是根据equals方法。也就是说&#xff0c;只要两个对象用equals方法…

jquery1.9学习笔记 之选择器(基本元素四)

ID选择器("#id") 描述&#xff1a; 选择与给出ID属性匹配的单元标签。 对于ID选择器&#xff0c;jquery使用JS的函数document.getElementById()&#xff0c;当一个标签附加到ID选择器上时&#xff0c;也是非常有效的。如h2#pageTitle&#xff0c;jquery会在识别元素标…

Java(ArrayList和LinkedList)、(HashTable与HashMap)、(HashMap、Hashtable、LinkedHashMap和TreeMap比较)

1.ArrayList和LinkedList &#xff08;1&#xff09;ArrayList是实现了基于动态数组的数据结构&#xff0c;LinkedList基于链表的数据结构。 &#xff08;2&#xff09;对于随机访问get和set&#xff0c;ArrayList绝对优于LinkedList&#xff0c;因为LinkedList要移动指针。 &a…

Java 集合之自动打包和解包以及泛型

自动打包与解包&#xff1a;泛型&#xff1a;上栗子&#xff1a; TestMap1.java: package com.zhj.www; import java.util.*;public class TestMap {public static void main(String[] args) {Map m1 new HashMap();Map m2 new TreeMap();//m1.put("one", new Inte…

泗洪高薪行业

泗洪高薪行业转载于:https://www.cnblogs.com/soundcode/p/3302297.html

Java IO 节点流与处理流类型

处理流类型&#xff1a;1、处理流之首先缓冲流&#xff1a;解释&#xff1a;例子&#xff1a;TestBufferStream1.java package com.zhj.www;import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException;public class TestBufferStream1 …

高级浏览器-SRWare Iron 29.0.1600.0 版本发布

SRWare Iron是德国一安全公司srware改造的Chrome&#xff08;铬&#xff09;命名为铁&#xff08;iron&#xff09;的浏览器。于2008年9月18日首次发布。 据官方介绍&#xff0c;Iron浏览器砍掉了Chromium原程序中的很多有碍“隐私”问题的代码。 “iron中去除的功能包括&#…

Java 线程多线程编程1---基础

1、线程的基本概念例子&#xff1a;分析&#xff1a;2、线程的创建和启动第一种线程的创建&#xff1a;定义一个线程类来实现Runner接口 例子&#xff1a; package com.zhj.www; import java.lang.Thread; public class TestThread1 {public static void main(String[] args) {…

windows挂载linux网络文件系统NFS

ubuntu上安装配置nfs服务 #apt-get install nfs-kernel-server #mkdir /home/nfs #vim /etc/exports 在文档的最后一行加入/home/nfs *(rw,sync,no_root_squash,no_subtree_check)&#xff0c;保存退出。 #/etc/init.d/rpcbind restart 重启rpcbind #/etc/init.d/nfs-kern…

SQL的连接分为三种:内连接、外连接、交叉连接。

先给出两张表&#xff1a;一、内连接&#xff1a;内连接&#xff08;INNER JOIN&#xff09;&#xff1a;有两种&#xff0c;显式的和隐式的&#xff0c;返回连接表中符合连接条件和查询条件的数据行。&#xff08;所谓的链接表就是数据库在做查询形成的中间表&#xff09;。1、…

RTP与RTCP协议介绍

本文转自&#xff1a;http://blog.51cto.com/zhangjunhd/25481 1&#xff0e;流媒体( Streaming Media) 1.1流媒体概念 流媒体技术是网络技术和多媒体技术发展到一定阶段的产物。术语流媒体既可以指在网上传输连续时基媒体的流式技术,也可以指使用流式技术的连续时基媒体本身…

JSP学习

一、JSP 简介 什么是Java Server Pages? JSP全称Java Server Pages&#xff0c;是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。 JSP是一种Java servlet&#xff0c;主要用于实现Java web应用程序的用户界面部分。网页开发…

Java线程中关于Synchronized的用法

synchronized是Java中的关键字&#xff0c;是一种同步锁。它修饰的对象有以下几种&#xff1a; 1. 修饰一个代码块&#xff0c;被修饰的代码块称为同步语句块&#xff0c;其作用的范围是大括号{}括起来的代码&#xff0c;作用的对象是调用这个代码块的对象&#xff1b; 2. 修饰…

Java线程之多线程与多进程(1)——以操作系统的角度述说线程与进程

任务调度 线程是什么&#xff1f;要理解这个概念&#xff0c;须要先了解一下操作系统的一些相关概念。大部分操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式&#xff0c;也就是说一个任务执行一小段时间后强制暂停去执行下一个任务&#xff0c;每个任务…

Java线程之多线程与多进程(3)——Java中的多线程

单线程 任何程序至少有一个线程&#xff0c;即使你没有主动地创建线程&#xff0c;程序从一开始执行就有一个默认的线程&#xff0c;被称为主线程&#xff0c;只有一个线程的程序称为单线程程序。如下面这一简单的代码&#xff0c;没有显示地创建一个线程&#xff0c;程序从mai…

Java 线程多线程编程3---线程同步之生产者与消费者问题

生产者与消费者问题&#xff1a; 第一步&#xff1a;把架子搭起来 package com.zhj.www;public class ProceduerConsumer {public static void main(String[] args) {} }//馒头实体 class wotou{int id;wotou(int id) {this.id id;}public String toString() {return "wo…

windows 服务实例

参考来源:http://blog.csdn.net/morewindows/article/details/6858216 参考来源: http://hi.baidu.com/tfantasy/item/aefa43d66b470a2b38f6f76c 剩下的都是我自己整理的。 在VS2012中新建一个Windows 服务的项目。然后在解决方案目录下找到Services1.cs&#xff0c;切换到代码…

Java 线程多线程编程2---线程同步

来模拟一个死锁&#xff08;互相等待&#xff09;&#xff1a; TestDeadLock.java package com.zhj.www;public class TestDeadLock implements Runnable {public int flag 1;static Object o1 new Object();static Object o2 new Object();public void run() {System.out.p…

Java网络编程1---基础

TCP/IP:事实上的标准 自己编的应用程序&#xff1a;应用层 TCP/UDP层 IP层 物理层 数据封装&#xff1a;第五层只与第四层打交道。 数据拆封《TCP/IP详解》网络底层 IP巨大的贡献&#xff1a;提供了独一无二的IP地址。 内网IP&#xff1a;虚假的 子网掩码&#xff1a;255.255.2…

Java网络编程2---Socket-TCP编程

Sockct:插座Socket是关于TCP的。 端口号&#xff1a;两个字节->65536个端口号&#xff0c;一个应用程序占多个端口号&#xff1b; 但是假设一个应用程序占一个端口号&#xff1b;一台电脑会有65535个应用程序。 自己编写程序要占用端口号1024以上后的。 80端口&#xff1a;网…