#!/usr/bin/env python # Author(s): xsacha import sys from PyQt4 import QtGui from libfusionicon import * #Defs def lockItem(action,b): if b: action.setChecked(True) action.setEnabled(False) else: action.setChecked(False) action.setEnabled(True) def open_ccsm(): Popen(['ccsm']) def open_emeraldthemes(): Popen(['emerald-theme-manager']) def reload_wm(): print '* Reloading Window Manager ...' start_wm() def run_wm(str): if active_wm != str: configuration.set('window manager', 'active wm', str) configuration.write(open(config_file, 'w')) print '* switching to', str,'...' start_wm() def runCompiz(): run_wm(compiz) def runMetacity(): run_wm('metacity') def runKwin(): run_wm('kwin') def runXfwm4(): run_wm('xfwm4') def toggleIR(): if int(get_config('compiz options', 'indirect rendering')): print '* disabling Indirect Rendering...' configuration.set('compiz options', 'indirect rendering', '0') else: print '* enabling Indirect Rendering...' configuration.set('compiz options', 'indirect rendering', '1') configuration.write(open(config_file, 'w')) if active_wm == compiz: reload_wm() def toggleLB(): if int(get_config('compiz options', 'loose binding')): print '* disabling Loose Binding...' configuration.set('compiz options', 'loose binding', '0') else: print '* enabling Loose Binding...' configuration.set('compiz options', 'loose binding', '1') configuration.write(open(config_file, 'w')) if active_wm == compiz: reload_wm() def unlockDeco(): if active_wm == compiz: old_dec_list = get_decorator().split() old_decorator = old_dec_list[0] system('killall %s' % (old_decorator)) sleep(1) lockItem(actionEmerald, False) lockItem(actionGWD, False) lockItem(actionKWD, False) def toggleEmerald(): unlockDeco() set_decorator(emerald) lockItem(actionEmerald, True) def toggleGWD(): unlockDeco() set_decorator(gwd) lockItem(actionGWD, True) def toggleKWD(): unlockDeco() set_decorator(kwd) lockItem(actionKWD, True) #Run Menu app = QtGui.QApplication(sys.argv) SysTray = QtGui.QSystemTrayIcon(QtGui.QIcon('/usr/share/pixmaps/fusion-icon.png')) SysTray.setToolTip("Compiz Fusion Icon") SysTray.managerMenu = QtGui.QMenu() if compiz != '': SysTray.managerMenu.addAction("Compiz",runCompiz) if installed('metacity'): SysTray.managerMenu.addAction("Metacity",runMetacity) if installed('kwin'): SysTray.managerMenu.addAction("Kwin",runKwin) if installed('xfwm4'): SysTray.managerMenu.addAction("Xfwm4",runXfwm4) SysTray.optionsMenu = QtGui.QMenu() actionIR = SysTray.optionsMenu.addAction("Indirect Rendering",toggleIR) actionIR.setCheckable(True) actionLB = SysTray.optionsMenu.addAction("Loose Binding",toggleLB) actionLB.setCheckable(True) if always_indirect: lockItem(actionIR, True) elif indirect_rendering: actionIR.setChecked(True) if loose_binding: actionLB.setChecked(True) SysTray.decoratorMenu = QtGui.QMenu() if installed('emerald'): actionEmerald = SysTray.decoratorMenu.addAction("Emerald",toggleEmerald) actionEmerald.setCheckable(True) if decosetting.Value == emerald: lockItem(actionEmerald, True) if installed('gtk-window-decorator'): actionGWD = SysTray.decoratorMenu.addAction("GTK Decorator",toggleGWD) actionGWD.setCheckable(True) if decosetting.Value == gwd: lockItem(actionGWD, True) if installed('kde-window-decorator'): actionKWD = SysTray.decoratorMenu.addAction("KDE Decorator",toggleKWD) actionKWD.setCheckable(True) if decosetting.Value == kwd: lockItem(actionKWD, True) SysTray.menu = QtGui.QMenu() SysTray.menu.addAction("Settings Manager",open_ccsm) SysTray.menu.addAction("Emerald Theme Manager",open_emeraldthemes) SysTray.menu.addSeparator() SysTray.menu.addAction("Reload Window Manager",reload_wm) SysTray.menu.addAction("Select Window Manager").setMenu(SysTray.managerMenu) SysTray.menu.addAction("Compiz Options").setMenu(SysTray.optionsMenu) SysTray.menu.addAction("Select Window Decorator").setMenu(SysTray.decoratorMenu) SysTray.menu.addSeparator() SysTray.menu.addAction("Quit",app.quit) SysTray.setContextMenu(SysTray.menu) SysTray.show() if active_wm == compiz: reload_wm() app.exec_()