Public feed
#600317
#!/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_()