如何为站点自定义键绑定编写 dconf 覆盖?

如何为站点自定义键绑定编写 dconf 覆盖?

我想使用 dconf 添加自定义键绑定。以前,我使用 gconf 做了同样的工作并成功了。但是,使用 dconf 存在一些问题。

(我正在开发 Debian 软件包,因此基于文件的覆盖很容易打包。)

这是我所拥有的:

# cat /etc/dconf/profile/user:
user-db:user
system-db:site

# cat /etc/dconf/db/site.d/keybindings
[org/mate/desktop/keybindings/emacs]
action='emacs'
binding='<Mod4>e'
name='Emacs'

[org/mate/desktop/keybindings/pluma]
action='pluma'
binding='<Mod4>g'
name='Text Editor'

[org/mate/desktop/keybindings/virtualbox]
action='virtualbox'
binding='<Mod4>v'
name='Virtual Box'

[org/mate/desktop/keybindings/rhythmbox]
action='rhythmbox'
binding='<Mod4>r'
name='Music Player'

# sudo dconf update

如您所见,文件/etc/dconf/db/site.d/keybindings包含 4 个键绑定,但是只有第一个有效,即Emacs 的Win+ E。其他键绑定将不起作用。

我可以重新排序条目,使其pluma成为第一个,或者virtualbox成为第一个,但是,同样的问题再次出现:只有第一个条目有效。即,Win+G代表 pluma,或Win+V代表 virtualbox。但是,我不能同时拥有所有这些键绑定!

但是等一下...如果我移动/etc/dconf/db/site.d/keybindings$HOME/.config/dconf/user.d/keybindings并运行:

# cd ~/.config/dconf
# mkdir user.d
# mv /etc/dconf/db/site.d/keybindings user.d/keybindings
# sudo dconf update .

然后一切正常!好吧,因为我正在编写 Debian 软件包,所以我无法将文件安装到用户的 homedir,所以仍然面临这个问题。

相关内容