Advertisement
noes1s

gcompton.py

Mar 29th, 2013
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.86 KB | None | 0 0
  1. #!/usr/bin/env python2.7
  2. # -*- coding: utf-8 -*-
  3. #
  4. #  GUI for gcompto
  5. #  gcompton.py
  6. #  
  7. #  Copyright 2012 Alfonso Saavedra "Son Link" <sonlink.dourden@gmail.com>
  8.  
  9. import gtk, gtk.glade, gobject
  10. import subprocess, os
  11.  
  12. from commands import getoutput
  13. from time import sleep
  14. from shutil import copy
  15.  
  16. class GUI():
  17.  
  18.     def __init__(self):
  19.         self.proc = ''
  20.         self.glade = gtk.glade.XML("gcompton.glade")
  21.         dic =( { "on_mainwin_destroy": self.quit,
  22.         'on_start_button_clicked': self.ct_start,
  23.         'on_stop_button_clicked': self.ct_stop,
  24.         'on_restart_button_clicked': self.ct_restart,
  25.         'on_add_init_sesion_clicked': self.add_init_session,
  26.         } )
  27.         self.glade.signal_autoconnect(dic)
  28.  
  29.         if self.check_ct():
  30.             self.glade.get_widget('stop_button').set_sensitive(True)
  31.         else:
  32.             self.glade.get_widget('start_button').set_sensitive(True)
  33.  
  34.     def ct_start(self, w=None):
  35.         conf = self.getconf()
  36.         if not self.check_ct():
  37.             if conf:
  38.                 cmd = 'compton ' + conf
  39.                 cmd = cmd.split()
  40.                 print cmd
  41.                 self.proc = subprocess.Popen(cmd)
  42.                 print self.proc
  43.             else:
  44.                 self.proc = subprocess.Popen('compton')
  45.  
  46.         self.glade.get_widget('start_button').set_sensitive(False)
  47.         self.glade.get_widget('stop_button').set_sensitive(True)
  48.  
  49.     def ct_stop(self, w=None):
  50.         if self.proc:
  51.             self.proc.kill()
  52.             self.proc.wait()
  53.         else:
  54.             proc = subprocess.Popen(['killall', '-HUP', 'compton'])
  55.             proc.wait()
  56.         self.glade.get_widget('stop_button').set_sensitive(False)
  57.         self.glade.get_widget('start_button').set_sensitive(True)
  58.  
  59.     def ct_restart(self, w):
  60.         self.ct_stop()
  61.         self.ct_start()
  62.  
  63.     def getconf(self):
  64.         parameters = ''
  65.  
  66.         if self.glade.get_widget('rs_scale').get_value() != 12.0:
  67.             parameters += '-r' + str(self.glade.get_widget('rs_scale').get_value())
  68.  
  69.         if str(self.glade.get_widget('op_scale').get_value()) != '0.75':
  70.             parameters += ' -o ' + str(self.glade.get_widget('op_scale').get_value())
  71.  
  72.         if self.glade.get_widget('lo_scale').get_value() != -15.0:
  73.             parameters += ' -l ' + str(self.glade.get_widget('lo_scale').get_value())
  74.  
  75.         if self.glade.get_widget('to_scale').get_value() != -15.0:
  76.             parameters += ' -t ' + str(self.glade.get_widget('to_scale').get_value())
  77.  
  78.         if self.glade.get_widget('fi_scale').get_value() != 0.028:
  79.             parameters += ' -I ' + str(self.glade.get_widget('fi_scale').get_value())
  80.  
  81.         if self.glade.get_widget('fo_scale').get_value() != 0.03:
  82.             parameters += ' -O ' + str(self.glade.get_widget('fo_scale').get_value())
  83.  
  84.         if self.glade.get_widget('rs_scale').get_value() != 12.0:
  85.             parameters += ' -r ' + str(self.glade.get_widget('rs_scale').get_value())
  86.  
  87.         if self.glade.get_widget('fst_scale').get_value() != 10:
  88.             parameters += ' -D' + str(self.glade.get_widget('fst_scale').get_value())
  89.  
  90.         if self.glade.get_widget('mo_scale').get_value() != 1.0:
  91.             parameters += ' -m ' + str(self.glade.get_widget('mo_scale').get_value())
  92.  
  93.         if self.glade.get_widget('iwo_scale').get_value() != 1.0:
  94.             parameters += ' -i ' + str(self.glade.get_widget('iwo_scale').get_value())
  95.  
  96.         if self.glade.get_widget('owtb_scale').get_value() != 1.0:
  97.             parameters += ' -e ' + str(self.glade.get_widget('owtb_scale').get_value())
  98.  
  99.         if self.glade.get_widget('rs_scale').get_value() != 12.0:
  100.             parameters += ' -r ' + str(self.glade.get_widget('rs_scale').get_value())
  101.  
  102.         if self.glade.get_widget('checkbutton1').get_active():
  103.             parameters += ' -c'
  104.  
  105.         if self.glade.get_widget('checkbutton2').get_active():
  106.             parameters += ' -f'
  107.  
  108.         if self.glade.get_widget('checkbutton3').get_active():
  109.             parameters += ' -C'
  110.  
  111.         if self.glade.get_widget('checkbutton4').get_active():
  112.             parameters += ' -F'
  113.  
  114.         if self.glade.get_widget('checkbutton6').get_active():
  115.             parameters += ' -G'
  116.  
  117.         return parameters
  118.  
  119.     def add_init_session(self, w):
  120.         def close(w, res):
  121.             if res == gtk.RESPONSE_ACCEPT:
  122.                 s = session.get_active_text()
  123.  
  124.  
  125.             w.hide()
  126.  
  127.         dialog = gtk.Dialog(parent=self.glade.get_widget('main_win'), buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
  128.         dialog.connect("response", close)
  129.         label = gtk.Label(str='Añada la siguiente linea en el script de inicio de sesión de su entorno')
  130.         dialog.vbox.add(label)
  131.         print self.getconf()
  132.         label2 = gtk.Label(str='compton %s' % self.getconf())
  133.         dialog.vbox.add(label2)
  134.         session = gtk.combo_box_new_text()
  135.         """"dialog.vbox.add(session)
  136.         # Al añadir entornos dejad siempre Otros al final
  137.         for s in ['openbox', 'pekwm' , 'Otros']:
  138.             session.append_text(s)
  139.         session.set_active(0)"""
  140.         dialog.show_all()
  141.  
  142.     def check_ct(self):
  143.         process = getoutput('ps -A')
  144.         if not 'compton' in process:
  145.             # compton no se esta ejecutando
  146.             print 'No se esta ejecutando'
  147.             return False
  148.         else:
  149.             print 'Se esta ejecutando'
  150.             # Compton se esta ejecutando
  151.             return True
  152.  
  153.     def quit(self, w):
  154.         gtk.main_quit()
  155.  
  156. if __name__ == '__main__':
  157.     g = GUI()
  158.     gtk.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement