3
* GNOME Do is the legal property of its developers. Please refer to the
4
* COPYRIGHT file distributed with this
7
* This program is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation, either version 3 of the License, or
10
* (at your option) any later version.
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
17
* You should have received a copy of the GNU General Public License
18
* along with this program. If not, see <http://www.gnu.org/licenses/>.
22
using System.Diagnostics;
25
using org.freedesktop.DBus;
27
namespace GNOME.Session
32
[Interface ("org.freedesktop.PowerManagement")]
33
interface IPowerManagement
41
private const string ObjectPath = "/org/freedesktop/PowerManagement";
42
private const string BusName = "org.freedesktop.PowerManagement";
44
private static IPowerManagement BusInstance
48
return Bus.Session.GetObject<IPowerManagement> (BusName,
49
new ObjectPath (ObjectPath));
56
public static void Shutdown ()
59
BusInstance.Shutdown ();
61
Console.Error.WriteLine ("Could not find PowerManagement on D-Bus.");
65
public static void Hibernate ()
68
BusInstance.Hibernate ();
70
Console.Error.WriteLine ("Could not find PowerManagement on D-Bus.");
74
public static void Reboot ()
77
BusInstance.Reboot ();
79
Console.Error.WriteLine ("Could not find PowerManagement on D-Bus.");
83
public static void Suspend ()
86
BusInstance.Suspend ();
88
Console.Error.WriteLine ("Could not find PowerManagement on D-Bus.");
92
public static void Logout ()
95
Process.Start ("gnome-session-save", "--kill --silent");
96
} catch (Exception e) {
97
Console.Error.WriteLine ("Could not end GNOME session: " + e.Message);