问题标签 [gsettings]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
135 浏览

glib - GSetting路径名有什么限制?

我在 GSettings 文档中读到:

键名仅限于小写字符、数字和“-”。此外,名称必须以小写字符开头,不得以“-”结尾,并且不得包含连续的破折号

但是没有关于路径名的注释,除了不包括连续的斜杠 ( /)。我的用例是为基于设备的设置生成子目录(从可重定位模式),我想知道是否应该清理任何字符的字符串。

0 投票
2 回答
1874 浏览

fedora - Gnome 3 - dconf / gsettings - 如何分配多个键绑定?

目标:将Super_LSuper_R键都指定为覆盖菜单的触发器。

环境:Gnome 3.26.2、Fedora 27、Dell XPS 9550、Kinesis Advantage2

原因:在工作中,我要么单独使用笔记本电脑,要么将笔记本电脑与外接显示器、键盘和鼠标结合使用。笔记本电脑键盘有一个左超级(windows)键,没有右超级(windows)键。但是,外接键盘有一个右超级(windows)键,但没有左超级(windows)键。

目前,每次在单独使用笔记本电脑或与我的外部设备(或执行等效操作:)之间切换时,我都必须打开gnome-tweak-tooldconf-editorSuper_Land键之间切换。Super_Rgsettingsgsettings set org.gnome.mutter overlay-key 'Super_{L/R}'

状态:我尝试通过基于 GUI 的工具(以及通过 CLI 驱动的替代方法)使用许多不同的语法策略来分配值Super_LSuper_R值,但没有成功。org.gnome.mutter.overlay-keydconf-editorgsettings

可以通过以下命令输出所有 gsettings 的列表gsettings list-recursively > gsettings.txt:根据此文件,多键值的适当语法如下['value1', 'value2']:但是,尝试根据此格式 ( gsettings set org.gnome.mutter overlay-key ['Super_L', 'Super_R']) 设置值会产生gsettings使用菜单,这意味着命令格式无效。

我不太关心使用基于 GUI 的dconf-editor最终,我将使用配置管理软件gsettings为我执行配置(通过)(我Chef用来构建和配置我的笔记本电脑)。

问题:如何使用配置工具同时启用Super_LSuper_R触发 Fedora 覆盖菜单?gsettings

我尝试过的格式不起作用:

  • dconf write /org/gnome/mutter/overlay-key
  • gsettings set org.gnome.mutter overlay-key

  • "['Super_L','Super_R']"
  • "['Super_L', 'Super_R']"
  • ['Super_L','Super_R']
  • ['Super_L', 'Super_R']
  • 'Super_L','Super_R'
  • 'Super_L', 'Super_R'

任何提示、提示或建议将不胜感激!

-- 信息学家

PS - 我没有明确提到它,但我确实详尽地搜索了如何通过 gsettings 输入多值键绑定,但无法找到一个我可以复制而不会出错的示例。

参考资料

0 投票
2 回答
283 浏览

linux - 如何使用 Vala 从存储在 GSettings 中的字典数组中读取值?

GSettings Vala 文档不是很详细,我找不到从存储在 GSettings 中的字典数组中读取项目的方法。现在我的架构中有这个:

如何读取键的值id和数组name的第一个值?services我尝试了很多可能性(例如使用get_value("services")then get_child(0))来阅读字典,但它只是中断了,我不知道如何调试它。

0 投票
1 回答
184 浏览

dictionary - 使用 GSettings 时,{ss} 应该映射到什么 GLib 类型?

我有一个带有 type 键的 gsettings 架构a{ss}。我想将所述键绑定到对象上的属性。我已成功使用g_settings_bindg_settings_bind_with_mapping其他键,但我不知道将此键映射到什么类型。这GVariant是一个包含键字符串和值字符串的字典数组,但那是什么类型的 glib 呢?

0 投票
2 回答
2576 浏览

ansible - 为不同的本地用户运行相同的 Ansible Playbook

我想使用 ansible playbook 为我的本地主机上的两个不同用户(即 admin 和 brian)设置相同的配置。目前,“普通”角色安装两个用户都可以访问的程序。此外,我还有用户特定的设置(例如,桌面壁纸)。当我运行我的剧本时,用户特定的设置会从一个用户而不是另一个用户更新。例如,如果我运行我的剧本,布赖恩的壁纸会改变,但管理员的壁纸保持不变。我知道 become_user,但不想为我运行的每个任务都这样做。是否可以以这样一种方式定义主机文件或剧本,以便我可以简单地指定我希望剧本运行的本地主机上的用户?

我已经尝试过 是否可以更有效地以多个用户的身份运行多个 Ansible 剧本?在每个角色级别上,但出现以下错误:

