Guest User

Brightness Lord

a guest
Jun 26th, 2013
550
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.87 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. import gtk
  4. #import sys
  5. import os
  6. global ab
  7. ab = 0
  8.  
  9. class SystrayIconApp:
  10.  
  11.     def __init__(self):
  12.         self.tray = gtk.StatusIcon()
  13.         self.tray.set_from_file("desktop-icon.png")
  14.         self.tray.connect('popup-menu', self.on_right_click)
  15.         self.tray.connect('activate', self.on_left_click)
  16.         self.tray.set_tooltip(('Brightness Lord'))
  17.  
  18.  
  19.         #global window
  20.         self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
  21.         self.window.set_title("Brightness Lord")
  22.         self.window.set_position(gtk.WIN_POS_MOUSE)
  23.         self.window.set_default_size(20, 150)
  24.         gtk.Window.set_decorated(self.window,0)
  25.         adjustment = gtk.Adjustment(value=0, lower=0, upper=0.9)
  26.         self.scale = gtk.VScale(adjustment)
  27.         #self.scale.set_digits(1)
  28.         self.scale.set_draw_value(0)
  29.         self.scale.set_update_policy(gtk.UPDATE_DELAYED)
  30.          
  31.         self.window.connect("destroy", lambda w: gtk.main_quit())
  32.         self.scale.connect("value-changed", self.scale_moved)
  33.            
  34.         self.window.add(self.scale)
  35.        
  36.  
  37.     def on_right_click(self, icon, event_button, event_time):
  38.         self.make_menu(event_button, event_time)
  39.  
  40.  
  41.     def make_menu(self, event_button, event_time):
  42.         menu = gtk.Menu()
  43.  
  44.         clear = gtk.MenuItem("Display OFF")
  45.         clear.show()
  46.         menu.append(clear)
  47.         clear.connect('activate', self.off)
  48.  
  49.         #show about dialog
  50.         about = gtk.MenuItem("About")
  51.         about.show()
  52.         menu.append(about)
  53.         about.connect('activate', self.show_about_dialog)
  54.  
  55.         # add quit item
  56.         quit = gtk.MenuItem("Quit")
  57.         quit.show()
  58.         menu.append(quit)
  59.         quit.connect('activate', gtk.main_quit)
  60.  
  61.         menu.popup(None, None, gtk.status_icon_position_menu,
  62.                    event_button, event_time, self.tray)
  63.  
  64.     def on_left_click(self, widget):
  65.         global ab
  66.         if ab == 0:
  67.             self.window.show_all()
  68.             ab = 1
  69.         else:
  70.             self.window.hide()
  71.             ab = 0
  72.  
  73.     def show_about_dialog(self, widget):
  74.         about_dialog = gtk.AboutDialog()
  75.         about_dialog.set_destroy_with_parent (True)
  76.         about_dialog.set_icon_name ("Brightness Lord")
  77.         about_dialog.set_name('Brightness Lord')
  78.         about_dialog.set_version('0.1')
  79.         about_dialog.set_comments(("Program to control brightness and turn monitor off"))
  80.         about_dialog.set_authors(['Avogadrus'])
  81.         about_dialog.run()
  82.         about_dialog.destroy()
  83.  
  84.     def scale_moved(self, event):
  85.         os.system("xrandr --output $(xrandr --current | awk '/ connected/ { print $1 }') --brightness " + str(1 - round(self.scale.get_value(),1)) )
  86.  
  87.     def off(self, widget):
  88.         os.system("xset dpms force off")
  89.  
  90. if __name__ == "__main__":
  91.     SystrayIconApp()
  92.     gtk.main()
Advertisement
Add Comment
Please, Sign In to add comment