mikerofone / lcdproc-rhythmbox

An LCDproc plugin for Rhythmbox
GNU General Public License v2.0
3 stars 1 forks source link

Plugin won't enable in Rhythmbox 2.96 on Ubuntu 12.04 #1

Open agc93 opened 12 years ago

agc93 commented 12 years ago

After checking out the git repo, then following your installation instructions and cd'ing into the folder and using the copy method to put the folder in the Rhythmbox plugins folder, I start Rhythmbox normally. If I go to Edit->Plugins and choose lcdproc plugin it just puts up a red error icon.

Starting it from the command line with the -D lcdproc-plugin switch, then trying to enable the plugin from the menu drops an error on the console. Here's the Traceback:

** (rhythmbox:22490): CRITICAL **: syncdaemon_folder_info_get_subscribed: assertion `SYNCDAEMON_IS_FOLDER_INFO (finfo)' failed
/usr/lib/python2.7/dist-packages/gobject/constants.py:24: Warning: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0' failed
  import gobject._gobject
Traceback (most recent call last):
  File "/home/agc93/.local/share/rhythmbox/plugins/lcdproc-plugin/lcdproc-plugin.py", line 162, in <module>
    class LCDProcPlugin (GObject.Object, Peas.Activatable):
  File "/home/agc93/.local/share/rhythmbox/plugins/lcdproc-plugin/lcdproc-plugin.py", line 164, in LCDProcPlugin
    object = GObject.property(type=GObject.Object)
  File "/usr/lib/python2.7/dist-packages/gi/_gobject/propertyhelper.py", line 109, in __init__
    self.type = self._type_from_python(type)
  File "/usr/lib/python2.7/dist-packages/gi/_gobject/propertyhelper.py", line 230, in _type_from_python
    raise TypeError("Unsupported type: %r" % (type_,))
TypeError: Unsupported type: <type 'gobject.GObject'>

(rhythmbox:22490): libpeas-WARNING **: Error loading plugin 'lcdproc-plugin'

This happens from a fresh checkout into a fresh Rhythmbox install.

mikerofone commented 12 years ago

Thanks for reporting, unfortunately I currently cannot investigate the issue due to time reasons and not having an Ubuntu 12.04 machine. It seems as if some API used by the plugin has changed (a quick Google search revealed something about "pyGObject" replacing "GObject", or did I get this wrong?) . Anybody having an idea is heartly invited to share her/his ideas!

CriminalK commented 11 years ago

I've been working on my own LCD for lcdproc and this looked like a nice plugin I could use it for, so I took some effort already to fix this problem. In python, pyGObject has been replaced by GObject, but this was already incorporated in the last commit (using gi.GObject). For as far as I can tell, as rhythmbox changed to using GSettings, incompatibility occurs when using GConf while GSettings is used by the rest of the application. This has something to do with GConf using the static pyGObject bindings, whereas GSettings uses the more recent dynamic GObject bindings (as in gi.repository).

Transferring the settings from GConf to GSettings did the trick for me, and the error disappeared. I am also working on incorporating the new API for the settings panel. If you check out the main branch of my fork, this contains the quick-fix and can be used as-is. I'll send a pull request for this later.

Furthermore I took the liberty of creating an additional branch to extend the configuration gui, making the configuration panel accept more settings, getting more display sizes to work (with multiple screens) and using the built-in scrolling of lcdproc for the scroll-thread.