Gnome Kiosk keybind with dconf

Hello everyone.

I’m currently setting up a kiosk using GNOME Kiosk (GNOME / GNOME Kiosk · GitLab) on Fedora 38, and I encountered an issue while trying to rebind keys. The documentation mentioned that keys can be rebound using gsettings, which led me to believe that modifications could be made directly through dconf, considering gsettings acts as a frontend for dconf.

However, when I modify keys directly in dconf (I created modifications under /etc/dconf/db/local.d) and follow up with a dconf update, the changes don’t seem to take effect. This observation led me to question whether direct modifications in dconf should indeed reflect when using gsettings or if I might be missing a step in the process.

Is there a specific procedure to rebind keys directly through dconf that I might not be following correctly? I was under the impression that changes made in dconf would automatically be recognized by gsettings, but my observation suggests otherwise. Any insights or guidance on this matter would be greatly appreciated.

I don’t know much about gnome-kiosk, but a quick code search reveals that it sets the env var DCONF_PROFILE=gnomekiosk. dconf profiles are documented in man 7 dconf.

I believe you need to copy /usr/share/dconf/profile/gnomekiosk into /etc/dconf/profile/ and modify it in accordance with Custom default values for system settings

1 Like

That’s a great discovery, thanks!

Unfortunately, the issue persists even after following your suggested steps. Within gnomekiosk, I found that file-db is pointing at /usr/share/gnome-kiosk/gnomekiosk.dconf.complied. This makes me to think that I might need to modify and recompile this file. I’m also puzzled by how gsettings is functioning in this context, as it appears capable of making changes, like rebinding keys, within the kiosk session.

Is the approach of recompiling gnomekiosk.dconf.complied the correct approach? Or I should approach this problem differently?

Any further thoughts or guidance would be greatly appreciated!

In a dconf profile, the first line defines the writable db that is used for user configuration. In this case, it’s user-db:user, so that means dconf in the session itself writes to the same dconf db that a normal GNOME session would use: ~/.config/dconf/user.


What does your /etc/dconf/profile/gnomekiosk look like, exactly?

You should have added e.g. system-db:local in between the two existing lines; they’re listed in priority order. From there, defaults set in /etc/dconf/db/local.d/ should take effect after sudo dconf update.

1 Like

Thanks @chrisaw I added system db and local db to the profile, and it works. I ended up recompiling the custom gnomekiosk.dconf.complied as it is isolated from the system database. Anyway, the problem was solved. Thank you very much for your guidance!

This topic was automatically closed 45 days after the last reply. New replies are no longer allowed.