Date: Saturday, June 24, 2017 @ 20:22:35 Author: bgyorgy Revision: 240850
Add back screenlets and screenlets-pack-basic packages The insecure pywebkitgtk dependency is removed. Added: screenlets-pack-basic/ screenlets-pack-basic/trunk/ screenlets-pack-basic/trunk/PKGBUILD screenlets-pack-basic/trunk/fix-screenlets.patch screenlets/ screenlets/trunk/ screenlets/trunk/PKGBUILD screenlets/trunk/bs4-port.patch screenlets/trunk/drop-webkit.patch --------------------------------------------------+ screenlets-pack-basic/trunk/PKGBUILD | 51 ++++ screenlets-pack-basic/trunk/fix-screenlets.patch | 200 +++++++++++++++++++ screenlets/trunk/PKGBUILD | 53 +++++ screenlets/trunk/bs4-port.patch | 21 ++ screenlets/trunk/drop-webkit.patch | 220 +++++++++++++++++++++ 5 files changed, 545 insertions(+) Added: screenlets/trunk/PKGBUILD =================================================================== --- screenlets/trunk/PKGBUILD (rev 0) +++ screenlets/trunk/PKGBUILD 2017-06-24 20:22:35 UTC (rev 240850) @@ -0,0 +1,53 @@ +# $Id$ +# Maintainer: Balló György <ballogyor+arch at gmail dot com> +# Contributor: Roman Kyrylych <[email protected]> +# Contributor: javonera <[email protected]> + +pkgname=screenlets +pkgver=0.1.7 +pkgrel=1 +pkgdesc="Widget framework that consists of small owner-drawn applications" +arch=('any') +url="https://launchpad.net/screenlets" +license=('GPL3') +depends=('python2-beautifulsoup4' 'python2-dbus' 'python2-gconf' 'python2-gnomekeyring' + 'python2-wnck' 'python2-xdg') +optdepends=('screenlets-pack-basic: Desktop widgets') +options=('!emptydirs') +source=(https://launchpad.net/screenlets/trunk/$pkgver/+download/$pkgname-$pkgver.tar.bz2{,.asc} + drop-webkit.patch + bs4-port.patch) +validpgpkeys=('D82D1D02396B27DC5045E356A01AFB1B15E8CCA4' # Guido Tabbernuk + '1F78BFA38F0D87A5E007D332990F03C13116C9F7') # Hrotkó Gábor +sha256sums=('e3c2575461051f4e39713edebc93284f35649a54ce5a068a4090f8d07a91da57' + 'SKIP' + '2283836998e7a249f61eec408fc4b4432391c060463c41f79b579761b6dda032' + '0e12e18c0b2caeac804b1fcfdf82c868a8270d24cda4a94f28302fa3ef03c2a9') + +prepare() { + cd $pkgname-$pkgver + + # Remove insecure pywebkitgtk dependency + patch -Np1 -i ../drop-webkit.patch + + # Port to BeautifulSoup 4 + patch -Np1 -i ../bs4-port.patch + + # Update deprecated icon names + sed -i 's/gtk-close/window-close/ + s/gtk-properties/document-properties/' src/lib/__init__.py + + # Python2 fix + sed -i 's@^#!.*python$@#!/usr/bin/python2@' src/share/screenlets-manager/*.py + sed -i 's/python -u/python2 -u/' src/bin/* src/lib/*.py src/share/screenlets-manager/*.py +} + +build() { + cd $pkgname-$pkgver + python2 setup.py build +} + +package() { + cd $pkgname-$pkgver + python2 setup.py install --root=$pkgdir --optimize=1 +} Property changes on: screenlets/trunk/PKGBUILD ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: screenlets/trunk/bs4-port.patch =================================================================== --- screenlets/trunk/bs4-port.patch (rev 0) +++ screenlets/trunk/bs4-port.patch 2017-06-24 20:22:35 UTC (rev 240850) @@ -0,0 +1,21 @@ +diff -Naur screenlets-0.1.7.orig/src/lib/utils.py screenlets-0.1.7/src/lib/utils.py +--- screenlets-0.1.7.orig/src/lib/utils.py 2017-01-30 21:36:27.000000000 +0100 ++++ screenlets-0.1.7/src/lib/utils.py 2017-06-24 21:37:59.383230449 +0200 +@@ -33,7 +33,7 @@ + import subprocess + import commands + from HTMLParser import HTMLParser +-from BeautifulSoup import BeautifulStoneSoup ++from bs4 import BeautifulSoup + from xdg.BaseDirectory import * + + try: +@@ -98,7 +98,7 @@ + s = MLStripper() + s.feed(html) + no_html = s.get_data() +- decoded = BeautifulStoneSoup(no_html, convertEntities=BeautifulStoneSoup.HTML_ENTITIES) ++ decoded = BeautifulSoup(no_html).get_text() + result = decoded.encode("UTF-8") + return result.strip(" \n") + Added: screenlets/trunk/drop-webkit.patch =================================================================== --- screenlets/trunk/drop-webkit.patch (rev 0) +++ screenlets/trunk/drop-webkit.patch 2017-06-24 20:22:35 UTC (rev 240850) @@ -0,0 +1,220 @@ +diff -Naur screenlets-0.1.7.orig/screenlets-manager.in screenlets-0.1.7/screenlets-manager.in +--- screenlets-0.1.7.orig/screenlets-manager.in 2017-01-30 21:36:27.000000000 +0100 ++++ screenlets-0.1.7/screenlets-manager.in 2017-06-24 12:35:39.072939002 +0200 +@@ -2,6 +2,5 @@ + src/share/screenlets-manager/screenlets-daemon.py + src/share/screenlets-manager/screenlets-manager.py + src/share/screenlets-manager/screenlets-packager.py +-src/share/screenlets-manager/WidgetScreenlet.py + src/lib/install.py + src/lib/utils.py +diff -Naur screenlets-0.1.7.orig/setup.py screenlets-0.1.7/setup.py +--- screenlets-0.1.7.orig/setup.py 2017-01-30 21:36:27.000000000 +0100 ++++ screenlets-0.1.7/setup.py 2017-06-24 12:37:54.663512181 +0200 +@@ -93,9 +93,7 @@ + 'src/share/screenlets-manager/noimage.svg', + 'src/share/screenlets-manager/KarambaScreenlet.py', + 'src/share/screenlets-manager/widget.png', +- 'src/share/screenlets-manager/WidgetScreenlet.py', + 'src/share/screenlets-manager/webframe.png', +- 'src/share/screenlets-manager/WebframeScreenlet.py', + 'src/share/screenlets-manager/karamba.png'])) + + +diff -Naur screenlets-0.1.7.orig/src/share/screenlets-manager/screenlets-manager.py screenlets-0.1.7/src/share/screenlets-manager/screenlets-manager.py +--- screenlets-0.1.7.orig/src/share/screenlets-manager/screenlets-manager.py 2017-01-30 21:36:27.000000000 +0100 ++++ screenlets-0.1.7/src/share/screenlets-manager/screenlets-manager.py 2017-06-24 12:40:13.327504286 +0200 +@@ -461,7 +461,7 @@ + but8.set_alignment(0,0.5) + but9.set_alignment(0,0.5) + but1.set_tooltip_text(_("Launch/add a new instance of the selected Screenlet ...")) +- but2.set_tooltip_text(_("Install a new Screenlet, SuperKaramba or Web Widget or Web Application ...")) ++ but2.set_tooltip_text(_("Install a new Screenlet or SuperKaramba ...")) + but3.set_tooltip_text(_("Permanently uninstall/delete the currently selected Screenlet ...")) + but4.set_tooltip_text(_("Reset this Screenlet configuration (will only work if Screenlet isn't running)")) + but5.set_tooltip_text(_("Install new theme for this screenlet")) +@@ -974,12 +974,6 @@ + button = gtk.RadioButton(button, _('Install SuperKaramba Theme')) + install_rbs.pack_start(button, True, True, 0) + button.show() +- button = gtk.RadioButton(button, _('Convert Web Widget')) +- install_rbs.pack_start(button, True, True, 0) +- button.show() +- button = gtk.RadioButton(button, _('Install Web Application')) +- install_rbs.pack_start(button, True, True, 0) +- button.show() + + dialog = gtk.Dialog(_("Install"),self.window, + gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, +@@ -995,10 +989,6 @@ + active_label = active_radios[0].get_label() + if active_label in (_('Install Screenlet'), _('Install SuperKaramba Theme')): + self.show_install_dialog() +- elif active_label == _('Convert Web Widget'): +- self.show_widget_converter() +- elif active_label == _('Install Web Application'): +- self.show_webapp() + dialog.destroy() + + def show_options_ui(self): +@@ -1078,160 +1068,6 @@ + f.close() + dialog.destroy() + +- def show_webapp(self): +- label1 = gtk.Label(_('Web Application Url')) +- label2 = gtk.Label(_('Web Application Name')) +- code = gtk.Entry() +- name = gtk.Entry() +- h = gtk.HBox() +- h1 = gtk.HBox() +- h.pack_start(label1,False,False) +- h.pack_start(code,True,True) +- h1.pack_start(label2,False,False) +- h1.pack_start(name,True,True) +- dialog = gtk.Dialog(_("Install Web Application"),self.window, +- gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, +- (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, +- gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) +- label1.show() +- label2.show() +- code.show() +- name.show() +- h.show() +- h1.show() +- dialog.vbox.pack_start(h,False,False,5) +- dialog.vbox.pack_start(h1,False,False,5) +- +- +- resp = dialog.run() +- ret = None +- if resp == gtk.RESPONSE_ACCEPT: +- if code.get_text() != '': +- if name.get_text() != '': +- try: +- a = name.get_text() +- a = a.replace(' ','') +- if os.path.isdir(DIR_USER + '/' + a):#found_path != None: +- if screenlets.show_question(None,(_("There is already a screenlet with that name installed\nDo you wish to continue?") )): +- pass +- else: +- return False +- os.system('mkdir -p ' +DIR_USER + '/' + a + '/themes/default') +- os.system('mkdir -p ' +DIR_USER + '/' + a + '/mozilla') # probably not needed since webkit +- # this is just to install something if basic pack is not installed +- os.system('cp ' + screenlets.INSTALL_PREFIX + '/share/screenlets-manager/WebframeScreenlet.py ' +DIR_USER + '/' + a + '/' + a + 'Screenlet.py') +- os.system('cp ' + screenlets.INSTALL_PREFIX + '/share/screenlets-manager/webframe.png ' +DIR_USER + '/' + a + '/icon.png') +- os.system('cp ' + screenlets.INSTALL_PREFIX + '/share/screenlets-manager/prefs.js ' +DIR_USER + '/' + a + '/mozilla') +- os.system('cp ' + screenlets.INSTALL_PREFIX + '/share/screenlets-manager/webframe.png ' +DIR_USER + '/' + a + '/themes/default') +- # install the one from basic pack (probably fullest and most updated) +- os.system('cp ' + screenlets.INSTALL_PREFIX + '/share/screenlets/screenlets-pack-basic/Webframe/WebframeScreenlet.py ' +DIR_USER + '/' + a + '/' + a + 'Screenlet.py') +- os.system('cp ' + screenlets.INSTALL_PREFIX + '/share/screenlets/screenlets-pack-basic/Webframe/icon* ' +DIR_USER + '/' + a) +- os.system('cp ' + screenlets.INSTALL_PREFIX + '/share/screenlets/screenlets-pack-basic/Webframe/*.txt ' +DIR_USER + '/' + a) +- os.system('cp -r ' + screenlets.INSTALL_PREFIX + '/share/screenlets/screenlets-pack-basic/Webframe/mo ' +DIR_USER + '/' + a) +- os.system('cd ' + DIR_USER + '/' + a + '/mo && find -name *.mo | rename -v "s/webframe/' + a.lower() +'/"') +- os.system('cp -r ' + screenlets.INSTALL_PREFIX + '/share/screenlets/screenlets-pack-basic/Webframe/themes ' +DIR_USER + '/' + a) +- os.system('cp -r ' + screenlets.INSTALL_PREFIX + '/share/screenlets/screenlets-pack-basic/Webframe/mozilla ' +DIR_USER + '/' + a) +- +- enginecopy = open(DIR_USER + '/' + a + '/' + a + 'Screenlet.py','r') +- enginesave = enginecopy.read() +- enginesave = enginesave.replace('WebframeScreenlet',a + 'Screenlet') +- enginesave = enginesave.replace("home_uri = ''","home_uri = " + chr(34) + code.get_text() + chr(34)) +- enginecopy.close() +- enginecopy = open(DIR_USER + '/' + a + '/' + a + 'Screenlet.py','w') +- enginecopy.write(enginesave) +- enginecopy.close() +- screenlets.show_message (None,_("Web Application was successfully installed")) +- self.model.clear() +- self.load_screenlets() +- except: screenlets.show_error(None,_("Error installing!!!")) +- else: screenlets.show_error(None,_("Please specify a name for the widget")) +- else: screenlets.show_error(None,_("No HTML code found")) +- dialog.destroy() +- +- def show_widget_converter(self): +- label1 = gtk.Label(_('Convert any webpage widget into a Screenlet.')) +- label2 = gtk.Label(_('Step 1 : Find the widget you want to convert')) +- label3 = gtk.Label(_('Step 2 : Copy and Paste the HTML from the widget in the box below')) +- label4 = gtk.Label(_('Step 3 : Give it a name in the box below and click on Ok to convert')) +- label5 = gtk.Label(_('The name of the widget')) +- code = gtk.Entry() +- name = gtk.Entry() +- h = gtk.HBox() +- h1 = gtk.HBox() +- self.combo1 = combo = gtk.combo_box_new_text() +- combo.append_text('Google Gadgets') +- combo.append_text('Yourminis Widgets') +- combo.append_text('SpringWidgets') +- combo.append_text('Widgetbox') +- combo.set_active(0) +- web = gtk.Button('Go to web page') +- web.connect('clicked', self.button_clicked, 'widgetsite') +- label1.show() +- label2.show() +- label3.show() +- label4.show() +- label5.show() +- combo.show() +- name.show() +- web.show() +- h.show() +- h1.show() +- code.show() +- dialog = gtk.Dialog(_("Widget converter"), +- self.window, +- gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, +- (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, +- gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)) +- #dialog.set_size_request(300, 500) +- dialog.vbox.pack_start(label1,False,False,20) +- dialog.vbox.pack_start(label2,True,False,5) +- h.pack_start(combo,True,True,5) +- h.pack_start(web,False,False,5) +- dialog.vbox.pack_start(h,False,False,5) +- dialog.vbox.pack_start(label3,False,False,10) +- dialog.vbox.pack_start(code,False,False,5) +- dialog.vbox.pack_start(label4,False,False,5) +- h1.pack_start(label5,False,False,5) +- h1.pack_start(name,True,True,5) +- dialog.vbox.pack_start(h1,False,False,5) +- resp = dialog.run() +- ret = None +- if resp == gtk.RESPONSE_ACCEPT: +- if code.get_text() != '': +- if name.get_text() != '': +- try: +- a = name.get_text() +- a = a.replace(' ','') +- if os.path.isdir(DIR_USER + '/' + a):#found_path != None: +- if screenlets.show_question(None,(_("There is already a screenlet with that name installed\nDo you wish to continue?") )): +- pass +- else: +- return False +- os.system('mkdir ' +DIR_USER + '/' + a) +- os.system('mkdir ' +DIR_USER + '/' + a + '/themes') +- os.system('mkdir ' +DIR_USER + '/' + a + '/themes/default') +- os.system('mkdir ' +DIR_USER + '/' + a + '/mozilla') +- f = open(DIR_USER + '/' + a + '/' + 'index.html' , 'w') +- f.write(code.get_text()) +- f.close() +- os.system('cp ' + screenlets.INSTALL_PREFIX + '/share/screenlets-manager/WidgetScreenlet.py ' +DIR_USER + '/' + a + '/' + a + 'Screenlet.py') +- os.system('cp ' + screenlets.INSTALL_PREFIX + '/share/screenlets-manager/widget.png ' +DIR_USER + '/' + a + '/icon.png') +- os.system('cp ' + screenlets.INSTALL_PREFIX + '/share/screenlets-manager/widget.png ' +DIR_USER + '/' + a + '/themes/default') +- enginecopy = open(DIR_USER + '/' + a + '/' + a + 'Screenlet.py','r') +- enginesave = enginecopy.read() +- enginesave = enginesave.replace('WidgetScreenlet',a + 'Screenlet') +- enginecopy.close() +- enginecopy = open(DIR_USER + '/' + a + '/' + a + 'Screenlet.py','w') +- enginecopy.write(enginesave) +- enginecopy.close() +- screenlets.show_message (None,_("Widget was successfully converted")) +- self.model.clear() +- self.load_screenlets() +- except: screenlets.show_error(None,_("Error converting!!!")) +- else: screenlets.show_error(None,_("Please specify a name for the widget")) +- else: screenlets.show_error(None,_("No HTML code found")) +- dialog.destroy() +- + def handle_screenlet_registered (self, name): + """Callback for dbus-signal, called when a new screenlet gets + registered within the daemon.""" Added: screenlets-pack-basic/trunk/PKGBUILD =================================================================== --- screenlets-pack-basic/trunk/PKGBUILD (rev 0) +++ screenlets-pack-basic/trunk/PKGBUILD 2017-06-24 20:22:35 UTC (rev 240850) @@ -0,0 +1,51 @@ +# $Id$ +# Maintainer: Balló György <ballogyor+arch at gmail dot com> + +pkgname=screenlets-pack-basic +_pkgname=indiv-screenlets +pkgver=0.1.7 +pkgrel=1 +pkgdesc="Desktop widgets for Screenlets" +arch=('any') +url="https://launchpad.net/indiv-screenlets" +license=('GPL3') +depends=('screenlets' 'python2-feedparser' 'python2-numpy') +options=('!emptydirs') +source=(https://launchpad.net/indiv-screenlets/trunk/$pkgver/+download/$_pkgname-$pkgver.tar.bz2{,.asc} + fix-screenlets.patch) +validpgpkeys=('D82D1D02396B27DC5045E356A01AFB1B15E8CCA4' # Guido Tabbernuk + '1F78BFA38F0D87A5E007D332990F03C13116C9F7') # Hrotkó Gábor +sha256sums=('415f488c743171a0e2041245a50ee3c37500d4dfe2259ff4232164a6fd7b6051' + 'SKIP' + '76e140406e911019c2a674b423e4a4c41143413e6992f2dcf8fee485cc623203') + +prepare() { + cd "$srcdir/$_pkgname-$pkgver" + + # Various fixes + patch -Np1 -i ../fix-screenlets.patch + + # Remove broken screenlets + sed -i '/Lyrics/d + /Webframe/d + s/FreemeteoWeather/ClearWeather/' setup.py + + # Python2 fix + find . -name \*.py -exec sed -i 's@^#.*python$@#!/usr/bin/python2@' '{}' \; + sed -i 's@^#.*python$@#!/usr/bin/python2@' src/Lyrics/gui/{ls_widget,afv_widgets} + sed -i 's/python -u/python2 -u/' setup.py + + # Fix desktop files + sed -i 's/desktop_file % (podir, packname, podir, podir)/desktop_file % (podir, normal_packname, podir, podir)/' setup.py +} + +package() { + cd "$srcdir/$_pkgname-$pkgver" + + python2 setup.py install --root=$pkgdir/ --optimize=1 + + # Remove screenlets-pack-all, because a lot of them are broken + rm "$pkgdir"/usr/lib/python2.7/site-packages/screenlets_pack_all-$pkgver-py2.7.egg-info + rm -r "$pkgdir"/usr/share/applications/screenlets_pack_all + rm -r "$pkgdir"/usr/share/screenlets/screenlets-pack-all +} Property changes on: screenlets-pack-basic/trunk/PKGBUILD ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: screenlets-pack-basic/trunk/fix-screenlets.patch =================================================================== --- screenlets-pack-basic/trunk/fix-screenlets.patch (rev 0) +++ screenlets-pack-basic/trunk/fix-screenlets.patch 2017-06-24 20:22:35 UTC (rev 240850) @@ -0,0 +1,200 @@ +diff -Naur indiv-screenlets-0.1.7.orig/src/Calc/CalcScreenlet.py indiv-screenlets-0.1.7/src/Calc/CalcScreenlet.py +--- indiv-screenlets-0.1.7.orig/src/Calc/CalcScreenlet.py 2017-01-30 21:44:28.000000000 +0100 ++++ indiv-screenlets-0.1.7/src/Calc/CalcScreenlet.py 2017-06-24 13:52:01.142245226 +0200 +@@ -269,10 +269,10 @@ + if mx>=1 and mx<=3 and my>=1 and my<=4: + self.maj_result(tab_main[mx-1][my-1]) + #print "Button pressed : "+ self.button_value +- self.redraw_canvas() + action = True + + #print "action="+str(action) ++ self.redraw_canvas() + return action + + def maj_result(self, value): +diff -Naur indiv-screenlets-0.1.7.orig/src/ClearWeather/ClearWeatherScreenlet.py indiv-screenlets-0.1.7/src/ClearWeather/ClearWeatherScreenlet.py +--- indiv-screenlets-0.1.7.orig/src/ClearWeather/ClearWeatherScreenlet.py 2017-01-30 21:44:28.000000000 +0100 ++++ indiv-screenlets-0.1.7/src/ClearWeather/ClearWeatherScreenlet.py 2017-06-24 21:53:33.298787428 +0200 +@@ -256,6 +256,7 @@ + current = self.current + # set size + ctx.scale(self.scale, self.scale) ++ ctx.translate(0, 1) + # draw bg (if theme available) + ctx.set_operator(cairo.OPERATOR_OVER) + ctx.set_source_rgba(*self.background_color) +diff -Naur indiv-screenlets-0.1.7.orig/src/Flower/FlowerScreenlet.py indiv-screenlets-0.1.7/src/Flower/FlowerScreenlet.py +--- indiv-screenlets-0.1.7.orig/src/Flower/FlowerScreenlet.py 2017-01-30 21:44:28.000000000 +0100 ++++ indiv-screenlets-0.1.7/src/Flower/FlowerScreenlet.py 2017-06-24 20:33:36.816274660 +0200 +@@ -253,6 +253,7 @@ + def on_draw (self, ctx): + ctx.set_operator(cairo.OPERATOR_OVER) + ctx.scale(self.scale, self.scale) ++ ctx.translate(0, 1) + if self.theme: + #self.theme['flower-pot.svg'].render_cairo(ctx) + self.theme.render(ctx, 'flower-pot') +diff -Naur indiv-screenlets-0.1.7.orig/src/FolderView/FolderViewScreenlet.py indiv-screenlets-0.1.7/src/FolderView/FolderViewScreenlet.py +--- indiv-screenlets-0.1.7.orig/src/FolderView/FolderViewScreenlet.py 2017-01-30 21:44:28.000000000 +0100 ++++ indiv-screenlets-0.1.7/src/FolderView/FolderViewScreenlet.py 2017-06-24 16:29:56.377333692 +0200 +@@ -1269,7 +1269,7 @@ + self.draw_icon(self.ctx_fore, # self.ctx_fore + self.get_x(elem) + self.icon_size * 0.5 , # x + self.get_y(elem) + self.icon_size * 0.2, # y +- gtk.STOCK_MISSING_IMAGE, # icon name ++ "image-missing", # icon name + self.icon_size, self.icon_size) + + #Draw the text +@@ -1327,13 +1327,13 @@ + self.thumbFactory = gnome.ui.ThumbnailFactory(gnome.ui.THUMBNAIL_SIZE_LARGE) + self.WorkList = [] + self.DoneList = [] +- self.stockimage = gtk.STOCK_MISSING_IMAGE ++ self.stockimage = "image-missing" + self.Timer = None + + def lookup(self, uri): + icon = self.thumbFactory.lookup(uri,0) + if not icon: +- icon = gtk.STOCK_MISSING_IMAGE ++ icon = "image-missing" + return icon + + def Process(self,uri,mime_type): +@@ -1347,7 +1347,7 @@ + self.thumbFactory.save_thumbnail(thumbnail, uri, 0) + icon = uri + else: +- icon = gtk.STOCK_MISSING_IMAGE ++ icon = "image-missing" + return icon + + def ProcessWorkList(self): +diff -Naur indiv-screenlets-0.1.7.orig/src/Lipik/LipikScreenlet.py indiv-screenlets-0.1.7/src/Lipik/LipikScreenlet.py +--- indiv-screenlets-0.1.7.orig/src/Lipik/LipikScreenlet.py 2017-01-30 21:46:05.000000000 +0100 ++++ indiv-screenlets-0.1.7/src/Lipik/LipikScreenlet.py 2017-06-24 20:58:39.542781426 +0200 +@@ -33,12 +33,6 @@ + from screenlets.options import FontOption, ColorOption + + import gtk +- +-try: +- import Image +-except: +- print "Couldn't import python-imaging." +- + import os + from gtk import gdk + import cairo +@@ -565,6 +559,7 @@ + def on_draw_shape (self,ctx): + #set scale + ctx.scale(self.scale, self.scale) ++ ctx.translate(0, 1) + # just render bg + if self.theme: + #self.theme["note-bg.svg"].render_cairo(ctx) +diff -Naur indiv-screenlets-0.1.7.orig/src/MailCheck/MailCheckScreenlet.py indiv-screenlets-0.1.7/src/MailCheck/MailCheckScreenlet.py +--- indiv-screenlets-0.1.7.orig/src/MailCheck/MailCheckScreenlet.py 2017-01-30 21:44:28.000000000 +0100 ++++ indiv-screenlets-0.1.7/src/MailCheck/MailCheckScreenlet.py 2017-06-24 20:34:56.248459241 +0200 +@@ -369,6 +369,7 @@ + + def on_draw (self, ctx): + ctx.scale(self.scale, self.scale) ++ ctx.translate(0, 1) + if self.theme: + if self.__mailbox_status == mail.MailboxStatus.UNREAD_MAIL or \ + self.__mailbox_status == mail.MailboxStatus.NEW_MAIL: +diff -Naur indiv-screenlets-0.1.7.orig/src/Ruler/RulerScreenlet.py indiv-screenlets-0.1.7/src/Ruler/RulerScreenlet.py +--- indiv-screenlets-0.1.7.orig/src/Ruler/RulerScreenlet.py 2017-01-30 21:44:28.000000000 +0100 ++++ indiv-screenlets-0.1.7/src/Ruler/RulerScreenlet.py 2017-06-24 20:35:29.509375270 +0200 +@@ -94,6 +94,7 @@ + def on_draw (self, ctx): + ctx.set_operator(cairo.OPERATOR_OVER) + ctx.scale(self.scale, self.scale) ++ ctx.translate(0, 1) + if self.theme: + #self.theme['ruler-bg.svg'].render_cairo(ctx) + if self.show_vertical: +diff -Naur indiv-screenlets-0.1.7.orig/src/Sensors/SensorsScreenlet.py indiv-screenlets-0.1.7/src/Sensors/SensorsScreenlet.py +--- indiv-screenlets-0.1.7.orig/src/Sensors/SensorsScreenlet.py 2017-01-30 21:46:05.000000000 +0100 ++++ indiv-screenlets-0.1.7/src/Sensors/SensorsScreenlet.py 2017-06-24 20:27:36.903117069 +0200 +@@ -232,7 +232,7 @@ + # draw bg (if theme available) + ctx.set_operator(cairo.OPERATOR_OVER) + if self.theme: +- self.theme['cpumeter-bg.svg'].render_cairo(ctx) ++ self.theme.render(ctx, 'cpumeter-bg') + # draw cpu-graph + if self.graph_type == _('Graph'): + ctx.save() +@@ -275,12 +275,12 @@ + + # draw glass (if theme available) + +- self.theme['cpumeter-glass.svg'].render_cairo(ctx) ++ self.theme.render(ctx, 'cpumeter-glass') + + def on_draw_shape(self,ctx): + if self.theme: + ctx.scale(self.scale, self.scale) +- self.theme['cpumeter-bg.svg'].render_cairo(ctx) ++ self.theme.render(ctx, 'cpumeter-bg') + + + # If the program is run directly or passed as an argument to the python +diff -Naur indiv-screenlets-0.1.7.orig/src/Slideshow/SlideshowScreenlet.py indiv-screenlets-0.1.7/src/Slideshow/SlideshowScreenlet.py +--- indiv-screenlets-0.1.7.orig/src/Slideshow/SlideshowScreenlet.py 2017-01-30 21:46:05.000000000 +0100 ++++ indiv-screenlets-0.1.7/src/Slideshow/SlideshowScreenlet.py 2017-06-24 20:10:48.233128214 +0200 +@@ -900,7 +900,7 @@ + elif self.engine1 == _('Media RSS'): + os.system('firefox ' + self.url + " &") + elif self.engine1 == _('Folder'): +- os.system('gnome-open ' + chr(34) + self.__image + chr(34) + " &") ++ os.system('xdg-open ' + chr(34) + self.__image + chr(34) + " &") + + if id == "wall": + # TODO: use DBus-call for this +diff -Naur indiv-screenlets-0.1.7.orig/src/Sticker/StickerScreenlet.py indiv-screenlets-0.1.7/src/Sticker/StickerScreenlet.py +--- indiv-screenlets-0.1.7.orig/src/Sticker/StickerScreenlet.py 2017-01-30 21:46:05.000000000 +0100 ++++ indiv-screenlets-0.1.7/src/Sticker/StickerScreenlet.py 2017-06-24 20:18:31.202018031 +0200 +@@ -80,7 +80,7 @@ + ctx.translate(self.theme.width / 2.0, self.theme.height / 2.0); + ctx.rotate((self.xx)*3.14/180); + ctx.translate(-self.theme.width / 2.0, -self.theme.height / 2.0); +- self.theme['sticker.svg'].render_cairo(ctx) ++ self.theme.render(ctx, 'sticker') + + + +@@ -94,7 +94,6 @@ + + + def on_draw_shape(self,ctx): +- ctx.scale(self.scale, self.scale) + ctx.set_operator(cairo.OPERATOR_OVER) + if self.theme: + self.on_draw (ctx) +diff -Naur indiv-screenlets-0.1.7.orig/src/Stocks/StocksScreenlet.py indiv-screenlets-0.1.7/src/Stocks/StocksScreenlet.py +--- indiv-screenlets-0.1.7.orig/src/Stocks/StocksScreenlet.py 2017-01-30 21:44:28.000000000 +0100 ++++ indiv-screenlets-0.1.7/src/Stocks/StocksScreenlet.py 2017-06-24 20:07:21.120573788 +0200 +@@ -142,7 +142,7 @@ + # make sure that the background covers all the icons + ctx.save() + ctx.scale(self.scale, self.scale) +- ctx.translate(0, 0) ++ ctx.translate(0, 1) + self.theme.render(ctx, 'background') + ctx.restore() + +@@ -294,7 +294,7 @@ + self.redraw_canvas() + + def open_info(self): +- system("gnome-open 'http://finance.yahoo.com/q?s=" + self.symbol + "'") ++ system("xdg-open 'http://finance.yahoo.com/q?s=" + self.symbol + "'") + + # If the program is run directly or passed as an argument to the python + # interpreter then create a Screenlet instance and show it
