All pastes #159157 Raw Edit

nesl247

public python v1 · immutable
·published 2006-09-02 19:13 UTC
rendered paste body
#!/usr/bin/pythonimport osimport pygtkpygtk.require('2.0')import gtk, gobjectimport egg.trayiconis_installed = []apps = ("compiz", "gcompizthemer", "cgwd", "gnome-window-decorator")decorators = ("cgwd", "gnome-window-decorator")for x in apps:	if os.path.exists('/usr/bin/' + x):		is_installed.append(x)for x in decorators:	if x in is_installed:		decorator = x		breakdef start_compiz():	gobject.spawn_async(['compiz', '--replace', 'gconf'], \			  flags=gobject.SPAWN_SEARCH_PATH)def start_decorator():	if decorator == decorators[1]:		gobject.spawn_async(['cgwd', '--replace'], \			flags=gobject.SPAWN_SEARCH_PATH)	else:		gobject.spawn_asynx(['gnome-window-decorator', '--replace'], \			flags=gobject.SPAWN_SEARCH_PATH)def place_menu(menu):	(width, height) = menu.size_request()	(menu_xpos, menu_ypos) = tray.window.get_origin()	menu_xpos = menu_xpos + tray.allocation.x        menu_ypos = menu_ypos + tray.allocation.y	if menu_ypos > tray.get_screen().get_height() / 2:                menu_ypos -= height + 1        else:                menu_ypos += tray.allocation.height + 1        x = menu_xpos;        y = menu_ypos;        push_in = True;	return (x, y, push_in)def gconf_menu_activate(widget):	gobject.spawn_async(['gconf-editor', '/apps/compiz'], flags=gobject.SPAWN_SEARCH_PATH)def cpm_menu_activate(widget):	gobject.spawn_async(['cpm'], flags=gobject.SPAWN_SEARCH_PATH)def gcompizthemer_menu_activate(widget):	gobject.spawn_async(['gcompizthemer'], flags=gobject.SPAWN_SEARCH_PATH)def compiz_menu_activate(widget):	start_compiz()def decorator_menu_activate(widget):	start_decorator()def compiz_decorator_menu_activate(widget):	start_compiz()	start_decorator()def metacity_menu_activate(widget):	os.system("killall " + decorator)	gobject.spawn_async(['metacity', '--replace', 'gconf'], \			     flags=gobject.SPAWN_SEARCH_PATH)def quit_menu_activate(widget):	gtk.main_quit()def callback(widget, ev):	menu.set_screen(widget.get_screen())	menu.popup(None, None, place_menu, ev.button, ev.time)menu = gtk.Menu()item = gtk.ImageMenuItem( "Edit with Gconf" )item.connect("activate", gconf_menu_activate)_img = gtk.Image()_img.set_from_stock("gtk-preferences", gtk.ICON_SIZE_BUTTON)item.set_image(_img)menu.append(item)item = gtk.ImageMenuItem ( "Edit with CPM" )item.connect("activate", cpm_menu_activate)_img = gtk.Image()_img.set_from_stock("gtk-preferences", gtk.ICON_SIZE_BUTTON)item.set_image(_img)menu.append(item)item = gtk.SeparatorMenuItem()menu.append(item)item = gtk.ImageMenuItem( "Theme Selector" )item.connect("activate", gcompizthemer_menu_activate)_img = gtk.Image()_img.set_from_stock("gtk-select-color", gtk.ICON_SIZE_BUTTON)item.set_image(_img)menu.append(item)item = gtk.SeparatorMenuItem()menu.append(item)item = gtk.MenuItem("Restart Compiz")item.connect("activate", compiz_menu_activate)menu.append(item)item = gtk.MenuItem("Restart " + decorator)item.connect("activate", decorator_menu_activate)menu.append(item)item = gtk.MenuItem("Restart Both")item.connect("activate", compiz_decorator_menu_activate)menu.append(item)item = gtk.SeparatorMenuItem()menu.append(item)item = gtk.MenuItem("Switch to metacity")item.connect("activate", metacity_menu_activate)menu.append(item)item = gtk.SeparatorMenuItem()menu.append(item)item = gtk.ImageMenuItem(stock_id=gtk.STOCK_QUIT)item.connect("activate", quit_menu_activate)menu.append(item)menu.show_all()# Set the systray icontray = egg.trayicon.TrayIcon("TrayIcon")box = gtk.EventBox()pixbuf = gtk.gdk.pixbuf_new_from_file("/usr/share/compiz/logo24.png")image = gtk.Image()image.set_from_pixbuf(pixbuf)box.add(image)tray.add(box)tray.show_all()	box.connect("button-press-event", callback)_decorator=os.system("ps -A | grep " + decorator)compiz=os.system("ps -A | grep compiz")compizstart=os.system("ps -A | grep compiz-start")if (compiz and _decorator) == (256 or '') or compizstart == (256 or ''):	start_compiz()	start_decorator()elif compiz == (256 or ''):	start_compiz()elif _decorator == (256 or ''):	start_decorator()gtk.main()