致命的:[本地主机]:失败!=> {"changed": false, "module_stderr": "/usr/bin/python2: 无法打开文件'/home/brian/.ansible/tmp/ansible-tmp-1525409723.54-208533437554058/apt.py': [Errno 13] 权限被拒绝\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 2}


网站.yml


角色/公共/任务/main.yml


角色/common/tasks/gsettings.yml

0 投票
1 回答
72 浏览

gnome - 如何将 Dconf 包添加到 buildroot

我对buildroot很陌生。我想在我的项目中使用 GSetting。事实证明,Gsettings需要名为GConf的后端实现来保存配置。

由于没有在 ROOT-FS 中安装此模块,当我使用 gsettings cmd 行实用程序读取/写入配置时,我不断收到此错误消息。

使用“内存”GSettings 后端。您的设置不会被保存或与其他应用程序共享。

现在的问题是 buildroot 支持 Gsettings 和 Glib 开箱即用,但不支持 GConf。

谁能指导我如何将这个包添加到buildroot?

0 投票
0 回答
307 浏览

build - 如何在构建步骤编译架构?

Waf 2.0.17 glib2可以顺利编译安装仓鼠的gsettings schemas 。

然而,如果不先安装,就无法运行应用程序:

GSettings 的第一步中描述的解决方法不起作用。

...
[127/127] 编译数据/org.gnome.hamster.gschema.xml

(hamster-cli.py:4850): GLib-GIO-ERROR **: 17:31:56.381: Settings schema 'org.gnome.Hamster' is not installed Trace/breakpoint trap (core dumped)

没有这样的架构“org.gnome.hamster”</p>

事实上,只有空build/data/org.gnome.hamster.gschema.xml.valid文件作为目标

解决方法

按照这个答案

问题

如何获取已编译的build/data架构./waf configure build

0 投票
1 回答
200 浏览

linux - 在 linux 中生成 Gsettings 架构文件

我正在使用Gsettings 架构并有com.test.gschema.xml文件。现在架构中的一些键是枚举,因此我需要com.test.enums.xml文件。

现在我正在使用 CMakeLists ,因此不能使用gsettings_ENUM_NAMESPACEgsettings_ENUM_FILES。在搜索中,我发现我们可以使用glib-mkenums实用程序,但我尝试通过向它提供具有枚举声明和定义的 .c 和 .h 文件来使用它生成 *.enums.xml 文件,但它所做的只是生成一个没有枚举的空文件。

0 投票
1 回答
300 浏览

eclipse - GSettings、glib-compile-schema 和 Eclipse

我正在 Ubuntu 中构建这个 Gtkmm3 应用程序并想探索 GSettings。一切顺利,按照“使用 GSettings ”页面上的说明进行操作,然后是时候配置 make 文件了。我使用带有 CDT (V9.10) 的 Eclipse 2019-12 IDE 和“GNU Make Builder”作为构建器。对于如何将 GNOME 页面中列出的宏引入到 make 文件中,我完全感到困惑。我什至尝试使用 Eclipse 将项目更改为“C/C++ Autotools 项目”,但仍然缺少添加宏所需的 make 文件。使用 GNU Autotools 创建一个新项目确实会创建必要的 make 文件,但我无法让 pkg-config 使用它。

任何人都可以向我指出一些资源,该资源解释了如何编译架构以及如何以及在何处加载生成的二进制文件(如有必要,在外部加载)。如果有人已经使用 Linux 中的 Eclipse IDE 制作了支持 GSettings 的 Gtkmm3 C++ 应用程序并且可以分享详细信息,我会认为自己很幸运。

0 投票
2 回答
133 浏览

python - gsettings 的奇怪行为用 cron 设置了一个新的 desktop.background

我想每 5 分钟更换一次桌面背景。我在 ubuntu 上,这项工作有效地改变了我的背景:

我可以从 python 脚本启动它,该脚本将从特定目录中选择一个随机图像。我把脚本放在这里,即使我不确定它在这里是否相关

这也有效。所以现在我想使用 cron 定期执行我的 python 代码

它不起作用。我在某处看到它可能是用户环境问题,所以我尝试用类似的东西改变上面的执行

不起作用。需要明确的是,在 root shell 中,原始命令(我帖子顶部的第一个 gsetting 命令)或这两个也不起作用,这不是 cron 问题。

所以,我决定使用 crontab 作为我的用户。可能是 su/sudo 无法解决的用户相关问题

我试过这个

它不起作用。更确切地说,我可以在 cron 服务状态中看到

(我撒谎了,“我”是弗洛伦特)所以,正如那句台词

暗示,我以 florent 的身份运行脚本,所以它应该可以正常工作吗?但不是。即使脚本与我的 florent shell 一起运行,cron 也不会工作。

**编辑:**我确实更改了 crontab 中的行,以便获得反馈。我确实删除了带有选项的邮件MAILTO="",所以我需要以另一种方式获得我的反馈。

正如我所想,没有错误输出。我只有print(" ".join(cmd))在日志中。