rendered paste body#! /usr/bin/python
import os
import pygtk
pygtk.require('2.0')
import gtk, gobject
import egg.trayicon
WGII = gtk.Invisible()
def start_compiz():
global WGII
WGII.selection_owner_set(atom)
os.system("killall gnome-window-decorator")
gobject.spawn_async(['gnome-window-decorator'], \
flags=gobject.SPAWN_SEARCH_PATH)
gobject.spawn_async(['compiz', '--strict-binding', '--indirect-rendering', '--replace', 'gconf'], \
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 configure_menu_activate(widget):
gobject.spawn_async(['gset-compiz'], flags=gobject.SPAWN_SEARCH_PATH)
def theme_menu_activate(widget):
gobject.spawn_async(['gcompizthemer'], flags=gobject.SPAWN_SEARCH_PATH)
def compiz_menu_activate(widget):
start_compiz()
def metacity_menu_activate(widget):
global WGII
WGII.destroy()
WGII = gtk.Invisible()
os.system("killall gnome-window-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(stock_id=gtk.STOCK_PREFERENCES)
item.connect("activate", configure_menu_activate)
menu.append(item)
item = gtk.MenuItem("Themes")
item.connect("activate", theme_menu_activate)
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("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()
tray = 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()
atom = gtk.gdk.atom_intern("_COMPIZ_GL_INCLUDE_INFERIORS")
box.connect("button-press-event", callback)
start_compiz()
gtk.main()