Guest User

Untitled

a guest
Mar 19th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.50 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. import gi.repository
  4. gi.require_version('Budgie', '1.0')
  5. from gi.repository import Budgie, GObject, Gtk, Gdk
  6.  
  7. class myapplet(GObject.GObject, Budgie.Plugin):
  8.  
  9. __gtype_name__ = "myapplet"
  10.  
  11. def __int__(self):
  12.  
  13. GObject.Object.__init__(self)
  14.  
  15. def do_get_panel_widget(self, uuid):
  16.  
  17. return myappletApplet(uuid)
  18.  
  19. class myappletApplet(Budgie.Applet):
  20.  
  21. button = None
  22. manager = None
  23.  
  24. def __init__(self, uuid):
  25.  
  26. Budgie.Applet.__init__(self)
  27.  
  28. #create a toggle button in panel
  29. self.button = Gtk.ToggleButton.new()
  30. self.button.set_relief(Gtk.ReliefStyle.NONE)
  31. self.button.set_active(False)
  32. self.button.set_tooltip_text("Apple Menu")
  33. box1 = Gtk.EventBox()
  34. box1.add(self.button)
  35. self.add(box1)
  36.  
  37. img = Gtk.Image.new_from_icon_name("apple", Gtk.IconSize.BUTTON)
  38. self.button.add(img)
  39. box1.show_all()
  40. self.show_all()
  41.  
  42. #create a popover
  43. self.popover = Budgie.Popover.new(self.button)
  44.  
  45.  
  46. #create a box
  47. box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
  48. self.popover.add(box)
  49.  
  50. #create separators
  51. separator1 = Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL)
  52. box.pack_start(separator1, True, True, 0)
  53.  
  54. separator2 = Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL)
  55. box.pack_start(separator2, True, True, 0)
  56.  
  57. separator3 = Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL)
  58. box.pack_start(separator3, True, True, 0)
  59.  
  60. separator4 = Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL)
  61. box.pack_start(separator4, True, True, 0)
  62.  
  63. separator5 = Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL)
  64. box.pack_start(separator5, True, True, 0)
  65.  
  66. #events
  67. def event_press(box2, event_press):
  68. self.popover.hide()
  69. self.button.set_active(False)
  70. import subprocess
  71. subprocess.call(["hardinfo"])
  72.  
  73. def event_press1(box3, event_press1):
  74. self.popover.hide()
  75. self.button.set_active(False)
  76. import subprocess
  77. subprocess.call(["gnome-control-center"])
  78.  
  79. def event_press2(box4, event_press2):
  80. self.popover.hide()
  81. self.button.set_active(False)
  82. import subprocess
  83. subprocess.call(["gnome-software"])
  84.  
  85. def event_press3(box5, event_press3):
  86. if self.pop.get_visible():
  87. self.pop.hide()
  88. else:
  89. self.pop.show_all()
  90.  
  91. def event_press4(box6, event_press4):
  92. self.popover.hide()
  93. self.button.set_active(False)
  94. import subprocess
  95. subprocess.run("xkill")
  96.  
  97. def event_press5(box7, event_press5):
  98. self.popover.hide()
  99. self.button.set_active(False)
  100. import subprocess
  101. subprocess.call(["systemctl", "suspend"])
  102.  
  103. def event_press6(box8, event_press6):
  104. self.popover.hide()
  105. self.button.set_active(False)
  106. import subprocess
  107. subprocess.call(["gnome-session-quit", "--reboot"])
  108.  
  109. def event_press7(box9, event_press7):
  110. self.popover.hide()
  111. self.button.set_active(False)
  112. import subprocess
  113. subprocess.call(["gnome-session-quit", "--power-off"])
  114.  
  115. def event_press8(box10, event_press8):
  116. self.popover.hide()
  117. self.button.set_active(False)
  118. import subprocess
  119. subprocess.call(["gnome-session-quit"])
  120.  
  121.  
  122. #create popover items
  123. box2 = Gtk.EventBox()
  124. label1 = Gtk.Label("About This Pc")
  125. label1.set_size_request(250, 30)
  126. label1.set_xalign(0.1)
  127. #label1.set_use_markup(True)
  128. box2.connect("button-press-event", event_press)
  129. box2.add(label1)
  130. box.pack_start(box2, True, True, 0)
  131. box.reorder_child(box2, 0)
  132.  
  133. box3 = Gtk.EventBox()
  134. label2 = Gtk.Label("System Settings...")
  135. label2.set_size_request(250, 25)
  136. label2.set_xalign(0.12)
  137. #label2.set_use_markup(True)
  138. box3.connect("button-press-event", event_press1)
  139. box3.add(label2)
  140. box.pack_start(box3, True, True, 0)
  141. box.reorder_child(box3, 2)
  142.  
  143. box4 = Gtk.EventBox()
  144. label3 = Gtk.Label("Software...")
  145. label3.set_size_request(250, 25)
  146. label3.set_xalign(0.09)
  147. label3.set_justify(Gtk.Justification.LEFT)
  148. box4.connect("button-press-event", event_press2)
  149. box4.add(label3)
  150. box.pack_start(box4, True, True, 0)
  151. box.reorder_child(box4, 3)
  152.  
  153. box5 = Gtk.EventBox()
  154. label4 = Gtk.Label("Recent Items")
  155. label4.set_size_request(250, 30)
  156. label4.set_xalign(0.1)
  157. box5.connect("button-press-event", event_press3)
  158. box5.add(label4)
  159. box.pack_start(box5, True, True, 0)
  160. box.reorder_child(box5, 5)
  161.  
  162. self.pop = Budgie.Popover.new(box5)
  163. self.pop.set_position(Gtk.PositionType.RIGHT)
  164. boxy = Gtk.Box()
  165. boxy = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
  166. boxy.set_size_request(250, 400)
  167. self.pop.add(boxy)
  168. recentchooserwidget = Gtk.RecentChooserWidget()
  169. boxy.add(recentchooserwidget)
  170.  
  171. box6 = Gtk.EventBox()
  172. label5 = Gtk.Label("Force Quit")
  173. label5.set_size_request(250, 30)
  174. label5.set_xalign(0.09)
  175. box6.connect("button-press-event", event_press4)
  176. box6.add(label5)
  177. box.pack_start(box6, True, True, 0)
  178. box.reorder_child(box6, 7)
  179.  
  180. box7 = Gtk.EventBox()
  181. label6 = Gtk.Label("Sleep")
  182. label6.set_size_request(250, 20)
  183. label6.set_xalign(0.08)
  184. box7.connect("button-press-event", event_press5)
  185. box7.add(label6)
  186. box.pack_start(box7, True, True, 0)
  187. box.reorder_child(box7, 9)
  188.  
  189. box8 = Gtk.EventBox()
  190. label7 = Gtk.Label("Restart")
  191. label7.set_size_request(250, 20)
  192. label7.set_xalign(0.08)
  193. box8.connect("button-press-event", event_press6)
  194. box8.add(label7)
  195. box.pack_start(box8, True, True, 0)
  196. box.reorder_child(box8, 10)
  197.  
  198. box9 = Gtk.EventBox()
  199. label8 = Gtk.Label("ShutDown")
  200. label8.set_size_request(250, 20)
  201. label8.set_xalign(0.09)
  202. box9.connect("button-press-event", event_press7)
  203. box9.add(label8)
  204. box.pack_start(box9, True, True, 0)
  205. box.reorder_child(box9, 11)
  206.  
  207. box10 = Gtk.EventBox()
  208. label9 = Gtk.Label("LogOuttttCtrAltDel")
  209. label9.set_size_request(250, 30)
  210. label9.set_xalign(0.23)
  211. box10.connect("button-press-event", event_press8)
  212. box10.add(label9)
  213. box.pack_start(box10, True, True, 0)
  214.  
  215. #button signal
  216. self.button.connect("toggled", self.on_button_toggled, self.popover)
  217.  
  218.  
  219. def on_button_toggled(self, button, popover):
  220.  
  221. if self.button.get_active():
  222.  
  223. self.popover.show_all()
  224.  
  225.  
  226. else:
  227.  
  228. self.popover.hide()
  229. self.pop.hide()
  230.  
  231. [Plugin]
  232. Loader=python3
  233. Module=someapp
  234. Name=Some App
  235. Description=Obviously an App
  236. Authors=James Bond
  237. Copyright=Copyright © 2018 007
  238. Website=some_website
  239. Icon=firefox
Add Comment
Please, Sign In to add comment