Public feed #600317

Miscellany

public text v1 · immutable
Raw Edit
·published 2007-07-02 19:22 UTC
rendered paste body
#!/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_()