← Back to team overview

indiv-screenlets-dev team mailing list archive

[Merge] lp:~roti-al/indiv-screenlets/s1604 into lp:indiv-screenlets

 

Hrotkó Gábor has proposed merging lp:~roti-al/indiv-screenlets/s1604 into lp:indiv-screenlets.

Requested reviews:
  Individual Screenlets Developers (indiv-screenlets-dev)

For more details, see:
https://code.launchpad.net/~roti-al/indiv-screenlets/s1604/+merge/309452

fixes for ubuntu 16.04
-- 
Your team Individual Screenlets Developers is requested to review the proposed merge of lp:~roti-al/indiv-screenlets/s1604 into lp:indiv-screenlets.
=== modified file 'debian/changelog'
--- debian/changelog	2012-01-20 06:14:40 +0000
+++ debian/changelog	2016-10-27 10:20:36 +0000
@@ -1,3 +1,22 @@
+indiv-screenlets (0.1.7) xenial; urgency=low
+
+  * Fix
+   - dependencies
+   - ConvertScreenlet
+   - GooglemapsScreenlet
+   - InfoPanelScreenlet
+   - ManometerScreenlet
+   - PidginScreenlet
+   - PlacesScreenlet
+   - SidebarScreenlet
+   - SmoothWeatherScreenlet
+   - TuxScreenlet
+   - TwitterScreenlet
+   - WeatherScreenlet
+   - WidescapeWeatherScreenlet
+
+ -- Hrotkó Gábor <roti@xxxxxxxxxxxxxxx>  Wed, 26 Oct 2016 21:00:15 CEST
+
 indiv-screenlets (0.1.6) oneiric; urgency=low
 
   * Fix:

=== modified file 'debian/control'
--- debian/control	2011-05-30 17:53:38 +0000
+++ debian/control	2016-10-27 10:20:36 +0000
@@ -2,32 +2,29 @@
 Section: gnome
 Priority: optional
 Maintainer: Guido Tabbernuk <boamaod@xxxxxxxxx>
-Build-Depends: debhelper (>= 7), python-support
+Build-Depends: debhelper (>= 7), dh-python
 Standards-Version: 3.7.2
 XS-Python-Version: current
 
 Package: screenlets-pack-all
 Architecture: all
-Depends: 	screenlets (>= 0.1.2-9),
+Depends: 	screenlets (>= 0.1.7),
 		${python:Depends}, 
 		${misc:Depends}, 
 Conflicts:	screenlets-pack-basic
 Recommends: 	gnome-keyring,
 		python-feedparser,
-		python-gmenu,
-		python-numeric,
 		python-numpy,
-		python-gnome2-extras,
 		python-dateutil,
 		python-tz,
 		python-gdata (>= 2.0.10),
 		python-twitter (>= 0.8),
-		python-oauth2,
+		python-oauth2client,
+		python-rsvg,
+		python-webkit,
 		iceweasel | firefox,
-		python-gtkmozembed | python-gnome2-extras (<< 2.19),
 		metacity (>= 2.21.4) | xcompmgr | compiz | xfwm4 (>= 4.2)
-Suggests:	python-dcop,
-		evolution,
+Suggests:	evolution,
 		tomboy,
 		gnome-orca
 XB-Python-Version: ${python:Versions}
@@ -39,23 +36,19 @@
 
 Package: screenlets-pack-basic
 Architecture: all
-Depends: 	screenlets (>= 0.1.2-9),
+Depends: 	screenlets (>= 0.1.7),
 		${python:Depends}, 
 		${misc:Depends}, 
 Conflicts:	screenlets-pack-all
 Recommends: 	gnome-keyring,
 		python-feedparser,
-		python-gmenu,
-		python-numeric,
 		python-numpy,
-		python-gnome2-extras,
 		python-dateutil,
 		python-tz,
+		python-webkit,
 		iceweasel | firefox,
-		python-gtkmozembed | python-gnome2-extras (<< 2.19),
 		metacity (>= 2.21.4) | xcompmgr | compiz | xfwm4 (>= 4.2)
