diff options
author | Thomas Tuegel <ttuegel@gmail.com> | 2016-05-01 06:55:35 -0500 |
---|---|---|
committer | Thomas Tuegel <ttuegel@gmail.com> | 2016-05-01 06:55:35 -0500 |
commit | dbe1bb06d9fef156d447437c5de9af07c62371ca (patch) | |
tree | 55e229a234dc29b0e3c6f8ded8b9a96527423728 /nixos/modules/services/x11 | |
parent | 02760890f33ffe8d031f2cf7df4c70b7fdc93b3b (diff) | |
parent | 769a33bedd909dd9f482d9cbb957e400fd3bac88 (diff) | |
download | nixlib-dbe1bb06d9fef156d447437c5de9af07c62371ca.tar nixlib-dbe1bb06d9fef156d447437c5de9af07c62371ca.tar.gz nixlib-dbe1bb06d9fef156d447437c5de9af07c62371ca.tar.bz2 nixlib-dbe1bb06d9fef156d447437c5de9af07c62371ca.tar.lz nixlib-dbe1bb06d9fef156d447437c5de9af07c62371ca.tar.xz nixlib-dbe1bb06d9fef156d447437c5de9af07c62371ca.tar.zst nixlib-dbe1bb06d9fef156d447437c5de9af07c62371ca.zip |
Merge pull request #14741 from cruegge/dbus-activation-environment
xsession: Update DBus activation environment
Diffstat (limited to 'nixos/modules/services/x11')
4 files changed, 23 insertions, 1 deletions
diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index b112fc2422a7..16996b9f96c1 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -165,6 +165,8 @@ in { ''; }; + services.xserver.updateDbusEnvironment = true; + environment.variables.GIO_EXTRA_MODULES = [ "${gnome3.dconf}/lib/gio/modules" "${gnome3.glib_networking.out}/lib/gio/modules" "${gnome3.gvfs}/lib/gio/modules" ]; diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix index 33b6dd32c193..60934ed5f190 100644 --- a/nixos/modules/services/x11/desktop-managers/xfce.nix +++ b/nixos/modules/services/x11/desktop-managers/xfce.nix @@ -42,10 +42,13 @@ in # Set GTK_DATA_PREFIX so that GTK+ can find the Xfce themes. export GTK_DATA_PREFIX=${config.system.path} - exec ${pkgs.stdenv.shell} ${pkgs.xfce.xinitrc} + ${pkgs.stdenv.shell} ${pkgs.xfce.xinitrc} & + waitPID=$! ''; }; + services.xserver.updateDbusEnvironment = true; + environment.systemPackages = [ pkgs.gtk # To get GTK+'s themes. pkgs.hicolor_icon_theme diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index be634fc259a2..376f9f4b46b5 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -126,6 +126,14 @@ let (*) echo "$0: Desktop manager '$desktopManager' not found.";; esac + ${optionalString (cfg.startDbusSession && cfg.updateDbusEnvironment) '' + ${pkgs.glib}/bin/gdbus call --session \ + --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus \ + --method org.freedesktop.DBus.UpdateActivationEnvironment \ + "{$(env | ${pkgs.gnused}/bin/sed "s/'/\\\\'/g; s/\([^=]*\)=\(.*\)/'\1':'\2'/" \ + | ${pkgs.coreutils}/bin/paste -sd,)}" + ''} + test -n "$waitPID" && wait "$waitPID" exit 0 ''; diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index dcf9f820f59c..9cb9c8de31d7 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -233,6 +233,15 @@ in ''; }; + updateDbusEnvironment = mkOption { + type = types.bool; + default = false; + description = '' + Whether to update the DBus activation environment after launching the + desktop manager. + ''; + }; + layout = mkOption { type = types.str; default = "us"; |