diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2017-05-16 14:27:06 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2017-05-16 14:27:06 +0200 |
commit | 237d6304de6211646d20581c192f9da969325e25 (patch) | |
tree | 4f1607e17febea17fada7a356c99701f57a2a4c7 | |
parent | 5ad2a0e4dcf229ea9bd4df234d510a64712dddcd (diff) | |
download | arctica-greeter-237d6304de6211646d20581c192f9da969325e25.tar.gz arctica-greeter-237d6304de6211646d20581c192f9da969325e25.tar.bz2 arctica-greeter-237d6304de6211646d20581c192f9da969325e25.zip |
indicator services: Launch inicator power service via systemd before showing the greeter.
-rw-r--r-- | src/arctica-greeter.vala | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/src/arctica-greeter.vala b/src/arctica-greeter.vala index e7e3ba0..314f35f 100644 --- a/src/arctica-greeter.vala +++ b/src/arctica-greeter.vala @@ -556,7 +556,6 @@ public class ArcticaGreeter Environment.set_variable ("GTK_MODULES", "atk-bridge", false); Pid atspi_pid = 0; - Pid systemd_pid = 0; try { @@ -652,6 +651,8 @@ public class ArcticaGreeter debug ("Creating Arctica Greeter"); var greeter = new ArcticaGreeter (do_test_mode); + Pid dummy_pid = 0; + if (!do_test_mode) { @@ -671,12 +672,28 @@ public class ArcticaGreeter null, SpawnFlags.SEARCH_PATH, null, - out systemd_pid); + out dummy_pid); } catch (Error e) { warning ("Error starting Ayatana Indicators Application Service: %s", e.message); } + try + { + string[] argv; + + Shell.parse_argv ("systemctl --user start ayatana-indicator-power", out argv); + Process.spawn_async (null, + argv, + null, + SpawnFlags.SEARCH_PATH, + null, + out dummy_pid); + } + catch (Error e) + { + warning ("Error starting Ayatana Indicators Power Service: %s", e.message); + } /* Make nm-applet hide items the user does not have permissions to interact with */ Environment.set_variable ("NM_APPLET_HIDE_POLICY_ITEMS", "1", true); @@ -705,9 +722,10 @@ public class ArcticaGreeter debug ("Cleaning up"); - if (systemd_pid != 0) + if (!do_test_mode) { - /* Start the indicator services */ + + /* Stop the indicator services */ try { string[] argv; @@ -718,13 +736,28 @@ public class ArcticaGreeter null, SpawnFlags.SEARCH_PATH, null, - out systemd_pid); + out dummy_pid); } catch (Error e) { warning ("Error stopping Ayatana Indicators Application Service: %s", e.message); } - systemd_pid = 0; + try + { + string[] argv; + + Shell.parse_argv ("systemctl --user stop ayatana-indicator-power", out argv); + Process.spawn_async (null, + argv, + null, + SpawnFlags.SEARCH_PATH, + null, + out dummy_pid); + } + catch (Error e) + { + warning ("Error stopping Ayatana Indicators Power Service: %s", e.message); + } } if (atspi_pid != 0) |