Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python2.7
- # -*- coding: utf-8 -*-
- #
- # GUI for gcompto
- # gcompton.py
- #
- # Copyright 2012 Alfonso Saavedra "Son Link" <sonlink.dourden@gmail.com>
- import gtk, gtk.glade, gobject
- import subprocess, os
- from commands import getoutput
- from time import sleep
- from shutil import copy
- class GUI():
- def __init__(self):
- self.proc = ''
- self.glade = gtk.glade.XML("gcompton.glade")
- dic =( { "on_mainwin_destroy": self.quit,
- 'on_start_button_clicked': self.ct_start,
- 'on_stop_button_clicked': self.ct_stop,
- 'on_restart_button_clicked': self.ct_restart,
- 'on_add_init_sesion_clicked': self.add_init_session,
- } )
- self.glade.signal_autoconnect(dic)
- if self.check_ct():
- self.glade.get_widget('stop_button').set_sensitive(True)
- else:
- self.glade.get_widget('start_button').set_sensitive(True)
- def ct_start(self, w=None):
- conf = self.getconf()
- if not self.check_ct():
- if conf:
- cmd = 'compton ' + conf
- cmd = cmd.split()
- print cmd
- self.proc = subprocess.Popen(cmd)
- print self.proc
- else:
- self.proc = subprocess.Popen('compton')
- self.glade.get_widget('start_button').set_sensitive(False)
- self.glade.get_widget('stop_button').set_sensitive(True)
- def ct_stop(self, w=None):
- if self.proc:
- self.proc.kill()
- self.proc.wait()
- else:
- proc = subprocess.Popen(['killall', '-HUP', 'compton'])
- proc.wait()
- self.glade.get_widget('stop_button').set_sensitive(False)
- self.glade.get_widget('start_button').set_sensitive(True)
- def ct_restart(self, w):
- self.ct_stop()
- self.ct_start()
- def getconf(self):
- parameters = ''
- if self.glade.get_widget('rs_scale').get_value() != 12.0:
- parameters += '-r' + str(self.glade.get_widget('rs_scale').get_value())
- if str(self.glade.get_widget('op_scale').get_value()) != '0.75':
- parameters += ' -o ' + str(self.glade.get_widget('op_scale').get_value())
- if self.glade.get_widget('lo_scale').get_value() != -15.0:
- parameters += ' -l ' + str(self.glade.get_widget('lo_scale').get_value())
- if self.glade.get_widget('to_scale').get_value() != -15.0:
- parameters += ' -t ' + str(self.glade.get_widget('to_scale').get_value())
- if self.glade.get_widget('fi_scale').get_value() != 0.028:
- parameters += ' -I ' + str(self.glade.get_widget('fi_scale').get_value())
- if self.glade.get_widget('fo_scale').get_value() != 0.03:
- parameters += ' -O ' + str(self.glade.get_widget('fo_scale').get_value())
- if self.glade.get_widget('rs_scale').get_value() != 12.0:
- parameters += ' -r ' + str(self.glade.get_widget('rs_scale').get_value())
- if self.glade.get_widget('fst_scale').get_value() != 10:
- parameters += ' -D' + str(self.glade.get_widget('fst_scale').get_value())
- if self.glade.get_widget('mo_scale').get_value() != 1.0:
- parameters += ' -m ' + str(self.glade.get_widget('mo_scale').get_value())
- if self.glade.get_widget('iwo_scale').get_value() != 1.0:
- parameters += ' -i ' + str(self.glade.get_widget('iwo_scale').get_value())
- if self.glade.get_widget('owtb_scale').get_value() != 1.0:
- parameters += ' -e ' + str(self.glade.get_widget('owtb_scale').get_value())
- if self.glade.get_widget('rs_scale').get_value() != 12.0:
- parameters += ' -r ' + str(self.glade.get_widget('rs_scale').get_value())
- if self.glade.get_widget('checkbutton1').get_active():
- parameters += ' -c'
- if self.glade.get_widget('checkbutton2').get_active():
- parameters += ' -f'
- if self.glade.get_widget('checkbutton3').get_active():
- parameters += ' -C'
- if self.glade.get_widget('checkbutton4').get_active():
- parameters += ' -F'
- if self.glade.get_widget('checkbutton6').get_active():
- parameters += ' -G'
- return parameters
- def add_init_session(self, w):
- def close(w, res):
- if res == gtk.RESPONSE_ACCEPT:
- s = session.get_active_text()
- w.hide()
- dialog = gtk.Dialog(parent=self.glade.get_widget('main_win'), buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
- dialog.connect("response", close)
- label = gtk.Label(str='Añada la siguiente linea en el script de inicio de sesión de su entorno')
- dialog.vbox.add(label)
- print self.getconf()
- label2 = gtk.Label(str='compton %s' % self.getconf())
- dialog.vbox.add(label2)
- session = gtk.combo_box_new_text()
- """"dialog.vbox.add(session)
- # Al añadir entornos dejad siempre Otros al final
- for s in ['openbox', 'pekwm' , 'Otros']:
- session.append_text(s)
- session.set_active(0)"""
- dialog.show_all()
- def check_ct(self):
- process = getoutput('ps -A')
- if not 'compton' in process:
- # compton no se esta ejecutando
- print 'No se esta ejecutando'
- return False
- else:
- print 'Se esta ejecutando'
- # Compton se esta ejecutando
- return True
- def quit(self, w):
- gtk.main_quit()
- if __name__ == '__main__':
- g = GUI()
- gtk.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement