diff options
author | worldofpeace <worldofpeace@protonmail.ch> | 2020-04-24 18:22:59 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-24 18:22:59 -0400 |
commit | ee5cba24c31896b6aeb0af4e21b93b878e54f747 (patch) | |
tree | 76fe6763116779df2a530a6b901d41d5f32c60ce /nixos | |
parent | eeb4e522b5d25408faab02c79a34ead8228531c9 (diff) |
Revert "ibus: fix dconf db installation"
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/i18n/input-method/ibus.nix | 2 | ||||
-rw-r--r-- | nixos/modules/programs/dconf.nix | 35 | ||||
-rw-r--r-- | nixos/tests/installed-tests/ibus.nix | 14 |
3 files changed, 20 insertions, 31 deletions
diff --git a/nixos/modules/i18n/input-method/ibus.nix b/nixos/modules/i18n/input-method/ibus.nix index cf24ecf586316..b4746b21b653f 100644 --- a/nixos/modules/i18n/input-method/ibus.nix +++ b/nixos/modules/i18n/input-method/ibus.nix @@ -64,7 +64,7 @@ in # Without dconf enabled it is impossible to use IBus programs.dconf.enable = true; - programs.dconf.packages = [ ibusPackage ]; + programs.dconf.profiles.ibus = "${ibusPackage}/etc/dconf/profile/ibus"; services.dbus.packages = [ ibusAutostart diff --git a/nixos/modules/programs/dconf.nix b/nixos/modules/programs/dconf.nix index 30fbd72a9abf5..6702e8efd1cb4 100644 --- a/nixos/modules/programs/dconf.nix +++ b/nixos/modules/programs/dconf.nix @@ -4,24 +4,13 @@ with lib; let cfg = config.programs.dconf; - cfgDir = pkgs.symlinkJoin { - name = "dconf-system-config"; - paths = map (x: "${x}/etc/dconf") cfg.packages; - postBuild = '' - mkdir -p $out/profile - mkdir -p $out/db - '' + ( - concatStringsSep "\n" ( - mapAttrsToList ( - name: path: '' - ln -s ${path} $out/profile/${name} - '' - ) cfg.profiles - ) - ) + '' - ${pkgs.dconf}/bin/dconf update $out/db - ''; - }; + + mkDconfProfile = name: path: + { + name = "dconf/profile/${name}"; + value.source = path; + }; + in { ###### interface @@ -33,22 +22,18 @@ in profiles = mkOption { type = types.attrsOf types.path; default = {}; - description = "Set of dconf profile files, installed at <filename>/etc/dconf/profiles/<replaceable>name</replaceable></filename>."; + description = "Set of dconf profile files."; internal = true; }; - packages = mkOption { - type = types.listOf types.package; - default = []; - description = "A list of packages which provide dconf profiles and databases in <filename>/etc/dconf</filename>."; - }; }; }; ###### implementation config = mkIf (cfg.profiles != {} || cfg.enable) { - environment.etc.dconf.source = mkIf (cfg.profiles != {} || cfg.packages != []) cfgDir; + environment.etc = optionalAttrs (cfg.profiles != {}) + (mapAttrs' mkDconfProfile cfg.profiles); services.dbus.packages = [ pkgs.dconf ]; diff --git a/nixos/tests/installed-tests/ibus.nix b/nixos/tests/installed-tests/ibus.nix index a4bc2a7d7de0b..af54b612b507b 100644 --- a/nixos/tests/installed-tests/ibus.nix +++ b/nixos/tests/installed-tests/ibus.nix @@ -5,12 +5,16 @@ makeInstalledTest { testConfig = { i18n.inputMethod.enabled = "ibus"; - systemd.user.services.ibus-daemon = { - serviceConfig.ExecStart = "${pkgs.ibus}/bin/ibus-daemon --xim --verbose"; - wantedBy = [ "graphical-session.target" ]; - partOf = [ "graphical-session.target" ]; - }; }; + preTestScript = '' + # ibus has ibus-desktop-testing-runner but it tries to manage desktop session so we just spawn ibus-daemon ourselves + machine.succeed("ibus-daemon --daemonize --verbose") + ''; + withX11 = true; + + # TODO: ibus-daemon is currently crashing or something + # maybe make ibus systemd service that auto-restarts? + meta.broken = true; } |