-Suggests:	python-dcop,
-		tomboy | gnote
+Suggests:	tomboy | gnote
 XB-Python-Version: ${python:Versions}
 Description: Widget-like mini-applications for GNOME
  Screenlets are small owner-drawn applications (written in Python, a 

=== modified file 'debian/rules'
--- debian/rules	2011-07-26 21:06:29 +0000
+++ debian/rules	2016-10-27 10:20:36 +0000
@@ -6,8 +6,8 @@
 
 override_dh_auto_install:
 	dh_auto_install --buildsystem=python_distutils
-	find debian/tmp/usr/share/screenlets -name "*.svg" -perm 755 | xargs -r --delimiter=\\n chmod 644
-	find debian/tmp/usr/share/screenlets -name "*.png" -perm 755 | xargs -r --delimiter=\\n chmod 644
+#	find debian/tmp/usr/share/screenlets -name "*.svg" -perm 755 | xargs -r --delimiter=\\n chmod 644
+#	find debian/tmp/usr/share/screenlets -name "*.png" -perm 755 | xargs -r --delimiter=\\n chmod 644
 
 override_dh_clean:
 	rm -fR build/locale
@@ -19,4 +19,11 @@
 get-orig-source:
 	dh_testdir
 	uscan --force-download --verbose --repack
-	
+
+override_dh_fixperms:
+	dh_fixperms
+	find debian -name '*.html' -exec chmod 0666 {} +
+	find debian -name '*.svg' -exec chmod 0644 {} +
+	find debian -name '*.png' -exec chmod 0666 {} +
+
+

=== modified file 'src/ClearRss/ClearRssScreenlet.py'
--- src/ClearRss/ClearRssScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/ClearRss/ClearRssScreenlet.py	2016-10-27 10:20:36 +0000
@@ -27,7 +27,13 @@
 from screenlets import DefaultMenuItem, utils
 from screenlets.options import IntOption, BoolOption, StringOption, FontOption, ColorOption, FloatOption
 import os
-import feedparser
+
+try:
+  import feedparser
+except:
+    print "Couldn't import feedparser."
+
+
 #use gettext for translation
 import gettext
 

=== modified file 'src/Convert/ConvertScreenlet.py'
--- src/Convert/ConvertScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Convert/ConvertScreenlet.py	2016-10-27 10:20:36 +0000
@@ -75,16 +75,16 @@
 		filelist = os.listdir(Plugins.PATH)
 
 		for filename in sorted(filelist):
-			
 			if filename[-12:] == 'Converter.py':
 
 				classname = filename[:-3]
 				mod = Plugins.importAPI(classname)
 				classobj = getattr(mod, classname)
-				self.__conv_list.append(classobj)
-				# add a menu item for each
-				self.add_menuitem('conv:' + classobj.__name__, 
-						classobj.__title__)
+				if hasattr(classobj, '__title__'):
+				  self.__conv_list.append(classobj)
+				  # add a menu item for each
+				  self.add_menuitem('conv:' + classobj.__name__, classobj.__title__)
+
 		# for sure
 		if len(self.__conv_list) == 0:
 			# FIXME: how do I abort the initialization?

=== modified file 'src/Dropbox/DropboxScreenlet.py'
--- src/Dropbox/DropboxScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Dropbox/DropboxScreenlet.py	2016-10-27 10:20:36 +0000
@@ -28,7 +28,14 @@
 from screenlets import DefaultMenuItem
 from screenlets.options import ColorOption, StringOption, FloatOption, FontOption
 from screenlets.utils import xdg_open
-import cairo, rsvg, gtk, os, pango, subprocess, gobject, re
+import cairo, gtk, os, pango, subprocess, gobject, re
+
+try:
+  import rsvg
+except:
+    print "Couldn't import rsvg."
+
+
 
 #use gettext for translation
 import gettext
@@ -44,7 +51,7 @@
 	"""A Screenlet to monitor the current Dropbox status and quickly add files to your Dropbox folder."""
 	__name__	= 'DropboxScreenlet'
 	__version__ = '0.4.1+++'
-	__requires__ = ['dropbox']
+	__requires__ = ['dropbox','python-rsvg']
 	__author__	= 'spitfire23bc'
 	__desc__	= __doc__
 	

=== modified file 'src/Execute/ExecuteScreenlet.py'
--- src/Execute/ExecuteScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Execute/ExecuteScreenlet.py	2016-10-27 10:20:36 +0000
@@ -41,6 +41,8 @@
 	__version__ = '0.3.1+++'
 	__author__ = 'Helder Fraga aka whise'
 	__desc__ = __doc__
+	__requires__ = ['python-rsvg']
+
 	clipboard = gtk.clipboard_get()
 	
 	__has_focus = False

=== modified file 'src/FeedReader/FeedReaderScreenlet.py'
--- src/FeedReader/FeedReaderScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/FeedReader/FeedReaderScreenlet.py	2016-10-27 10:20:36 +0000
@@ -25,7 +25,12 @@
 import gtk
 import os
 
-import feedparser
+try:
+  import feedparser
+except:
+    print "Couldn't import feedparser."
+
+
 #use gettext for translation
 import gettext
 

=== modified file 'src/FeedReaderPlus/FeedReaderPlusScreenlet.py'
--- src/FeedReaderPlus/FeedReaderPlusScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/FeedReaderPlus/FeedReaderPlusScreenlet.py	2016-10-27 10:20:36 +0000
@@ -28,7 +28,10 @@
 import time
 import calendar
 
-import feedparser
+try:
+  import feedparser
+except:
+    print "Couldn't import python-feedparser."
 
 #use gettext for translation
 import gettext

=== modified file 'src/FlipClock/FlipClockScreenlet.py'
--- src/FlipClock/FlipClockScreenlet.py	2012-03-24 22:35:36 +0000
+++ src/FlipClock/FlipClockScreenlet.py	2016-10-27 10:20:36 +0000
@@ -26,7 +26,12 @@
 import commands
 import sys
 import os
-import webkit
+
+try:
+  import webkit
+except:
+    print "Couldn't import python-webkit."
+
 from screenlets import sensors
 
 class FlipClockScreenlet (screenlets.Screenlet):
@@ -67,8 +72,11 @@
 			pass
 		self.win.add(self.view)
 
-		self.url = "file://" + self.get_screenlet_dir() + "/Source/index.html"
-		self.view.load_uri(self.url)
+		self.url = str(self.mypath) + "/Source/index.html"
+		settings = self.view.get_settings()
+		settings.set_property("enable-universal-access-from-file-uris", True)
+		self.view.set_settings(settings)
+		self.view.open(str(self.url))
 		self.win.connect('destroy', self.quitall)
 		self.win.connect('configure-event', self.configure)
 		self.view.connect('notify::title', self.update)

=== modified file 'src/Googlemaps/GooglemapsScreenlet.py'
--- src/Googlemaps/GooglemapsScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Googlemaps/GooglemapsScreenlet.py	2016-10-27 10:20:36 +0000
@@ -28,30 +28,11 @@
 import sys
 import os
 
-
-#########WORKARROUND FOR GTKOZEMBED BUG################
-
-if sys.argv[0].endswith('GooglemapsScreenlet.py'):
-
-	if commands.getoutput("lsb_release -is") == 'Ubuntu':
-		mypath = sys.argv[0][:sys.argv[0].find('GooglemapsScreenlet.py')].strip()
-		if os.path.isfile(mypath + "running"):
-			os.system("rm -f " + mypath + "running")
-		
-		else:
-			os.system ("export LD_LIBRARY_PATH=/usr/lib/firefox \n export MOZILLA_FIVE_HOME=/usr/lib/firefox \n python "+ sys.argv[0] + " &")
-			fileObj = open(mypath + "running","w") #// open for for write
-			fileObj.write('gtkmozembed bug workarround')
-		
-			fileObj.close()
-			exit()
-else:
-	pass
 try:
-	import gtkmozembed
+  import webkit
 except:
-	print 'You dont have gtkmozembed , please install python gnome extras'
-	
+    print "Couldn't import python-webkit."
+
 #use gettext for translation
 import gettext
 
@@ -70,6 +51,7 @@
 	__version__		= '0.6.1+++'
 	__author__		= 'Helder Fraga aka Whise'
 	__desc__		= __doc__
+	__requires__ = [ 'python-webkit', 'python-rsvg' ]
 	width =425
 	height = 470
 	box = None
@@ -109,11 +91,13 @@
 			# create evntbox
 		
 			self.box.set_size_request(int(1*self.scale),int((self.height-77)*(self.scale)-(self.scale*5)))
-			self.moz = gtkmozembed.MozEmbed()
-			self.moz.set_size_request(int(1*self.scale),int((self.height-77)*(self.scale)-(self.scale*5)))
-		
-			self.moz.load_url(str(self.url))
-		
+			
+			self.moz = webkit.WebView()#gtkmozembed.MozEmbed()             
+			settings = self.moz.get_settings()
+			settings.set_property("enable-universal-access-from-file-uris", True)
+			self.moz.set_settings(settings)
+			self.moz.open(str(self.url))   # load_uri(uri)
+
 		# add/show all inputs
 		
 	
@@ -144,7 +128,7 @@
 
 		
 		if y >= 48 and y <= 60 and x >= 71 and x <= 247:
-			self.moz.load_url(str(self.url))
+			self.moz.load_uri(str(self.url))
 
 
 		self.redraw_canvas()
@@ -166,7 +150,7 @@
 		fh2.write(self.fh1)
 		fh2.close()
 		self.url = str(self.mypath)+'gtoload.html'
-		self.moz.load_url(str(self.url))
+		self.moz.load_uri(str(self.url))
 	def on_draw_shape (self, ctx):
 		ctx.scale(self.scale, self.scale)
 		ctx.set_source_rgba(0, 0, 0, 1)

=== modified file 'src/InfoPanel/InfoPanelScreenlet.py'
--- src/InfoPanel/InfoPanelScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/InfoPanel/InfoPanelScreenlet.py	2016-10-27 10:20:36 +0000
@@ -1353,7 +1353,7 @@
           try:
             # download data
             self.debug( 'Download weather' )
-            data = urllib.urlopen( 'http://xoap.weather.com/weather/local/'+weatherZips[key]+
+            data = urllib.urlopen( 'http://wxdata.weather.com/weather/local/'+weatherZips[key]+
                                    '?cc=*&dayf=10&prod=xoap&par=1003666583&key=4128909340a9b2fc&unit='+weatherUnit+
                                    '&link=xoap' ).read()
 

=== modified file 'src/Launcher/LauncherScreenlet.py'
--- src/Launcher/LauncherScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Launcher/LauncherScreenlet.py	2016-10-27 10:20:36 +0000
@@ -37,6 +37,7 @@
 import os
 import urllib
 import gnomevfs
+import sys
 #use gettext for translation
 import gettext
 
@@ -77,6 +78,8 @@
 	icon	= ''
 	label	= ''
 	
+	mypath = sys.argv[0][:sys.argv[0].find('LauncherScreenlet.py')].strip()
+
 	# constructor/internals
 	
 	def __init__ (self, **keyword_args):
@@ -85,7 +88,7 @@
 		# add default menu items
 
 		# set default icon and action
-		self.icon = self.get_screenlet_dir() + '/default-icon.svg'
+		self.icon = str(self.mypath) + '/default-icon.svg'
 		# add editable settings
 		self.add_options_group(_('Starter'), 
 			_('Some options related to the Launcher-Screenlet.'))

=== modified file 'src/Lipik/LipikScreenlet.py'
--- src/Lipik/LipikScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Lipik/LipikScreenlet.py	2016-10-27 10:20:36 +0000
@@ -33,7 +33,12 @@
 from screenlets.options import FontOption, ColorOption
 
 import gtk
-import Image
+
+try:
+  import Image
+except:
+    print "Couldn't import python-imaging."
+
 import os
 from gtk import gdk
 import cairo

=== modified file 'src/Manometer/ManometerScreenlet.py'
--- src/Manometer/ManometerScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Manometer/ManometerScreenlet.py	2016-10-27 10:20:36 +0000
@@ -446,7 +446,7 @@
 	#Pour recuperer la charge reseau. Si c'est pour l'upload, downlaod doit etre True 	
 	def get_network_load(self, download,card, maxSpeed, Mb, use_bit):
 		data = commands.getoutput("cat /proc/net/dev")
-		data = data[data.find(card + ":")+5:]
+		data = data[data.find(card + ":")+6:]
 		if(download):
 			newNet = float( data.split()[0] )
 		else:

=== modified file 'src/NVidia/NVidiaScreenlet.py'
--- src/NVidia/NVidiaScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/NVidia/NVidiaScreenlet.py	2016-10-27 10:20:36 +0000
@@ -92,6 +92,7 @@
 	__version__ = '0.5.1+++'
 	__author__ = 'Rene Jansen'
 	__desc__ = __doc__
+	__requires__ = ['python-rsvg']
 
 	# internals
 	__updateTimer = None

=== modified file 'src/Netmonitor/NetmonitorScreenlet.py'
--- src/Netmonitor/NetmonitorScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Netmonitor/NetmonitorScreenlet.py	2016-10-27 10:20:36 +0000
@@ -48,7 +48,7 @@
    __version__ = '0.9.2+++'
    __author__ = 'Jovicic Nemanja aka drxnele based on Netmonitor 0.6 by Helder Fraga'
    __desc__ =__doc__
-
+   __requires__ = [ 'python-rsvg' ]
    __timeout = None
    p_layout = None
    update_interval = 1

=== modified file 'src/Pager/PagerScreenlet.py'
--- src/Pager/PagerScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Pager/PagerScreenlet.py	2016-10-27 10:20:36 +0000
@@ -49,6 +49,7 @@
 	__version__	= '0.2.2+++'
 	__author__	= 'Whise , original version by RYX'
 	__desc__	= __doc__
+	__requires__ = ['python-rsvg']
 	
 	# internals
 	__windows		= []		

=== modified file 'src/Picframe/PicframeScreenlet.py'
--- src/Picframe/PicframeScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Picframe/PicframeScreenlet.py	2016-10-27 10:20:36 +0000
@@ -44,7 +44,7 @@
 	__name__		= 'PicframeScreenlet'
 	__version__		= '0.3++'
 	__author__		= 'Whise aka Helder Fraga'
-	__requires__ = [ 'python-imaging' ]
+	__requires__ = [ 'python-imaging', 'python-rsvg' ]
 	__desc__		= __doc__
 	
 	# attributes

=== modified file 'src/Pidgin/PidginScreenlet.py'
--- src/Pidgin/PidginScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Pidgin/PidginScreenlet.py	2016-10-27 10:20:36 +0000
@@ -743,6 +743,8 @@
 		# Do not initialize a new buffer if the size required is smaller that current
 		# buffer size
 		self.__buffer = None
+		if self.window is None or self.window.window is None:
+			return
 		self.__buffer = gtk.gdk.Pixmap(self.window.window, 
 			int(self.width * self.scale), int(self.height * self.scale), -1)
 		

=== modified file 'src/Places/PlacesScreenlet.py'
--- src/Places/PlacesScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Places/PlacesScreenlet.py	2016-10-27 10:20:36 +0000
@@ -123,8 +123,11 @@
 		self.places =  [(os.environ['HOME'], _('Home')),
 						(utils.get_desktop_dir(),_('Desktop'))]
 		bookmarks = utils.LoadBookmarks()
-                for bookmark in bookmarks:
-			if gnomevfs.exists(bookmark[0]):
+		for bookmark in bookmarks:
+			if bookmark[0].startswith("file:///"):
+				if gnomevfs.exists(bookmark[0]):
+					self.places = self.places + [bookmark]
+			else:
 				self.places = self.places + [bookmark]
 
 		if bookmarks is None:

=== modified file 'src/SearchTorrent/SearchTorrentScreenlet.py'
--- src/SearchTorrent/SearchTorrentScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/SearchTorrent/SearchTorrentScreenlet.py	2016-10-27 10:20:36 +0000
@@ -51,6 +51,8 @@
 	__version__		= '0.4.test+++'
 	__author__		= 'JR build on GoogleMapScreenlet by Helder Fraga aka Whise'
 	__desc__		= __doc__
+	__requires__ = ['python-rsvg']
+
 	width =425
 	height = 120
 	result = None

=== modified file 'src/Sensors/SensorsScreenlet.py'
--- src/Sensors/SensorsScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Sensors/SensorsScreenlet.py	2016-10-27 10:20:36 +0000
@@ -41,6 +41,7 @@
 	__version__ = '0.1.2+++'
 	__author__ = 'Helder Fraga aka Whise'
 	__desc__ = __doc__
+	__requires__ = ['python-rsvg']
 
 	# internals
 	__timeout = None

=== modified file 'src/Slideshow/SlideshowScreenlet.py'
--- src/Slideshow/SlideshowScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Slideshow/SlideshowScreenlet.py	2016-10-27 10:20:36 +0000
@@ -399,7 +399,6 @@
 	__name__		= 'SlideshowScreenlet'
 	__version__		= '1.3.10+++'
 	__author__		= 'Guido Tabbernuk <boamaod@xxxxxxxxx>'
-	__requires__		= ['python-imaging']
 	__desc__		= __doc__
 	
 	# attributes

=== modified file 'src/SmoothWeather/SmoothWeatherScreenlet.py'
--- src/SmoothWeather/SmoothWeatherScreenlet.py	2012-04-04 15:31:57 +0000
+++ src/SmoothWeather/SmoothWeatherScreenlet.py	2016-10-27 10:20:36 +0000
@@ -52,6 +52,7 @@
 	__author__ = 'Casey Trader aka Swiftfeet based on screenlet by Helder Fraga aka Whise'
 	__category__ = 'Weather'
 	__desc__ = __doc__
+	__requires__ = ['python-rsvg']
 
 	# internals
 	__timeout = None
@@ -182,7 +183,7 @@
 			unit = 'm'
 		else:
 			unit = 's'
-		data = urlopen('http://xoap.weather.com/weather/local/'+self.ZIP+'?cc=*&dayf=10&prod=xoap&par=1003666583&key=4128909340a9b2fc&unit='+unit).read()
+		data = urlopen('http://wxdata.weather.com/weather/local/'+self.ZIP+'?cc=*&dayf=10&prod=xoap&par=1003666583&key=4128909340a9b2fc&unit='+unit).read()
 		forecast = []
 
 		dcstart = data.find('<loc ')
@@ -204,7 +205,7 @@
 			unit = 'm'
 		else:
 			unit = 's'
-		data = urlopen('http://xoap.weather.com/weather/local/'+self.ZIP+'?cc=*&dayf=10&prod=xoap&par=1003666583&key=4128909340a9b2fc&unit='+unit+'&hbhf=12').read()
+		data = urlopen('http://wxdata.weather.com/weather/local/'+self.ZIP+'?cc=*&dayf=10&prod=xoap&par=1003666583&key=4128909340a9b2fc&unit='+unit+'&hbhf=12').read()
 		hforecast = []
 
 		for x in range(8):
@@ -496,7 +497,7 @@
 				ctx.translate(25  , 50)  ####Location of location name on screenlet ie.) New York
 				if self.p_layout1 == None :
 	
-					self.p_layout = ctx.create_layout()
+					self.p_layout1 = ctx.create_layout()
 				else:
 		
 					ctx.update_layout(self.p_layout)
@@ -643,11 +644,17 @@
 				### Might need to add elif statement for radar = true and mini = true
 					##degree = unichr(176)
 				if self.p_layout == None :
-	
 					self.p_layout = ctx.create_layout()
 				else:
-		
 					ctx.update_layout(self.p_layout)
+				if self.p_layout1 == None :
+					self.p_layout1 = ctx.create_layout()
+				else:
+					ctx.update_layout(self.p_layout1)
+				if self.p_layout2 == None :
+					self.p_layout2 = ctx.create_layout()
+				else:
+					ctx.update_layout(self.p_layout2)
 				p_fdesc = pango.FontDescription()
 				p_fdesc.set_family_static("Sans")
 				p_fdesc.set_size(3 * pango.SCALE)

=== modified file 'src/Sticker/StickerScreenlet.py'
--- src/Sticker/StickerScreenlet.py	2012-03-24 22:35:36 +0000
+++ src/Sticker/StickerScreenlet.py	2016-10-27 10:20:36 +0000
@@ -37,6 +37,7 @@
 	__author__ = 'Whise'
 	__category__ = 'Fun and amusement'
 	__desc__ = __doc__
+	__requires__ = ['python-rsvg']
 
 	xx = 0
 

=== modified file 'src/Terminal/TerminalScreenlet.py'
--- src/Terminal/TerminalScreenlet.py	2012-07-26 11:49:18 +0000
+++ src/Terminal/TerminalScreenlet.py	2016-10-27 10:20:36 +0000
@@ -20,7 +20,12 @@
 import gobject
 import gtk
 import cairo
-import vte
+
+try:
+  import vte
+except:
+    print "Couldn't import python-vte."
+
 import gconf
 import os
 

=== modified file 'src/Tux/TuxScreenlet.py'
--- src/Tux/TuxScreenlet.py	2012-03-24 22:35:36 +0000
+++ src/Tux/TuxScreenlet.py	2016-10-27 10:20:36 +0000
@@ -72,12 +72,14 @@
 	# internal vars
 
 	# hacky way to get screenlets own path
-	cut_path_here = __file__.rfind('/')
-	if cut_path_here > 0:
-		screenlet_dir = __file__[0:cut_path_here]
-	else:
-		screenlet_dir = os.getcwd()
+	#cut_path_here = __file__.rfind('/')
+	#if cut_path_here > 0:
+	#	screenlet_dir = __file__[0:cut_path_here]
+	#else:
+	#	screenlet_dir = os.getcwd()
 	
+	screenlet_dir = sys.argv[0][:sys.argv[0].find('TuxScreenlet.py')].strip() 
+
 	# editable options
 	# editable options (options that are editable through the UI)
 
@@ -114,18 +116,19 @@
 	_offset = 30
 	offset = _offset
 
-
 	ojo_i=Image.open(screenlet_dir + "/themes/"+str(theme_)+"/_ojo_i.png")
-
 	ojo_i_ = ojo_i
 
-
 	# constructor
 	def __init__ (self, parent_window=None,**keyword_args):
 	
 		"""Create a new TuxScreenlet instance."""
+
 		# call super (we define to use our own service here)
 		Screenlet.__init__(self, uses_theme=True, width=self._width, height=self._height, **keyword_args)
+
+		#
+
 		self.add_default_menuitems()
 		self.scale=.5
 		# set default theme for this Screenlet (causes redraw)
@@ -169,6 +172,8 @@
 
 	def init_buffers (self):
 		"""(Re-)Create back-/foreground buffers"""
+		if self.window is None or self.window.window is None:
+			return
 		self.__buffer_back = gtk.gdk.Pixmap(self.window.window, 
 			int(self.width * self.scale), int(self.height * self.scale), -1)
 		self.__buffer_fore = gtk.gdk.Pixmap(self.window.window, 

=== modified file 'src/Twitter/TwitterScreenlet.py'
--- src/Twitter/TwitterScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/Twitter/TwitterScreenlet.py	2016-10-27 10:20:36 +0000
@@ -94,7 +94,7 @@
 	__name__	= 'TwitterScreenlet'
 	__version__	= '0.9.8+++'
 	__author__	= 'Guido Tabbernuk <boamaod@xxxxxxxxx>'
-	__requires__ = ['python-twitter (>= 0.8~)', 'python-oauth2']
+	__requires__ = ['python-twitter (>= 0.8~)', 'python-oauth2client']
 	__desc__	= __doc__	# set description to docstring of class
 
 	__timeout = None

=== modified file 'src/VolumeControl/VolumeControlScreenlet.py'
--- src/VolumeControl/VolumeControlScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/VolumeControl/VolumeControlScreenlet.py	2016-10-27 10:20:36 +0000
@@ -51,6 +51,7 @@
 	__name__ = 'VolumeControlScreenlet'
 	__version__ = '0.1.9+++'
 	__author__ = 'DeathCarrot'
+	__requires__ = ['python-rsvg']
 	__desc__ = _('A basic screenlet for controlling the volume.'
 		'Use the mousewheel to raise and lower the volume,'
 		'middle click to activate/deactivate mute or '
@@ -115,7 +116,7 @@
 		self.add_option(StringOption(_('Device'), 'control', _('Master'), _('Control'), 
 			_('Which control should be utilised for your device'), ctlList), self.on_control_update)
 		self.add_option(IntOption(_('Device'), 'step', 2, _('Scroll Step'),
-			_('How much the volume changes on each mouse wheel click'), 0,	100))
+			_('How much the volume changes on each mouse wheel click'), min=0,	max=100))
 		self.add_option(StringOption(_('Device'), 'mixer', 'xfce4-mixer', _('Mixer Command'), _('The command to be run when mixer is launched')))
 
 	def on_control_update(self, option, option2):
@@ -124,6 +125,7 @@
 			if line[22:]==self.cardName:			
 				self.cardNo=line[1:2]
 		# find the maximum volume and update
+		print "amixer dbg: %s, %s" %(self.cardNo, self.control)
 		self.__maxVol = int(commands.getoutput("amixer -c %s sget %s | awk '/^  Limits/{print $5}'" %(self.cardNo, self.control)))
 		print _("Max vol: ") + str(self.__maxVol) + "; "+self.control
 		self.updateBar()

=== modified file 'src/WallpaperClock/WallpaperClockScreenlet.py'
--- src/WallpaperClock/WallpaperClockScreenlet.py	2012-03-24 22:35:36 +0000
+++ src/WallpaperClock/WallpaperClockScreenlet.py	2016-10-27 10:20:36 +0000
@@ -34,9 +34,7 @@
 try:
 	import Image
 except:
-	import sys
-	screenlets.show_error(None, _("Please install the python image module"))
-	sys.exit()
+    print "Couldn't import python-imaging."
 
 import gtk
 import gobject

=== modified file 'src/Weather/WeatherScreenlet.py'
--- src/Weather/WeatherScreenlet.py	2012-08-21 19:19:51 +0000
+++ src/Weather/WeatherScreenlet.py	2016-10-27 10:20:36 +0000
@@ -20,7 +20,12 @@
 from urllib import urlopen
 import screenlets
 from screenlets.options import StringOption, BoolOption
-from numpy import *
+
+try:
+  from numpy import *
+except:
+    print "Couldn't import numpy."
+
 import pygtk
 pygtk.require('2.0')
 import cairo
@@ -52,7 +57,7 @@
 	__version__ = '0.5.3'
 	__author__ = 'by Helder Fraga (Whise), robgig1088, and blackhawk'
 	__category__ = 'Weather'
-	__requires__	= ['python-numpy']
+	__requires__	= ['python-numpy', 'python-rsvg']
 	__desc__ = __doc__
 
 	# internals
@@ -157,7 +162,7 @@
 
 		forecast = []
 		try:
-			data = urlopen('http://xoap.weather.com/weather/local/'+self.ZIP+'?cc=*&dayf=10&prod=xoap&par=1003666583&key=4128909340a9b2fc&unit='+unit + '&link=xoap').read()
+			data = urlopen('http://wxdata.weather.com/weather/local/'+self.ZIP+'?cc=*&dayf=10&prod=wxdata&par=1003666583&key=4128909340a9b2fc&unit='+unit + '&link=wxdata').read()
 
 			dcstart = data.find('<loc ')
 			dcstop = data.find('</cc>')     ###### current conditions
@@ -183,7 +188,7 @@
 
 		hforecast = []
 		try:
-			data = urlopen('http://xoap.weather.com/weather/local/'+self.ZIP+'?cc=*&dayf=10&prod=xoap&par=1003666583&key=4128909340a9b2fc&unit='+unit+'&hbhf=12&link=xoap').read()
+			data = urlopen('http://wxdata.weather.com/weather/local/'+self.ZIP+'?cc=*&dayf=10&prod=wxdata&par=1003666583&key=4128909340a9b2fc&unit='+unit+'&hbhf=12&link=wxdata').read()
 			for x in range(8):
 				dcstart = data.find('<hour h=\"'+str(x))
 				dcstop = data.find('</hour>',dcstart)   ####hourly forecast
@@ -417,7 +422,7 @@
 					p_fdesc.set_weight(300)    ##### render the days of the week
 					p_fdesc.set_style(pango.STYLE_NORMAL)
 					self.p_layout.set_font_description(p_fdesc)
-					ctx.translate(10,-13)
+					ctx.translate(-80,-13)
 					self.p_layout.set_markup('<b>' +weather[1]["day"][:3] + '</b>')
 					ctx.show_layout(self.p_layout)
 					ctx.translate(37, 0)
@@ -464,7 +469,8 @@
 		
 					if self.show_daytemp == True:
 						ctx.save()
-						ctx.translate(18,97)
+						#ctx.translate(18,97)
+						ctx.translate(-70,97)
 						self.p_layout.set_markup('<b>' + weather[1]["high"]+degree+'</b>')
 						ctx.show_layout(self.p_layout)
 						ctx.translate(0,12)
@@ -501,9 +507,9 @@
 						ctx.restore()
 						ctx.save()
 				
-	def on_mouse_down(self,event):
+	def on_mouse_up(self,event):
 		if event.button == 1:
-			os.system('xdg-open weather.com')
+			os.system('xdg-open http://weather.com')
 			#x = event.x / self.scale
 			#y = event.y / self.scale
 			#if y >= 75 and x <= 132 and x >= 110:

=== modified file 'src/WidescapeWeather/WidescapeWeatherScreenlet.py'
--- src/WidescapeWeather/WidescapeWeatherScreenlet.py	2012-04-04 15:31:57 +0000
+++ src/WidescapeWeather/WidescapeWeatherScreenlet.py	2016-10-27 10:20:36 +0000
@@ -403,7 +403,7 @@
 			unit = 'm'
 		else:
 			unit = 's'
-		data = urlopen('http://xoap.weather.com/weather/local/'+self.ZIP+'?cc=*&dayf=10&prod=xoap&par=1003666583&key=4128909340a9b2fc&unit='+unit + '&link=xoap').read()
+		data = urlopen('http://wxdata.weather.com/weather/local/'+self.ZIP+'?cc=*&dayf=10&prod=wxdata&par=1003666583&key=4128909340a9b2fc&unit='+unit + '&link=wxdata').read()
 		forecast = []
 
 		dcstart = data.find('<loc ')

=== modified file 'src/WorldClock/WorldClockScreenlet.py'
--- src/WorldClock/WorldClockScreenlet.py	2012-03-24 22:35:36 +0000
+++ src/WorldClock/WorldClockScreenlet.py	2016-10-27 10:20:36 +0000
@@ -63,10 +63,16 @@
 from datetime import datetime
 import gobject
 
-# jsf additional imports needed for tzinfo support
 from datetime import *
-from dateutil.tz import *
-from dateutil import zoneinfo
+
+try:
+  # jsf additional imports needed for tzinfo support
+  from dateutil.tz import *
+  from dateutil import zoneinfo
+except:                                                                                                                                                       
+    print "Couldn't import dateutil."                                                                                                         
+
+
 import os
 # use gettext for translation
 import gettext
@@ -142,6 +148,7 @@
 	__author__ = 'jsf (aka Joe Forbes)'
 	__category__ = 'Date and time'
 	__desc__	= __doc__
+	__requires__ = [ 'python-dateutil', 'python-rsvg' ]
 	
 	# internal vars
 	__timeout		= None

=== modified file 'src/dayNight/dayNightScreenlet.py'
--- src/dayNight/dayNightScreenlet.py	2012-01-27 21:52:49 +0000
+++ src/dayNight/dayNightScreenlet.py	2016-10-27 10:20:36 +0000
@@ -32,7 +32,12 @@
 import pango
 import math
 import os
-import Image
+
+try:
+  import Image
+except:
+    print "Couldn't import python-imaging."
+
 import time
 import datetime
 import Sun


Follow ups