Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug: Configuration separation for dconf #5894

Open
2 tasks done
davidedellagiustina opened this issue Sep 26, 2024 · 0 comments
Open
2 tasks done

bug: Configuration separation for dconf #5894

davidedellagiustina opened this issue Sep 26, 2024 · 0 comments
Assignees
Labels
bug triage Issues or feature request that have not been triaged yet

Comments

@davidedellagiustina
Copy link

davidedellagiustina commented Sep 26, 2024

Are you following the right branch?

  • My Nixpkgs and Home Manager versions are in sync

Is there an existing issue for this?

  • I have searched the existing issues

Partially related to #1444.

Issue description

Background

The default profile for dconf -- named user and stored under /etc/dconf/profiles/ -- currently references two databases:

  • a file-db entry pointing to the Nix store, where (read-only) confguration set by the option programs.dconf.profiles.user is stored;
  • a user-db entry that points to the user's configuration database, usually stored in ~/.config/dconf/user. This is where Home Manager's dconf.settings option currently stores all its configuration.

Issue

This means that there is no separation between (1) options set declaratively by HM, and (2) options set imperatively by e.g. GUI apps. Consequently:

  • options declared by HM can be overwritten imperatively which -- despite being easily fixable with a rebuild -- is not ideal;
  • using something like impermanence to clear (2) at every boot is simply impossible, since they are stored together with (1).

Fix proposal

To achieve better separation between (1) and (2):

  • (1) could be stored in a dedicated database in the Nix store, which could then be referenced as a read-only entry in /etc/dconf/profiles/user;
  • (2) could continue to be stored as they are now, allowing the user to cleanly wipe ~/.config/dconf/user at every boot without clearing the declarative configuration set by HM.

Maintainer CC

@rycee

System information

- system: `"x86_64-linux"`
- host os: `Linux 6.11.0, NixOS, 24.05 (Uakari), 24.05.20240925.759537f`
- multi-user?: `yes`
- sandbox: `yes`
- version: `nix-env (Nix) 2.18.7`
- nixpkgs: `/nix/store/m1g5a7agja7si7y9l1lzwhp3capbv7x9-source`
@davidedellagiustina davidedellagiustina added bug triage Issues or feature request that have not been triaged yet labels Sep 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug triage Issues or feature request that have not been triaged yet
Projects
None yet
Development

No branches or pull requests

4 participants