<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>mumbles-project.org</title>
	<atom:link href="http://www.mumbles-project.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mumbles-project.org</link>
	<description>a plugin driven, modern notification system for Gnome</description>
	<pubDate>Wed, 27 Aug 2008 02:11:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Pre-release Testers Wanted!</title>
		<link>http://www.mumbles-project.org/2008/08/26/pre-release-testers-wanted/</link>
		<comments>http://www.mumbles-project.org/2008/08/26/pre-release-testers-wanted/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 01:35:58 +0000</pubDate>
		<dc:creator>dot_j</dc:creator>
		
		<category><![CDATA[releases]]></category>

		<guid isPermaLink="false">http://www.mumbles-project.org/?p=40</guid>
		<description><![CDATA[We&#8217;re very close to a 0.4.2 release&#8230; If you&#8217;re feeling brave and know your way around svn code, we invite you to try out the soon to be released 0.4.2 version.
You can check out pre-release branch here:
svn co https://mumbles.svn.sourceforge.net/svnroot/mumbles/branches/backports0.4-branch mumbles0.4-branch
Please see &#8220;Pre-release Notes&#8221; in the README for some important information about using the svn version.
We&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re very close to a 0.4.2 release&#8230; If you&#8217;re feeling brave and know your way around svn code, we invite you to try out the soon to be released 0.4.2 version.</p>
<p>You can check out pre-release branch here:</p>
<div class="codesnip-container" >svn co https://mumbles.svn.sourceforge.net/svnroot/mumbles/branches/backports0.4-branch mumbles0.4-branch</div>
<p>Please see &#8220;Pre-release Notes&#8221; in the README for some important information about using the svn version.</p>
<p>We&#8217;re putting on the finishing touches, so updates should continue over the next few days (hours?). If you do try it out &amp; have any problems please let us know in #mumbles (freenode), or on the <a title="forum" href="https://sourceforge.net/forum/forum.php?forum_id=684176">forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mumbles-project.org/2008/08/26/pre-release-testers-wanted/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Comments Updated</title>
		<link>http://www.mumbles-project.org/2008/08/04/comments-updated/</link>
		<comments>http://www.mumbles-project.org/2008/08/04/comments-updated/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 00:14:10 +0000</pubDate>
		<dc:creator>dot_j</dc:creator>
		
		<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://www.mumbles-project.org/?p=37</guid>
		<description><![CDATA[I just logged into the admin site and found quite a few comments awaiting moderation for which, for some reason, I did not receive an email update. I have approved those comments and apologize to all of you for the delay in getting them on the site.
Please note, that while I appreciate any comment, those [...]]]></description>
			<content:encoded><![CDATA[<p>I just logged into the admin site and found quite a few comments awaiting moderation for which, for some reason, I did not receive an email update. I have approved those comments and apologize to all of you for the delay in getting them on the site.</p>
<p>Please note, that while I appreciate any comment, those with questions are encouraged to post on the <a title="forum" href="https://sourceforge.net/forum/forum.php?forum_id=684176">forum</a> It&#8217;s easy for questions (that are probably useful to others) to get lost in the comment thread.</p>
<p>I will try to respond to the backlogged questions in the next day or two. Again, I apologize for the hiccup. Thanks for stopping by.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mumbles-project.org/2008/08/04/comments-updated/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Twitter Screenlet</title>
		<link>http://www.mumbles-project.org/2008/03/29/twitter-screenlet/</link>
		<comments>http://www.mumbles-project.org/2008/03/29/twitter-screenlet/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 21:32:28 +0000</pubDate>
		<dc:creator>dot_j</dc:creator>
		
		<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://www.mumbles-project.org/2008/03/29/twitter-screenlet/</guid>
		<description><![CDATA[I took the twittercheck script from my last post a bit further and created a Twitter Screenlet.
The mumbles plugin here will work with the screenlet (it will continue to work with the simple twittercheck script there as well).
Let me know what you think.
Note: mumbles users will most likely want to turn off &#8220;use libnotify&#8221; in [...]]]></description>
			<content:encoded><![CDATA[<p>I took the twittercheck script from my last post a bit further and created a <a href="http://www.gnome-look.org/content/show.php/SimpleTwitterScreenlet?content=77988">Twitter Screenlet</a>.</p>
<p>The mumbles plugin <a href="http://www.mumbles-project.org/2008/03/23/twitter-plugin/">here</a> will work with the screenlet (it will continue to work with the simple twittercheck script there as well).</p>
<p>Let me know what you think.</p>
<p>Note: mumbles users will most likely want to turn off &#8220;use libnotify&#8221; in the screentlet preferences. This is my opinion of how applications should use libnotify/dbus. Provide the users with a default libnotify notification, but also, the option to turn it off while continuing to send DBus notifications that other apps can pick up. Here&#8217;s to hoping this practice catches on!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mumbles-project.org/2008/03/29/twitter-screenlet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Twitter Plugin</title>
		<link>http://www.mumbles-project.org/2008/03/23/twitter-plugin/</link>
		<comments>http://www.mumbles-project.org/2008/03/23/twitter-plugin/#comments</comments>
		<pubDate>Sun, 23 Mar 2008 16:17:43 +0000</pubDate>
		<dc:creator>dot_j</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[plugins]]></category>

		<category><![CDATA[releases]]></category>

		<guid isPermaLink="false">http://www.mumbles-project.org/2008/03/23/twitter-plugin/</guid>
		<description><![CDATA[[edit 03.23: Files linked here are for the current version 0.4. svn has been updated working towards 0.5 - if you are running an up to date mumbles from svn you can find the updated twitter plugin there.]
[edit 03.24: Updated the twitter check script. Added option to check public timeline (by default if no account [...]]]></description>
			<content:encoded><![CDATA[<p>[edit 03.23: Files linked here are for the current version 0.4. svn has been updated working towards 0.5 - if you are running an up to date mumbles from svn you can find the updated twitter plugin there.]</p>
<p>[edit 03.24: Updated the twitter check script. Added option to check public timeline (by default if no account information is supplied) and fixed bug preventing script from running via Gnome Sessions. If you previously downloaded the file, it's advised to update. Links below point to current version.]</p>
<p>If you&#8217;re looking to get right to the plugin, download <a href="http://www.mumbles-project.org/wp-content/uploads/2008/03/twitter.tar.gz">here</a>, or find more information below. But first, some updates:</p>
<p>I realize it&#8217;s been a long while since I&#8217;ve posted anything. I had a failry busy last 6 months, but I hope to keep the site a bit more up to date going forward. Thanks to all of you still hanging around and sending comments.</p>
<p>So, in an attempt to keep the project moving foward and to encourage more participation, I wanted to post a few ways to get in touch with me and with others working on/using mumbles. Like always email (dot_j at this domain), and comments work, but I also want to keep the conversation about mumbles open and ongoing. So I have created a few new avenues of discussion:</p>
<p><strong>IRC: #mumbles on irc.freenode.net </strong></p>
<p>I try to hang around in here as much as possible. If you stop by and I&#8217;m not responding or away, try to hang around -  I will respond when I can. I&#8217;m hoping other users and developers will also start to hang out here to help with plugins, questions and ideas.</p>
<p><strong>Twitter: http://twitter.com/dot_j</strong></p>
<p>I just got turned onto twitter and quickly realized it would be (among other things) a great place to talk about mumbles. It takes a little more time and attention to update the website and often there are things I&#8217;m working on or thinking about related to mumbles that do not warrant a full post here, so why not twitter?</p>
<p>Please consider taking part in either of these ways of following the mumbles project. I have recieved lots of feedback/suggestions and have a roadmap scetched out (post coming soon) for version 0.5 and I hope to see the discussion and participation pick up with new development.</p>
<p><strong>And now for the plugin:</strong></p>
<p><a href="http://www.mumbles-project.org/wp-content/uploads/2008/03/twitter.tar.gz">Download the Twitter Check Script &amp; Mumbles Plugin</a></p>
<p>People have asked for it, and I now have an account, so I better have a plugin, right? It&#8217;s in an early stage with lots of room for improvements (version 0.5 will include some new functionality that will be added in future updates), but it works and is a great way to keep an eye on your twitter account. See the README in the archive for instructions. Like always, more information can be found at</p>
<p><a href="http://www.mumbles-project.org/plugins">http://www.mumbles-project.org/plugins</a></p>
<p><a href="http://www.mumbles-project.org/extras">http://www.mumbles-project.org/extras</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mumbles-project.org/2008/03/23/twitter-plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>This message will self-destruct&#8230;</title>
		<link>http://www.mumbles-project.org/2007/10/17/this-message-will-self-destruct/</link>
		<comments>http://www.mumbles-project.org/2007/10/17/this-message-will-self-destruct/#comments</comments>
		<pubDate>Thu, 18 Oct 2007 02:30:15 +0000</pubDate>
		<dc:creator>dot_j</dc:creator>
		
		<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://www.mumbles-project.org/2007/10/17/this-message-will-self-destruct/</guid>
		<description><![CDATA[My man, magicrobotmonkey, just published a cool tutorial about using compiz and mumbles to make self destructing desktop notifications. Video included. Check it out.
]]></description>
			<content:encoded><![CDATA[<p>My man, <a href="http://magicrobotmonkey.blogspot.com/">magicrobotmonkey</a>, just published a <a href="http://magicrobotmonkey.blogspot.com/2007/10/how-tomumbles-self-destucting-messages.html">cool tutorial</a> about using <a href="http://www.compiz-fusion.org/">compiz</a> and mumbles to make self destructing desktop notifications. Video included. Check it out.<a href="http://magicrobotmonkey.blogspot.com/2007/10/how-tomumbles-self-destucting-messages.html" target="_blank"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mumbles-project.org/2007/10/17/this-message-will-self-destruct/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Plugin: Amarok Track Change Notifications</title>
		<link>http://www.mumbles-project.org/2007/09/05/new-plugin-amarok-track-change-notifications/</link>
		<comments>http://www.mumbles-project.org/2007/09/05/new-plugin-amarok-track-change-notifications/#comments</comments>
		<pubDate>Wed, 05 Sep 2007 23:29:49 +0000</pubDate>
		<dc:creator>dot_j</dc:creator>
		
		<category><![CDATA[plugins]]></category>

		<category><![CDATA[releases]]></category>

		<guid isPermaLink="false">http://www.mumbles-project.org/2007/09/05/new-plugin-amarok-track-change-notifications/</guid>
		<description><![CDATA[Amarok Script &#38; Mumbles Plugin
By popular demand&#8230;
I finally took the plunge, installed Amarok, started mucking around with their scripting capabilities, and came out with a script that allowed me to create a mumbles plugin using the methodology outlined here.
I have seen that there are plans to switch to DBus in the next version of Amarok [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Amarok Script &amp; Mumbles Plugin</strong></p>
<p>By popular demand&#8230;</p>
<p>I finally took the plunge, installed Amarok, started mucking around with their scripting capabilities, and came out with a script that allowed me to create a mumbles plugin using the methodology outlined <a href="http://www.mumbles-project.org/2007/09/03/tutorial-write-an-evolution-plugin">here</a>.</p>
<p>I have seen that there are plans to switch to DBus in the next version of Amarok (and KDE for that matter), but in the meantime, this little script should do the trick.</p>
<p>I took the same approach with this script, as I had with the <a href="http://www.mumbles-project.org/extras">Firefox</a> and <a href="http://www.mumbles-project.org/extras">Thunderbird</a> extensions in that none of them are mumbles-specific. They all use a a pretty straight forward python class that extends a DBus service object to send signals. The script sends a signal to the DBus rather than to mumbles with the hope that other applications besides mumbles could make use of it by listening for those signals. I would like to see a common set of these scripts for applications that do not send DBus signals (or have no DBus support) on their own but have a scripting/plugin interface - building these extensions is a step in that direction and I hope they catch on (and are developed further to support more features/signals).</p>
<p>Installation instructions are included in the download file.</p>
<p><strong>Download</strong></p>
<ul>
<li> 		<a href="http://www.mumbles-project.org/wp-content/uploads/2007/09/amarok_mumbles.tar.gz">Download Files</a></li>
</ul>
<p><strong>Also See</strong></p>
<ul>
<li> 		<a href="http://www.mumbles-project.org/wp-content/uploads/2007/09/dbus_trackchange.amarokscript.tar.bz2">Download Just the Amarok DBus Script</a></li>
<li> 		<a href="http://amarok.kde.org/wiki/Scripts">Amarok Scripts</a></li>
<li> 		<a href="http://www.mumbles-project.org/plugins">Mumbles Plugins</a></li>
<li> 		<a href="http://www.mumbles-project.org/extras">Mumbles Extras</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mumbles-project.org/2007/09/05/new-plugin-amarok-track-change-notifications/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tutorial: Write an Evolution Plugin</title>
		<link>http://www.mumbles-project.org/2007/09/03/tutorial-write-an-evolution-plugin/</link>
		<comments>http://www.mumbles-project.org/2007/09/03/tutorial-write-an-evolution-plugin/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 18:09:49 +0000</pubDate>
		<dc:creator>dot_j</dc:creator>
		
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://www.mumbles-project.org/2007/09/03/tutorial-write-an-evolution-plugin/</guid>
		<description><![CDATA[Evolution Plugin
This tutorial will show you how to write a mumbles plugin for Evolution that sends a notification when new mail is received.
Plugin Files
If you want to save yourself some typing (or indenting!) time, or just want to grab the plugin, the files for the tutorial are available here.
[edit: If you're using a newer version [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Evolution Plugin</strong></p>
<p>This tutorial will show you how to write a mumbles plugin for Evolution that sends a notification when new mail is received.</p>
<p><strong>Plugin Files</strong></p>
<p>If you want to save yourself some typing (or indenting!) time, or just want to grab the plugin, the files for the tutorial are available <a href="http://www.mumbles-project.org/wp-content/uploads/2007/08/mumbles_evolution_plugin_tutorial.tar.gz">here</a>.</p>
<p>[edit: If you're using a newer version of Evolution (I have 2.12.1 in Gutsy), a new parameter has been added to the NewMail signal. I have updated the tutorial below to include handling of this parameter, however the files linked above do not yet include this update. Updates will appear shortly in svn</p>
<p><strong>Requirements for this tutorial </strong></p>
<ul>
<li>mumbles version 0.4</li>
<li>dbus-monitor</li>
<li>Evoultion</li>
</ul>
<p><strong>The DBus<br />
</strong><br />
As mumbles makes use of <a href="http://www.freedesktop.org/wiki/Software/dbus">DBus</a>, the first step in writing a plugin for mumbles is to look for the DBus signals, to which, we are able to connect. I like a simple command line application called dbus-monitor for this.</p>
<p>So, let's watch what happens on the DBus while running Evolution. First in a terminal type:</p>
<pre>
<div class="codesnip-container" >dbus-monitor</div>
</pre>
<p>Next start Evolution.</p>
<p>In the output of dbus-monitor you should see (among other things) a few lines that look similar to:</p>
<pre>
<div class="codesnip-container" >signal sender=:1.62 -&gt; dest=(null destination) path=/org/gnome/evolution/mail/newmail;
  interface=org.gnome.evolution.mail.dbus.Signal; member=MessageReading
  string "Inbox"</div>
</pre>
<p>Here, we see a DBus signal named 'MessageReading'. In our example, we're interested in what happens when new mail is received. So send your self a test message and click Send/Receive. You should then see, when your message arrives, in dbus-monitor something like:</p>
<pre>
<div class="codesnip-container" >signal sender=:1.62 -&gt; dest=(null destination) path=/org/gnome/evolution/mail/newmail;
  interface=org.gnome.evolution.mail.dbus.Signal; member=Newmail
  string "mbox:/home/dot_j/.evolution/mail/local#Inbox"
  string "Inbox"
  uint32 1</div>
</pre>
<p>[edit: depending on your version of Evolution you may not see the last uint32]</p>
<p>We see that when, new mail arrives, a signal is sent to the DBus called 'NewMail'. A few other things we'll need to note are:</p>
<ul>
<li>The signal name (member): NewMail</li>
<li> The path: /org/gnome/evolution/mail/newmail</li>
<li> The interface: org.gnome.evolution.mail.dbus.Signal</li>
<li> And the two paramaters that are sent to the signal:
<ul>
<li> &#8220;mbox:/home/dot_j/.evolution/mail/local#Inbox&#8221;</li>
</ul>
<ul>
<li> &#8220;Inbox<strong>&#8220;</strong></li>
<li>[edit: "uint23 1" for newer versions]</li>
</ul>
</li>
</ul>
<p><strong>Writing the plugin </strong></p>
<p>We&#8217;ll make use of those shortly in the code for the plugin. We got what we needed from dbus-monitor, so go ahead and close it and create a new directory in your home directory for our plugin:</p>
<pre>
<div class="codesnip-container" >mkdir ~/evolution_plugin</div>
</pre>
<p>If you have mumbles installed locally and have dug around in the directories, you may have seen the structure of a mumbles plugin. Each plugin has a file named</p>
<pre>
<div class="codesnip-container" >setup.py</div>
</pre>
<p>and a directory named</p>
<pre>
<div class="codesnip-container" >src</div>
</pre>
<p>The src directory contains another python file called</p>
<pre>
<div class="codesnip-container" >__init__.py</div>
</pre>
<p>setup.py is just that - a setup file for our plugin and __init__.py in the src directory is the source file for our plugin.</p>
<p>Now let&#8217;s get down to business. Let&#8217;s setup that structure in a new directory for our plugin:</p>
<pre>
<div class="codesnip-container" >mkdir ~/evolution_plugin/src</div>
</pre>
<p>Next, create setup.py in your favorite editor:</p>
<pre>
<div class="codesnip-container" >gedit ~/evolution_plugin/setup.py</div>
</pre>
<p>And enter:</p>
<pre>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span>
<span class="co1"># A Mumbles Plugin for Evolution</span>
<span class="co1">#&nbsp; &nbsp;Copyright (c) 2007 dot_j &lt;dot_j[at]mumbles-project[dot]org&gt;</span>
<span class="co1">#&nbsp; &nbsp;Lisenced under the GPL</span>
<span class="co1">#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span>

<span class="kw1">from</span> setuptools <span class="kw1">import</span> setup
<span class="kw1">import</span> <span class="kw3">sys</span>, <span class="kw3">os</span>
<span class="kw1">from</span> <span class="kw3">shutil</span> <span class="kw1">import</span> <span class="kw3">copy</span>

__author__ = <span class="st0">&#8216;dot_j[AT]mumbles-project[DOT]org&#8217;</span>
__doc__ = <span class="st0">&#8216;An Evolution plugin for mumbles&#8217;</span>
__version__ = <span class="st0">&#8216;0.1&#8242;</span>

setup<span class="br0">&#40;</span>
&nbsp; &nbsp; name=<span class="st0">&#8216;EvolutionMumbles&#8217;</span>,
&nbsp; &nbsp; version=__version__,
&nbsp; &nbsp; description=__doc__,
&nbsp; &nbsp; author=__author__,
&nbsp; &nbsp; packages=<span class="br0">&#91;</span><span class="st0">&#8216;evolution&#8217;</span><span class="br0">&#93;</span>,
&nbsp; &nbsp; package_dir=<span class="br0">&#123;</span><span class="st0">&#8216;evolution&#8217;</span>:<span class="st0">&#8217;src&#8217;</span><span class="br0">&#125;</span>,
&nbsp; &nbsp; entry_points=<span class="st0">&#8221;</span><span class="st0">&#8216;
&nbsp; &nbsp; [mumbles.plugins]
&nbsp; &nbsp; Evolution = evolution:EvolutionMumbles
&nbsp; &nbsp; &#8216;</span><span class="st0">&#8221;</span>
<span class="br0">&#41;</span></div>
</div>

</dot_j[at]mumbles-project[dot]org></pre>
<p>And save setup.py</p>
<p>Pretty straight forward setup here. We define our author, documentation and plugin version tags and add what we need in order to build our python egg (plugin). For more information about eggs and setuptools see <a href="http://peak.telecommunity.com/DevCenter/setuptools">here</a>.</p>
<p>Now create our plugin source file</p>
<pre>
<div class="codesnip-container" >gedit ~/evolution_plugin/src/__init__.py</div>
</pre>
<p>And enter:</p>
<pre>
<div class="codesnip-container" >
<div class="codesnip"><span class="co1">#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span>
<span class="co1"># A Mumbles Plugin for Evolution</span>
<span class="co1">#&nbsp; &nbsp;Copyright (c) 2007 dot_j &lt;dot_j[at]mumbles-project[dot]org&gt;</span>
<span class="co1">#&nbsp; &nbsp;Lisenced under the GPL</span>
<span class="co1">#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span>

<span class="co1"># We&#8217;ll extend the MumblesPlugin class to create our Evolution plugin</span>
<span class="kw1">from</span> MumblesPlugin <span class="kw1">import</span> *

<span class="kw1">class</span> EvolutionMumbles<span class="br0">&#40;</span>MumblesPlugin<span class="br0">&#41;</span>:

&nbsp; &nbsp; <span class="co1"># Give our plugin a name (using the same name we used in setup.py).</span>
&nbsp; &nbsp; plugin_name = <span class="st0">&#8220;EvolutionMumbles&#8221;</span>

&nbsp; &nbsp; <span class="co1"># Use the dbus interface we saw in dbus-notify</span>
&nbsp; &nbsp; dbus_interface = <span class="st0">&#8220;org.gnome.evolution.mail.dbus.Signal&#8221;</span>

&nbsp; &nbsp; <span class="co1"># Use the dbus path we saw in dbus-notify</span>
&nbsp; &nbsp; dbus_path = <span class="st0">&#8220;/org/gnome/evolution/mail/newmail&#8221;</span>

&nbsp; &nbsp; <span class="co1"># Configure our plugin icon</span>
&nbsp; &nbsp; icons = <span class="br0">&#123;</span><span class="st0">&#8216;evolution&#8217;</span> : <span class="st0">&#8216;evolution.png&#8217;</span><span class="br0">&#125;</span>

&nbsp; &nbsp; <span class="co1"># setup the __init__ function where we define</span>
&nbsp; &nbsp; <span class="co1"># the dbus signal(s), to which, we are connecting.</span>
&nbsp; &nbsp; <span class="co1"># Note this function takes 2 parameters (mumbles_notify and</span>
&nbsp; &nbsp; <span class="co1"># session_bus) that we will hand off to our</span>
&nbsp; &nbsp; <span class="co1"># MumblesPlugin parent class</span>
&nbsp; &nbsp; <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>, mumbles_notify, session_bus<span class="br0">&#41;</span>:

&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Here, we tell our plugin to connect the dbus signal</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># &#8216;Newmail&#8217; to our plugin class&#8217;s &#8216;NewMail&#8217; function</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">signal_config</span> = <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8220;Newmail&#8221;</span>: <span class="kw2">self</span>.<span class="me1">NewMail</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>

&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># and hand off our mumbles_notify and session_bus objects to our parent</span>
&nbsp; &nbsp; &nbsp; &nbsp; MumblesPlugin.<span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>, mumbles_notify, session_bus<span class="br0">&#41;</span>

&nbsp; &nbsp; <span class="co1"># NewMail function</span>
&nbsp; &nbsp; <span class="co1"># This will get called when a NewMail signal is received on the DBus from Evolution</span>
&nbsp; &nbsp; <span class="co1"># Note the function takes 2 parameters (the two we saw in the dbus-monitor activity)</span>
&nbsp; &nbsp; <span class="co1"># [edit: newer versions of Evolution may have a 3rd parameter,</span>
&nbsp; &nbsp; <span class="co1"># the follwoing should work with or without this parameter]</span>
&nbsp; &nbsp; <span class="kw1">def</span> NewMail<span class="br0">&#40;</span><span class="kw2">self</span>, mbox_path, folder_name, some_int=<span class="kw2">None</span><span class="br0">&#41;</span>:

&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Get our icon using the key we used above when configuring our icons dictionary</span>
&nbsp; &nbsp; &nbsp; &nbsp; icon = <span class="kw2">self</span>.<span class="me1">get_icon</span><span class="br0">&#40;</span><span class="st0">&#8216;evolution&#8217;</span><span class="br0">&#41;</span>

&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Define what we want to send in our notification:</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Send a simple title</span>
&nbsp; &nbsp; &nbsp; &nbsp; title = <span class="st0">&#8216;Evolution: New Mail!&#8217;</span>

&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Let&#8217;s send our folder name as our notification message</span>
&nbsp; &nbsp; &nbsp; &nbsp; message = folder_name

&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># If you want to try an advanced version of the plugin,</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># see if you can use the supplied mbox_path to get more information</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># about the message that just arrived! And be sure to let us know</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># about your efforts.</span>

&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Finally, using our mumbles_notification object, send the notification</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">mumbles_notify</span>.<span class="me1">alert</span><span class="br0">&#40;</span><span class="kw2">self</span>.<span class="me1">plugin_name</span>, title, message, icon<span class="br0">&#41;</span></div>
</div>

</dot_j[at]mumbles-project[dot]org></pre>
<p>And just 60 lines of code (with comments!) - not too bad, right? And we&#8217;re almost there. But first, we need to create that icon we used and put it where our plugin can find it.</p>
<p>So,  create a plugins directory in your hidden .mumbles directory in your home folder. If you have run mumbles already, you will already have a directory called ~/.mumbles. If not, create that first, then create the plugin and plugin/icons directories there.</p>
<pre>
<div class="codesnip-container" >mkdir ~/.mumbles (if you need to, but you shouldn&#8217;t)
mkdir ~/.mumbles/plugins
mkdir ~/.mumbles/plugins/icons</div>
</pre>
<p>The default themes that come with mumbles will support an image around 20&#215;20 pixels. So for this example, I used the Evolution icon I had in in /usr/share/icons/hicolor/22&#215;22/apps/evolution.png</p>
<pre>
<div class="codesnip-container" >cp /usr/share/icons/hicolor/22&#215;22/apps/evolution.png ~/.mumbles/plugins/icons</div>
</pre>
<p><strong>Build and install the plugin</strong></p>
<pre>
<div class="codesnip-container" >cd ~/evolution_plugin (if you&#8217;re not already there)
python setup.py bdist_egg</div>
</pre>
<p>This will use our setup.py file to create our plugin. After it runs, you should see a file named</p>
<pre>
<div class="codesnip-container" >EvolutionMumbles-0.1-py2.5.egg</div>
</pre>
<p>in the dist directory that was created by the build process. Here the -py2.5 part of the filename refers to what version of python you are using (it may vary, but if you are able to start mumbles, should not matter).</p>
<p>The .egg file is our plugin, so the only thing left to do is copy that to the mumbles plugin directory.</p>
<pre>
<div class="codesnip-container" >cp dist/EvolutionMumbles-0.1-py2.5.egg ~/.mumbles/plugins</div>
</pre>
<p><strong> Try it<br />
</strong></p>
<p>That&#8217;s it! Now run mumbles and send yourself another email. You should see your new mail notification!</p>
<p>Thanks for following along. I hope you found this tutorial both helpful and interesting. And I hope it inspired you to write a plugin of your own. If you expand on this example, or write a new plugin for your favorite application be sure to let us know!</p>
<p><strong>Files</strong></p>
<p>Download tutorial files <a href="http://www.mumbles-project.org/wp-content/uploads/2007/08/mumbles_evolution_plugin_tutorial.tar.gz">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mumbles-project.org/2007/09/03/tutorial-write-an-evolution-plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mumbles 0.4 is Out!</title>
		<link>http://www.mumbles-project.org/2007/08/30/mumbles-04-is-out/</link>
		<comments>http://www.mumbles-project.org/2007/08/30/mumbles-04-is-out/#comments</comments>
		<pubDate>Fri, 31 Aug 2007 00:19:17 +0000</pubDate>
		<dc:creator>dot_j</dc:creator>
		
		<category><![CDATA[releases]]></category>

		<guid isPermaLink="false">http://www.mumbles-project.org/2007/08/30/mumbles-04-is-out/</guid>
		<description><![CDATA[Mumbles 0.4 is Out
Download and Installation instructions for 0.4 can be found here.
New to this Release:
New Plugins

 mumbles now has plugins for Gaim, Pidgin, Rhythmbox, Firefox*, Thunderbird*, and custom notifications.

*Firefox and Thunderbird plugins require a DBus extension. Please see the extras page for more information.
Theme Support

mumbles 0.4 introduces theming ability. This release comes with 6 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Mumbles 0.4 is Out</strong></p>
<p>Download and Installation instructions for 0.4 can be found <a href="http://mumbles-project.org/download">here</a>.</p>
<p><strong>New to this Release:</strong></p>
<p><strong>New Plugins</strong></p>
<ul>
<li> mumbles now has plugins for Gaim, Pidgin, Rhythmbox, Firefox*, Thunderbird*, and custom notifications.</li>
</ul>
<p>*Firefox and Thunderbird plugins require a DBus extension. Please see the <a href="http://www.mumbles-project.org/extras">extras page</a> for more information.</p>
<p><strong>Theme Support</strong></p>
<ul>
<li>mumbles 0.4 introduces theming ability. This release comes with 6 standard themes and the ability to support custom themes.</li>
</ul>
<p><strong>mumbles-send script</strong></p>
<ul>
<li>mumbles-send is a script included with mumbles that allows sending of custom notifications. See the <a href="http://mumbles-project.org/download">download page</a> for an example of how to use mumbles-send.</li>
</ul>
<p><strong>Growl Network Notification Support</strong></p>
<ul>
<li>When started with Growl Network Notification support, mumbles can receive notifications over the network using the <a href="http://growl.info/">Growl</a> network protocol. mumbles-send can also send Growl network notifications. Use mumbles with your Mac, or just send notifications to another computer running mumbles with Growl Network Notifications enabled. See the Growl section of the mumbles preferences pane or run &#8216;mumbles &#8211;help&#8217; (or &#8216;mumbles-send &#8211;help&#8217;) for information about enabling and configuring Growl Network Notification support.</li>
</ul>
<p><strong>Daemon mode</strong></p>
<ul>
<li>Want to just run mumbles in the background without a panel applet? Run &#8216;mumbles -d&#8217; to start in deamon mode.</li>
</ul>
<p><strong>Click Handling</strong></p>
<ul>
<li>mumbles now supports click handling. Right clicks close the notification and the Firefox plugin opens the downloaded file on left click.</li>
</ul>
<p><strong>Bug fixes and code improvements</strong></p>
<ul>
<li>What&#8217;s a release without them?</li>
</ul>
<p><strong>I hope you dig it.</strong></p>
<ul>
<li>Let me know what you think, what you&#8217;d like to see and whatever else is on your mind. I have some tutorials ready to roll out so check back here for updates on using the new features in mumbles 0.4 including: writing a plugin, creating custom themes and how to unleash the awesomeness that is network enabled notifications!</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mumbles-project.org/2007/08/30/mumbles-04-is-out/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Request for Comments</title>
		<link>http://www.mumbles-project.org/2007/08/04/request-for-comments/</link>
		<comments>http://www.mumbles-project.org/2007/08/04/request-for-comments/#comments</comments>
		<pubDate>Sun, 05 Aug 2007 01:32:28 +0000</pubDate>
		<dc:creator>dot_j</dc:creator>
		
		<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://www.mumbles-project.org/2007/08/04/request-for-comments/</guid>
		<description><![CDATA[I&#8217;ve been getting pretty regular questions about the state of the project, so I thought I&#8217;d start a new thread and ask for some feedback from those of you following the site (and asking me about it).
I&#8217;ve been preoccupied with the job thing, so I haven&#8217;t been working too much on Mumbles. With the most [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been getting pretty regular questions about the state of the project, so I thought I&#8217;d start a new thread and ask for some feedback from those of you following the site (and asking me about it).</p>
<p>I&#8217;ve been preoccupied with the job thing, so I haven&#8217;t been working too much on Mumbles. With the most recent updates (svn is at a state where release 0.4 is coming shortly), it&#8217;s at the point where it does what I wanted it to do (scratched the itch as they say), so going forward, the project is really going to be driven by those of you that use it (and take the time to file a request). So please let me know what you want from the project in the comments for this post. More application plugins? Which applications would you like to see Mumbles support? New features? Better configuration?</p>
<p>As a starting point, here are some things I&#8217;ve been thinking about (and built the project with the idea of implementing in future releases):</p>
<p>* RSS notifications - I&#8217;ve had a request for this from another user and would like to see this myself - it&#8217;s probably the next thing I&#8217;ll work on. I&#8217;m a bit undecided about how to pursue this - should there be a script for something like <a href="http://liferea.sourceforge.net/">Liferea</a> that sends dbus notifications, should I write a simple RSS aggregator that sends dbus notifications? Any ideas/comments?</p>
<p>* Plugin-specific configuration - It seems like an option to only get a notification if your name is said in an IRC room makes sense. I also have the ability to handle clicks on the notification, so things like brining the application to focus or opening the website for the RSS feed make sense (the code in svn has some of this implemented). I believe Growl also keeps notifications open if you mouse over them - should Mumbles?</p>
<p>* libnotify output - I&#8217;ve been thinking it makes sense to make output plugins much like the application (input) plugins and have seen some comments from others who prefer libnotify alerts. So why not let you choose to use the Mumbles (composite enabled) notification or a libnotify notification - or any other kind of output for that matter (save to a database, SMS, email&#8230;?)</p>
<p>* Documentation/Tutorials - I&#8217;d like to drive contributions and assume writing some documentation or a tutorial about how to write a plugin would help on that front. Contributions about contribution would be good too. I&#8217;ve seen a few comments about how people are using Mumbles with other applications and feel the word could really get out with a few examples about how to use the mumbles-send script and/or the Mumbles dbus object (like <a href="http://www.mumbles-project.org/2007/04/15/mumbles-03-is-out/#comment-8">Chris&#8217; Thunderbird example</a>)</p>
<p>* Themeable notifications/images - one could “theme” Mumbles by just swapping out the background image - do we want the ability to easily support themes (or use Gnome settings)? Should mumbles use buddy icons/album art/whatever else for the notification icons (see the point above about plugin-specific) configuration). Do we want to be able to choose font styles/sizes?</p>
<p>* deb package - I would really like to see this in order to make installation easier. I don&#8217;t have much experience with packaging files, so any help here would be greatly appreciated. What systems are you using Mumbles on? - do we want rpm, debs&#8230;?</p>
<p>That will hopefully get things going. Thanks to those of you following the project - the floor is open - I look forward to your ideas &amp; comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mumbles-project.org/2007/08/04/request-for-comments/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pidgin Plugin Now Available</title>
		<link>http://www.mumbles-project.org/2007/06/03/pidgin-plugin-now-available/</link>
		<comments>http://www.mumbles-project.org/2007/06/03/pidgin-plugin-now-available/#comments</comments>
		<pubDate>Sun, 03 Jun 2007 17:55:22 +0000</pubDate>
		<dc:creator>dot_j</dc:creator>
		
		<category><![CDATA[releases]]></category>

		<guid isPermaLink="false">http://www.mumbles-project.org/2007/06/03/pidgin-plugin-now-available/</guid>
		<description><![CDATA[A plugin for Pidgin is now available in SVN repository.
The setup script has been updated to build the egg, so if you update or check out the current version, the installation will remain the same. If you just check out the Pidgin plugin you can either run the newest setup.py script or build the egg [...]]]></description>
			<content:encoded><![CDATA[<p>A plugin for <a href="http://www.pidgin.im/" title="Pidgin">Pidgin</a> is now available in <a href="http://mumbles-project.org/contribute" title="svn">SVN</a> repository.</p>
<p>The setup script has been updated to build the egg, so if you update or check out the current version, the installation will remain the same. If you just check out the Pidgin plugin you can either run the newest setup.py script or build the egg yourself from src/plugins/pidgin:</p>
<p><span class="str">python setup.py develop &#8211;install-dir .. -m</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mumbles-project.org/2007/06/03/pidgin-plugin-now-available/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
