pidgin/purple-plugin-pack

Renamed plugins.ini to plugins.cfg
org.guifications.plugins.buildsystem_rewrite
2008-03-29, grim
244e5dec1104
Parents 356d5b55486e
Children 3a1cb1541e52
Renamed plugins.ini to plugins.cfg
Changed the format a bit, renamed dependencies to depends, added a provides option, and remove the plugins section
Added plugins.cfg for every directory that contains at least one plugin
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/autoprofile/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[AutoProfile]
+type=default
+depends=pidgin
+provides=autoprofile
+summary=User profile and status message content generator
+description=Allows user to place dynamic text into profiles and status messages, with the text automatically updated whenever content changes
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/autoreply/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,7 @@
+[Autoreply]
+type=default
+depends=purple
+provides=autoreply
+summary=Autoreply for all the protocols
+description=This plugin lets you set autoreply message for any protocol. You can set the global autoreply message from the plugin options dialog. To set some specific autoreply message for a particular buddy, right click on the buddy in the buddy-list window. To set autoreply messages for some accounts, go to the `Advanced' tab of the account edit dialog.
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/awaynotify/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Away State Notification]
+type=incomplete
+depends=purple
+provides=awaynotify
+summary=Notifies in a conversation window when a buddy goes or returns from away
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bash/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[bash.org]
+type=default
+depends=purple
+provides=bash
+summary=Generates links for quotes at bash.org
+description=Generates links for quotes at bash.org or allows the user to specify a quote. Provides the /bash command.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bit/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Buddy Icon Tools]
+type=incomplete
+depends=pidgin
+provides=bit
+summary=Tools to manipulate buddy icons. *DANGEROUS*
+description=Whilst working on Purple 2.0.0, I found a need to destroy all my buddies' buddy icons. There's nothing to do these functions in Purple, so here they are. Completely, thoroughly untested.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/blistops/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Buddy List Options]
+type=default
+depends=pidgin
+provides=blistops
+summary=Gives extended options to the buddy list
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/buddytime/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,14 @@
+[Buddy Time]
+type=incomplete
+depends=purple
+provides=buddytime
+summary=Quickly see the local time of a buddy
+description=%(summary)s
+
+[Buddy Time (Pidgin UI)]
+type=incomplete
+depends=pidgin buddytime
+provides=gtkbuddytime
+summary=Pidgin user interface for the Buddy Time plugin.
+description=%(summary)s
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/chronic/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,7 @@
+[Chronic]
+type=incomplete
+depends=purple
+provides=chronic
+summary=Sound playing triggers
+description=Allows buddies to remotely trigger sound playing in your instance of Purple with {S <sound>. Inspired by #guifications channel resident EvilDennisR and ancient versions of AOL. THIS PLUGIN IS NOT YET FUNCTIONAL! IT IS USELESS!
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/colorize/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Colorize]
+type=default
+depends=purple
+provides=colorize
+summary=Colorizes outgoing message text.
+description=Colorizes outgoing message text to a gradient of specified starting and ending RGB values.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/convbadger/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Conversation Badger]
+type=default
+depends=pidgin
+provides=convbadger
+summary=Badges conversations with the protocol icon.
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dewysiwygification/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[DeWYSIWYGification Plugin]
+type=default
+depends=purple
+provides=dewysiwygification
+summary=Lets you type in HTML without it being escaped to entities.
+description=%(summary)s This will not work well for some protocols. Use "&lt;" for a literal "<".
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dice/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,7 @@
+[Dice]
+type=default
+depends=purple
+provides=dice
+summary=Rolls dice in a chat or im
+description=Adds a command (/dice) to roll an arbitrary number of dice with an arbitrary number of sides. Now supports dice notation! /help dice for details
+
--- a/dice/plugins.ini Sat Mar 29 06:59:26 2008 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-[plugins]
-sections=dice
-
-[dice]
-name=Dice
-type=default
-dependencies=purple
-summary=Rolls dice in a chat or im
-description=Adds a command (/dice) to roll an arbitrary number of dice with an arbitrary number of sides. Now supports dice notation! /help dice for details
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/difftopic/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[DiffTopic]
+type=default
+depends=pidgin
+provides=difftopic
+summary=Show the old topic when the topic in a chat room changes.
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/eight_ball/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Magic 8 Ball]
+type=default
+depends=purple
+provides=eight_ball
+summary=Provides Magic 8-ball like functionality
+description=%(summary)s with the /8ball command, as well as similar functionality for common Stargate words or phrases with the /sg-ball command.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/enhancedhist/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Enhanced History]
+type=default
+depends=pidgin
+provides=enhancedhist
+summary=An enhanced version of the history plugin.
+description=%(summary)s Grants ability to select the number of previous conversations to show instead of just one.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/findip/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Find IP]
+type=abusive
+depends=purple
+provides=findip
+summary=Find the IP of a person in the buddylist.
+description=%(summary)s This doesn't really work.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flip/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,8 @@
+[Coin Flip]
+name=Coin Flip
+type=default
+depends=purple
+provides=flip
+summary=Flips a coin and outputs the result
+description=Adds a command (/flip) to flip a coin and outputs the result in the active conversation
+
--- a/flip/plugins.ini Sat Mar 29 06:59:26 2008 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-[plugins]
-sections=flip
-
-[flip]
-name=Coin Flip
-type=default
-dependencies=purple
-summary=Flips a coin and outputs the result
-description=Adds a command (/flip) to flip a coin and outputs the result in the active conversation
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gRIM/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[gRIM]
+type=default
+depends=pidgin
+provides=gRIM
+summary=A completely stupid and pointless plugin
+description=Adds commands to annoy buddies with. Inspired by a dumb IRC convo and Red Dwarf.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/groupmsg/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Group IM]
+type=abusive
+depends=purple
+provides=groupmsg
+summary=Send an IM to a group of buddies.
+description=Adds the option to send an IM to every online buddy in a group.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hideconv/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Hide Conversation]
+type=incomplete
+depends=pidgin
+provides=hideconv
+summary=Hide conversations without closing them.
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/highlight/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Highlight]
+type=default
+depends=purple
+provides=highlight
+summary=Support for highlighting words.
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ignorance/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Ignorance]
+type=incomplete
+depends=pidgin
+provides=ignorance
+summary=Allows you to manage lists of users with various levels of allowable activity.
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ignore/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Ignore]
+type=default
+depends=purple
+provides=ignore
+summary=Flexible plugin to selectively ignore people. Please do not use if you have amnesia.
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/infopane/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Infopane Options]
+type=default
+depends=pidgin
+provides=infopane
+summary=Allow customizing the details information in conversation windows.
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/irc-more/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[IRC More]
+type=default
+depends=purple
+provides=ircmore
+summary=Adds additional IRC features.
+description=Adds additional IRC features, including a customizable quit message, a customizable CTCP VERSION reply, and the /notice command for notices.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/irchelper/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[IRC Helper]
+type=default
+depends=purple
+provides=irchelper
+summary=Handles the rough edges of the IRC protocol.
+description=Provides transparent authentication with a variety of services and suppresses various useless messages
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/irssi/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Irssi Features]
+type=default
+depends=pidgin
+provides=irssi
+summary=Implements features of the irssi IRC client for use in Pidgin.
+description=Implements some features of the IRC client irssi to be used in Purple. It lets you know in all open conversations when the day has changed, adds the lastlog command, adds the window command, etc. The day changed message is not logged.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lastseen/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Last Seen]
+type=default
+depends=pidgin
+provides=lastseen
+summary=Record when a buddy was last seen.
+description=Logs the time of a last received message, what they said, when they logged in, and when they logged out, for buddies on your buddy list.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/listhandler/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[List Handler]
+type=default
+depends=purple
+provides=listhandler
+summary=Provides numerous user-requested list-handling capabilities.
+description=Provides numerous user-requested list-handling capabilities, such as importing and exporting of AIM .blt files and generic protocol-agnostic XML .blist files, as well as direct copying of buddies from one account to another.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mystatusbox/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Mystatusbox (Show Statusboxes)]
+type=default
+depends=pidgin
+provides=mystatusbox
+summary=Hide/Show the per-account statusboxes
+description=You can show all the per-account statusboxes, hide all of them, or just show the ones that are in a different status from the global status. For ease of use, you can bind keyboard shortcuts for the menu items.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/napster/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Napster]
+type=default
+depends=purple
+provides=napster
+summary=NAPSTER Protocol Plugin
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/nicksaid/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Nicksaid]
+type=default
+depends=pidgin
+provides=nicksaid
+summary=Record when someone said your nick in a chat.
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/oldlogger/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Old Logger]
+type=default
+depends=purple
+provides=oldlogger
+summary=Re-implements the legacy, deficient, logging
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/plonkers/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Plonkers]
+type=default
+depends=pidgin
+provides=ponkers
+summary=Tell plonkers what you really think.
+description=Plonkers is a small plugin that lets you announce to a chat room your current list of ignores, as well as providing other pointless ignore and privacy tools for dealing with idiots. The name is inspired by the British/Irish word for 'idiots.'
--- a/pluginpack.py Sat Mar 29 06:59:26 2008 -0400
+++ b/pluginpack.py Sat Mar 29 18:50:25 2008 -0400
@@ -5,63 +5,81 @@
import os.path
import sys
-plugins = []
+def printerr(msg):
+ print >> sys.stderr, msg
class Plugin:
name = ''
+ provides = ''
summary = ''
description = ''
directory = ''
- dependencies = []
+ depends = []
type = ''
def __init__(self, directory, name, parser):
self.directory = directory
+ self.name = name
- self.name = parser.get(name, 'name')
+ self.provides = parser.get(name, 'provides')
self.summary = parser.get(name, 'summary')
self.description = parser.get(name, 'description')
- self.dependencies = parser.get(name, 'dependencies').split()
+ self.depends = parser.get(name, 'depends').split()
self.type = parser.get(name, 'type')
+ if self.type != 'default' and self.type != 'incomplete' and self.type != 'abusive':
+ printerr('\'%s\' has an unknown type of \'%s\'!' % (self.name, self.type))
+
def __str__(self):
- return '[name=\'%s\', directory=\'%s\']' % (self.name, self.directory)
+ return self.name
-def printerr(msg):
- print >> sys.stderr, msg
-
-def load_plugins():
- for file in glob.glob('*/plugins.ini'):
- parser = ConfigParser.ConfigParser()
+class PluginPack:
+ plugins = []
- try:
- parser.read(file)
- except ConfigParser.ParsingError, msg:
- printerr('Failed to parse \'%s\':\n%s' % (file, msg))
- continue
+ def load_plugins(self):
+ for file in glob.glob('*/plugins.cfg'):
+ parser = ConfigParser.ConfigParser()
- if not parser.has_section('plugins'):
- printerr('\'%s\' does not have a plugins section!' % file)
- continue
-
- if not parser.has_option('plugins', 'sections'):
- printerr('\'%s\' does not have a sections option under the plugins section' % file)
- continue
-
- for plugin in parser.get('plugins', 'sections').split():
- if not parser.has_section(plugin):
- printerr('\'%s\' does not have a section named \'%s\'!' % (file, plugin))
+ try:
+ parser.read(file)
+ except ConfigParser.ParsingError, msg:
+ printerr('Failed to parse \'%s\':\n%s' % (file, msg))
continue
- p = Plugin(os.path.dirname(file), plugin, parser)
+ for plugin in parser.sections():
+ p = Plugin(os.path.dirname(file), plugin, parser)
+
+ self.plugins.append(p)
+
+ def list(self, type):
+ list = []
+
+ for plugin in self.plugins:
+ if plugin.type == type:
+ list.append(plugin)
+
+ return list
- plugins.append(p)
+ def dump_list(self, list):
+ for i in list:
+ print '\t%s' % i
+
+ def debug(self):
+ print 'Default:'
+ self.dump_list(self.list('default'))
+
+ print 'Abusive:'
+ self.dump_list(self.list('abusive'))
+
+ print 'Incomplete:'
+ self.dump_list(self.list('incomplete'))
def main():
- load_plugins()
+ pp = PluginPack()
- for p in plugins:
- print p
+ pp.load_plugins()
+
+ pp.debug()
if __name__ == "__main__":
main()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/schedule/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Pidgin Schedule]
+type=default
+depends=pidgin
+provides=gtkschedule
+summary=Schedule reminders at specified times.
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sepandtab/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Separate And Tab]
+type=default
+depends=pidgin
+provides=sepandtab
+summary=Adds two placement functions for separating and tabbing
+description=Adds two new placement functions. One separates IMs and groups chats in tabs, the other separates chats and groups IMs in tabs.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/showoffline/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Show Offline]
+type=default
+depends=purple
+provides=showoffline
+summary=Show specific buddies while offline.
+description=Adds the option to show specific buddies in your buddy list when they are offline, even with "Show Offline Buddies" turned off.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/simfix/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[SIM-fix]
+type=default
+depends=purple
+provides=simfix
+summary=Fix messages from broken SIM clients.
+description=Fixes messages received from broken SIM clients by stripping HTML from them. The buddy must be on your list and set as a SIM user.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/slashexec/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,7 @@
+[/exec]
+type=default
+depends=purple
+provides=slashexec
+summary=/exec a la UNIX IRC CLI
+description=A plugin that adds the /exec command line interpreter like most UNIX/Linux IRC clients have. Also included is the ability to execute commands with an exclamation point (!uptime, for instance)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/snpp/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[SNPP]
+type=default
+depends=purple
+provides=snpp
+summary=SNPP Plugin
+description=Allows libpurple to send messages over the Simple Network Paging Protocol (SNPP).
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/splitter/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Message Splitter]
+type=incomplete
+depends=purple pango
+provides=splitter
+summary=Splits a large outgoing message into smaller messages of a specified size.
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sslinfo/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[SSL Info]
+type=default
+depends=purple
+provides=sslinfo
+summary=Displays info about your currently loaded SSL plugin
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/stocker/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Stocker]
+type=incomplete
+depends=pidgin
+provides=stocker
+summary=A stock ticker
+description=Adds a stock ticker similar to the one in the Windows AIM client to the bottom of the buddy list.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/switchspell/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[Switch Spell]
+type=default
+depends=pidgin
+provides=switchspell
+summary=Switch Spell Checker Language
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/talkfilters/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[GNU Talk Filters]
+type=default
+depends=pidgin
+provides=talkfilters
+summary=Translates text in outgoing messages into humorous dialects.
+description=The GNU Talk Filters are filter programs that convert ordinary English text into text that mimics a stereotyped or otherwise humorous dialect. These filters have been in the public domain for many years, and have been made available as a single integrated package. The filters include austro, b1ff, brooklyn, chef, cockney, drawl, dubya, fudd, funetak, jethro, jive, kraut, pansy, pirate, postmodern, redneck, valspeak, and warez.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/timelog/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[TimeLog]
+type=default
+depends=pidgin
+provides=timelog
+summary=allows the viewing of Pidgin logs within a specific time range
+description=%(summary)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xchat-chats/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[XChat Chats]
+type=default
+depends=pidgin
+provides=xchat-chats
+summary=XChat-like chats with Pidgin
+description=You can chat in Pidgin using XChat's indented view.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xmmsremote/plugins.cfg Sat Mar 29 18:50:25 2008 -0400
@@ -0,0 +1,6 @@
+[XMMS Remote Control]
+type=default
+depends=pidgin xmms
+provides=xmmsremote
+summary=Control XMMS from Pidgin conversations
+description=A small plugin that adds a menu or buttons to the menu bars of Pidgin conversation windows so that you can control XMMS from within Pidgin.