<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>mumbles-project.org</title>
	<atom:link href="/feed/" rel="self" type="application/rss+xml" />
	<link>http://mumbles-project.org</link>
	<description>a plugin driven, modern notification system for Gnome</description>
	<pubDate>Sun, 26 Apr 2009 03:06:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mumbles &amp; Jaunty</title>
		<link>http://mumbles-project.org/2009/04/25/mumbles-jaunty/</link>
		<comments>http://mumbles-project.org/2009/04/25/mumbles-jaunty/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 01:46:25 +0000</pubDate>
		<dc:creator>dot_j</dc:creator>
		
		<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://mumbles-project.org/?p=42</guid>
		<description><![CDATA[I updated to Jaunty today &#38; found a few issues with mumbles, the most problematic being the need for the plugins to be built with python 2.6.
I have updated the 0.4.2 branch to work in Jaunty.
Again, this is the branch that is in line for the next release and any testing/feedback would be appreciated as [...]]]></description>
			<content:encoded><![CDATA[<p>I updated to Jaunty today &amp; found a few issues with mumbles, the most problematic being the need for the plugins to be built with python 2.6.</p>
<p>I have updated the <a title="Pre Release Testers Wanted" href="/2008/08/26/pre-release-testers-wanted/">0.4.2 branch</a> to work in Jaunty.</p>
<p>Again, this is the branch that is in line for the next release and any testing/feedback would be appreciated as we work out the rest of the kinks.</p>
<p>On top of the plugin update, I updated the libnotify interceptor to replace the new Jaunty notify-osd (comments on notify-osd later&#8230;).<span style="text-decoration: line-through;"> The interceptor still has some issues with certain parts of the Freedesktop spec, so it can be unstable (it&#8217;s known to crash gwibber) and needs to be updated before we can release this version.</span> The interceptor has just been updated to support the freedesktop 0.9 spec. This fixed my problem with gwibber and is hopefully complete enough to function without problems (though more features of the spec would be nice). Let me know if you run into any problems.</p>
<p>I also updated the theme handling so that themes can now use system theme colors (or continue to use theme overrides) - you&#8217;ll notice a new default theme and some updates to a few others. This was a feature request a while back and I think it it&#8217;s a very nice addition.</p>
<p>I know I suggested the release was coming out &#8220;soon&#8221; quite some time ago, but life managed to get in the way for all of us working on it (especially me). We do still have some things to update before it can be released but hopefully we can get it out the door soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://mumbles-project.org/2009/04/25/mumbles-jaunty/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Icon Design Contest!</title>
		<link>http://mumbles-project.org/2008/10/05/icon-design-contest/</link>
		<comments>http://mumbles-project.org/2008/10/05/icon-design-contest/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 00:42:01 +0000</pubDate>
		<dc:creator>dot_j</dc:creator>
		
		<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://mumbles-project.org/?p=41</guid>
		<description><![CDATA[Hi all, we&#8217;ll still working away on some very cool stuff - to be released soon. If you&#8217;re interested, please take a look at the 0.4.2 branch in svn.
In the process of getting the new stuff ready for release, I realized/remembered I wasn&#8217;t too thrilled with the current icon &#38; panel applet. My design/inkscape skills [...]]]></description>
			<content:encoded><![CDATA[<p>Hi all, we&#8217;ll still working away on some very cool stuff - to be released soon. If you&#8217;re interested, please take a look at the 0.4.2 branch in svn.</p>
<p>In the process of getting the new stuff ready for release, I realized/remembered I wasn&#8217;t too thrilled with the current icon &amp; panel applet. My design/inkscape skills only went so far, and it&#8217;s time for mumbles to get a design upgrade.</p>
<p>So if you or anyone you know would like to contribute to the project, I invite you to break out your favorite vector graphics program and enter the mumbles icon design contest! Have an artist friend? Please pass this post on and encourage them to submit an entry!</p>
<p>We will be creating some mumbles t-shirts for the new release and would very much like to have a new icon for them. The winner of the contest, on top of the very prestigious credit in the mumbles contributor list, will receive a free t-shirt.</p>
<p>Icon, must be a svg file and have a compatible license to be release as part of the mumbles project. Otherwise we&#8217;re open to design choices, though using colors from the mumbles website/existing icons (tango compatible) is encouraged.</p>
<p>Winner will be chosen using any combination of: my opinion, irc discussion, picking out of a hat, or whatever means we find useful. Depending on the number of submission, a public vote to decide the winner may also be held. Please email your contributions to dot_j (at this domain). Deadline for submission will be Oct 20th with the winner to be announced shortly after.</p>
<p>Thanks</p>
<p>dot_j</p>
]]></content:encoded>
			<wfw:commentRss>http://mumbles-project.org/2008/10/05/icon-design-contest/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pre-release Testers Wanted!</title>
		<link>http://mumbles-project.org/2008/08/26/pre-release-testers-wanted/</link>
		<comments>http://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://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://mumbles-project.org/2008/08/26/pre-release-testers-wanted/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Comments Updated</title>
		<link>http://mumbles-project.org/2008/08/04/comments-updated/</link>
		<comments>http://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://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://mumbles-project.org/2008/08/04/comments-updated/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Twitter Screenlet</title>
		<link>http://mumbles-project.org/2008/03/29/twitter-screenlet/</link>
		<comments>http://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://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="/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://mumbles-project.org/2008/03/29/twitter-screenlet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Twitter Plugin</title>
		<link>http://mumbles-project.org/2008/03/23/twitter-plugin/</link>
		<comments>http://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://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="/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="/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="/plugins">http://mumbles-project.org/plugins</a></p>
<p><a href="/extras">http://mumbles-project.org/extras</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mumbles-project.org/2008/03/23/twitter-plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>This message will self-destruct&#8230;</title>
		<link>http://mumbles-project.org/2007/10/17/this-message-will-self-destruct/</link>
		<comments>http://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://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://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://mumbles-project.org/2007/09/05/new-plugin-amarok-track-change-notifications/</link>
		<comments>http://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://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="/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="/extras">Firefox</a> and <a href="/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="/wp-content/uploads/2007/09/amarok_mumbles.tar.gz">Download Files</a></li>
</ul>
<p><strong>Also See</strong></p>
<ul>
<li> 		<a href="/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="/plugins">Mumbles Plugins</a></li>
<li> 		<a href="/extras">Mumbles Extras</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://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://mumbles-project.org/2007/09/03/tutorial-write-an-evolution-plugin/</link>
		<comments>http://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://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="/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> "mbox:/home/dot_j/.evolution/mail/local#Inbox"</li>
</ul>
<ul>
<li> "Inbox<strong>"</strong></li>
<li>[edit: "uint23 1" for newer versions]</li>
</ul>
</li>
</ul>
<p><strong>Writing the plugin </strong></p>
<p>We'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">#------------------------------------------------------------------------</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">#------------------------------------------------------------------------</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">'dot_j[AT]mumbles-project[DOT]org'</span>
__doc__ = <span class="st0">'An Evolution plugin for mumbles'</span>
__version__ = <span class="st0">'0.1'</span>

setup<span class="br0">&#40;</span>
&nbsp; &nbsp; name=<span class="st0">'EvolutionMumbles'</span>,
&nbsp; &nbsp; version=__version__,
&nbsp; &nbsp; description=__doc__,
&nbsp; &nbsp; author=__author__,
&nbsp; &nbsp; packages=<span class="br0">&#91;</span><span class="st0">'evolution'</span><span class="br0">&#93;</span>,
&nbsp; &nbsp; package_dir=<span class="br0">&#123;</span><span class="st0">'evolution'</span>:<span class="st0">'src'</span><span class="br0">&#125;</span>,
&nbsp; &nbsp; entry_points=<span class="st0">''</span><span class="st0">'
&nbsp; &nbsp; [mumbles.plugins]
&nbsp; &nbsp; Evolution = evolution:EvolutionMumbles
&nbsp; &nbsp; '</span><span class="st0">''</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">#------------------------------------------------------------------------</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">#------------------------------------------------------------------------</span>

<span class="co1"># We'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">"EvolutionMumbles"</span>

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

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

&nbsp; &nbsp; <span class="co1"># Configure our plugin icon</span>
&nbsp; &nbsp; icons = <span class="br0">&#123;</span><span class="st0">'evolution'</span> : <span class="st0">'evolution.png'</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"># 'Newmail' to our plugin class's 'NewMail' 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">"Newmail"</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">'evolution'</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">'Evolution: New Mail!'</span>

&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Let'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'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/22x22/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'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="/wp-content/uploads/2007/08/mumbles_evolution_plugin_tutorial.tar.gz">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://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://mumbles-project.org/2007/08/30/mumbles-04-is-out/</link>
		<comments>http://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://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="/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="/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="/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://mumbles-project.org/2007/08/30/mumbles-04-is-out/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
