Tak jsem to uvedl do funkcni podoby, ale musel jsem udelat par zmen :
- pridat radek from dbus.mainloop.glib import DBusGMainLoop
- zmenit SessionBus na SystemBus
Tak prikladam ten muj vytvor jestli to neni nejaka moc velka prasarna :
#!/usr/bin/env python
# A littel shutdown menu for openbox
#
# Requierments:
# pygtk
# sudo
# python
# gtk
#import os
import gtk
import gtk.glade
import pygtk
import sys
import dbus
from dbus.mainloop.glib import DBusGMainLoop
dbus_loop = DBusGMainLoop()
#bus = dbus.SessionBus(mainloop=dbus_loop)
bus = dbus.SystemBus(mainloop=dbus_loop)
proxy = bus.get_object("org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager")
PM = dbus.Interface(proxy, "org.freedesktop.ConsoleKit.Manager")
# Class Commands
class Commands:
def reboot(self):
PM.Restart() # restar
def shutdown(self):
PM.Stop() # shutdown
# Class Shutdown gui
class ShutdownGui(Commands):
def __init__(self):
self.gladefile = sys.path[0] + "/shutdown_gui.glade"
self.wTree = gtk.glade.XML(self.gladefile)
self.ShutdownBox = self.wTree.get_widget("ShutdownBox")
self.set_button_signals()
def show(self):
self.ShutdownBox.show_all()
def set_button_signals(self):
button_dictonary = {"on_RebootButton_clicked" : self.on_reboot,
"on_ShutdownButton_clicked" : self.on_shutdown,
"on_CancelButton_clicked" : self.on_cancel}
self.wTree.signal_autoconnect(button_dictonary)
def on_reboot(self, data):
self.reboot()
def on_shutdown(self, data):
self.shutdown()
def on_cancel(self, data):
gtk.main_quit()
# Main Program
def main():
shutbox = ShutdownGui()
shutbox.show()
gtk.main()
# Script Trick
if __name__ == "__main__":
main()
sys.exit(0)
Zkusim pripadne jeste pridat par try/catch tak jak v tom tvem skriptu. Kazdopadne aspon nejak to funguje, diky moc za vse K