Плагины для pidgin windows

This page contains a list of plugins from trusted authors and the community. This index is to help users find useful plugins but inclusion on this list does not imply that the Pidgin Team endorses the plugins, their quality, or even their usefulness.

To have a plugin included in this index there are a few requirements. The plugin must be released under an OSI Approved License and the code must be audited by a member of the Pidgin Team.

If you believe a plugin should be on this list, please use this issue template to make your request and start the process.




  • What makes an author trusted you ask? Basically they’ve been working with us for a long time and they put out some great software!



  • Created by the pidgin community. That is individuals that we haven’t had the opportunity to work with as much as others.
Name Type Info Audited Maintainer
  Adium to Pidgin themes converter

Interface Tweaks Allows to convert themes from www.adiumxtras.com
  Amazon Chime

Protocol Online meeting and video conferencing Amazon Web Services — Labs
  Attention Button

Interface Tweaks Hide the attention button
  Audible Alerts

Notifications Audible notification of a received IM by reading the buddy’s screen name meiser024
  Authorization Blocker

Security and Privacy The plugin blocks the first authorization request of a contact and answers with the order to ask for authorization again. This helps to prevent spam on ICQ accounts. Konrad Gräfe
  Auto Authorization

Accounts and Logs Automatic handling of request of remote user who wants to appear in your buddy list
  Auto Translate

Miscellaneous Auto translates incoming IMs
  Autohide
(broken link)


Interface Tweaks Buddy list improvements like autohide, always on top and hide min/max buttons
  Autojoin Chat

Interface Tweaks Skips the ‘x invited you to join a chat’ message EionRobb
  autoresize

Interface Tweaks Automatically update the buddy list to fit its contents (vertically).
  Away-on-Lock
(broken link)


Profile and Status Updates Sets you as away when the screensaver gets activated. (Linux Gnome and KDE4)
  b64
(broken link)


Miscellaneous Base 64 encoding of chat messages (A very simple Perl plugin)
  Battle.net Classic

Protocol Blizzard’s gaming network: notably for StarCraft, Diablo II, and WarCraft III nmbook
Battle.net v2

Protocol Blizzard’s gaming network for WoW, Overwatch and others EionRobb
  Birthday Reminder

Miscellaneous Reminds you of your buddies birthdays. Konrad Gräfe
  Block <user> has left the conversation.

Miscellaneous Very simple plugin that blocks the message “
has left the conversation.”
  Block AOL System Msg

Miscellaneous Very simple plugin that blocks messages from “AOL System Msg” when you are logged into AIM from multiple locations.
  Bluetooth Notifier

Notifications Sends new chat messages directly to your cell phone or any other Bluetooth-enabled device holthuis
  Bot Sentry

Security and Privacy Stop spam bots deckrider
  bOt_tOOls
(broken link)


Security and Privacy Configurable plugin for auto-ignoring yahoo spammers Eric Dziewa
  bridgin

Miscellaneous Relay messages between chat rooms via a plugin
  bridgin-php

Miscellaneous Relay messages between chat rooms via a dbus plugin

Deprecated for bridgin
Campfire

Protocol Protocol plugin for Basecamp’s Campfire IM jrfoell
  Character Counter

Interface Tweaks Plugin for displaying the character count of the current message. Konrad Gräfe
  ChatGPT

Protocol Lets you create and chat with OpenAI GPT bots 2024-11-07 EionRobb
  Chatpop

Notifications Show open chats when receiving a persistent chat message teleshoes
  Command-execute

Notifications Executes a command on a new message and works for both Pidgin and Finch tymm
  Command-notification

Notifications Based off Led-notification this plugin will execute a command on receiving a new message GuySoft
  core-answerscripts

Miscellaneous Framework for hooking simple but powerful “answerscripts” to received messages.
  Deltachat

Protocol IM over email ccpp
  Discord

Protocol Text chat for gamers EionRobb
  DockApp

Miscellaneous Allows Pidgin to appear as an AfterStep Wharf icon.
  Docker

Protocol Send stdin commands to Docker containers samuelkarp
  Expand

Interface Tweaks Automatically expand shortened URLs. No more rick-rolling!
  Extended Buddy List Sort

Interface Tweaks Adds more buddy list sorting options Konrad Gräfe
  Extended Preferences

Miscellaneous Provides some often-requested preferences
  F-List

Protocol F-List roleplaying community fchat-pidgin
  Facebook

Protocol Facebook chat dequis
  Facebook Notifier
(broken link)


Miscellaneous Indicates when there are unread Facebook notifications.
  Fonomo Video
(broken link)


Miscellaneous Enables Video-chat invitations via Fonomo.com (requires Adobe Flash v9 or higher)
  forward2mobile

Accounts and Logs Forwards and sends your IM messages to/from your existing account that you already use on your mobile with your favorite mobile IM client
  Full Screen Busy

Profile and Status Updates Sets the status to busy (or any saved status) when a full screen application is detected. (Windows)
Gammu

Protocol Send SMS through your feature phone via usb/serial/bluetooth/irda EionRobb
Google Chat logo

Google Chat

Protocol Alternative plugin for Google Chat EionRobb
  Google Invisibility Half Scan

Miscellaneous WARNING! GOOGLE HAS FIXED THE BUG! THIS PLUGIN IS NO LONGER WORKING! Find out if your (Gtalk) buddies are INVISIBLE. Note: This is an “HALF SCAN” because you can not establish with certainty that a buddy is invisible (read Description).
  Google Invisibility Tracker

Miscellaneous This plugin alerts you when a buddy of yours (using Gmail, GTalk Lab Edition or iGoogle) go invisible
  Google Shared Status

Profile and Status Updates Adds Google Shared Status compatibility that permit to set the status for all the resources connected. This allows to go Invisible…
  Google Talk Invisible
(broken link)


Profile and Status Updates Adds the ability to go invisible with Google Talk (XMPP/Jabber protocol)
GroupMe

Protocol GroupMe group messaging djhaskin987
  Growl

Miscellaneous Perl plugin to use Growl. Requires growlnotify. Particularly useful for finch where an IM in a different window may go unnoticed.
  Guifications

Notifications Provides toaster popup notifications Gary Kramlich
  Guiops

Interface Tweaks GUIOps plugin provides more GUI customization options
Hangouts

Protocol Alternative plugin for Google Hangouts EionRobb
  Headset

Miscellaneous Supports mute and hangup buttons from USB headsets
Heroes of Newerth

Protocol Online video game theli-ua
  Hide Chat

Interface Tweaks Hides the window/tab for a channel when the account is connected. (useful for auto-join channels) Konrad Gräfe
  Hide Inactive Buddies

Miscellaneous Plugin to hide inactive buddies in buddy list. Determine inactive buddy by status.
  History control
(broken link)


Accounts and Logs Buddy- and Historysync as Perl Pidgin Plugin
  Ignore Nick Change

Interface Tweaks Hides the “X is now known as Y” messages in chats
  IM Pusher

Notifications An extension of Notifo Notifications, pushes your messages at specified statuses (e.g. when you are away), two push services (notifo & pushme.to) are supported coolwanglu
  IM-History Plugin
(broken link)


Accounts and Logs Provides easy and convenient way to store your chats and contact list online (using im-history.com service).
  Instant messaging NetCat Port Forwarding

Miscellaneous Do a basic port forwarding via Instant messaging using NetCat
  Instant messaging Remote Access

Miscellaneous Client/server plugin to exec commands/open a shell in a virtual terminal on buddies PC. It’s a kind of telnet via Instant Messaging
  Instant messaging Virtual Terminal

Miscellaneous Opens a Virtual Terminal in your PC controlled by buddies via IM
Internet Citizen’s Band (ICB)

Protocol ICB pelotasplus
  IRC Away
(broken link)


Profile and Status Updates Changes your IRC nick to indicate you are away.
  IRC Format

Interface Tweaks A Pidgin/libpurple plugin that lets you send and receive bold/underline/italic/colored text in IRC chats/IMs.
  IRC Status

Profile and Status Updates Changes your IRC nick to indicate you are away rickyepoderi
  Jabber Pseudo Invisibility

Profile and Status Updates Adds a pseudo invisible status for Jabber/XMPP accounts namely you result offline but you can monitor the status of your favourite buddies (and start conversations). Read carefully How to Use!!!
  JRC

Protocol libpurple implementation of a JRChat client telyn
  Juick Plugin

Miscellaneous Plugin specially designed for [http://juick.com Juick] xmpp-microblogging service, providing support for moods and inline avatars
  Keyboard LED Notification
(broken link)


Notifications LegLedNot is a keyboard LED notification plugin for Pidgin Gabriel Cséfalvay
  keys per minute
(broken link)


Interface Tweaks Counts the keys per minute while you are typing a message and displays it.
  KNotifications

Notifications Perl plugin that provides KDE 4 notifications mrovi
  Language Translator

Miscellaneous Plugin to translate outgoing text from English language to selected language.
  Last.FM Plugin

Profile and Status Updates Shows information from your Last.FM / Audioscrobbler profile in your status message. natureshadow
  Led-notification

Notifications Provides notifications with laptops’ extra LEDs and similar Simo Mattila
  led-notification

Notifications Fork of Led-notification. Adds support for ThinkPads Sitwon
  Leftify tabs

Interface Tweaks Moves a conversation tab to the leftmost position in the tab bar whenever a message arrives.
  LINE

Protocol Mobile SMS replacement supersonictw
  Lock ‘n’ Roll

Profile and Status Updates Set any active accounts to Away (with a user-defined message if applicable) when the workstation locks, and back to Available when it is unlocked. If an account has an existing away message set, Lock ‘n’ Roll leaves it alone. (Windows) DanielLaberge
  Logstatus

Accounts and Logs Logs all the status changes to the buddy history.
  Logviewer

Accounts and Logs Logsearch for all chat logs
  lurch

Security and Privacy Encrypts XMPP conversations using OMEMO gkdr
  MacOS Integration

Interface Tweaks Adds native menu and notifications for OSX.
  MacOS Pidgin Bundle

Interface Tweaks Adds dock icons for Pidgin on OSX
  Manual Resize

Interface Tweaks Allows manually resizing the conversation window entry area.
  Master Password

Security and Privacy Protects account passwords by a master password. Konrad Gräfe
Matrix

Protocol Distributed IM matrix-org
Mattermost

Protocol Open-source replacement for Slack EionRobb
  Media Emblems

Interface Tweaks Adds emblems to the buddy list to show if a user supports Voice or Video calls.
  Meebo

Miscellaneous auto add and accept guests for meebo me widget for livechat from websites in pidgin
  MegaHAL

Miscellaneous connects Pidgin to MegaHAL. The contact will be answered by MegaHAL instead of by us
  Meshtastic

Protocol A Meshtastic plugin for Pidgin dadecoza
  Microblog

Protocol Twitter/Identica/Laconica updates fr0nk
  Morse Code Talk

Miscellaneous This Plugin contains the entire Morse Code. Have one more friend around to use it, it can be a lot of fun to communicate in this way.
  msn-pecan

Protocol Alternative MSN access felipec
  Mumble

Protocol Gaming voice chat petteripitkanen
  Music Tracker

Now Playing Displays the music track currently playing in the status message. Supports a wide range of audio players.
  MusicInfo
(broken link)


Now Playing Displays the currently-playing music in your status message and profile. Winamp API compatible.
  MX610-notification

Notifications Provides notifications with Logitech MX610’s IM led Simo Mattila
  NateOn

Protocol Korean network kaisyu
  NetNexus

Protocol netnexus.com’s chatrooms EionRobb
Netsoul

Protocol French network wlallemand
  Ning

Protocol Ning-based social networks EionRobb
  No IRC /who

Miscellaneous Removes the periodic /who check from the IRC protocol, to stop flooding, slowdowns and “Max sendq exceeded” errors 2024-08-29 EionRobb
  Off-the-Record Messaging (OTR)
(broken link)


Security and Privacy Encrypts conversations and provides security even when keys are compromised OTR Development Team
  Office Hours

Accounts and Logs A plugin that logs you out if you go idle outside your ‘office hours’ so you can log in the same account(s) at home. In perl so may not work on MS Windows
OkCupid

Protocol OKCupid dating website EionRobb
  Omegle

Protocol omegle.com’s web-based random chat EionRobb
  PaintBoard

Miscellaneous This plugin allows you to draw with your friend on common board.
  Pidgin Advanced Sound Notification

Notifications This plugin adds sounds for some notifications to pidgin (Incoming file transfer, Authentication requested, etc.) Konrad Gräfe
  Pidgin Backup

Accounts and Logs Simply back up your preferences (prefs.xml)
  Pidgin Conversation Locker

Interface Tweaks Prevent closing of important conversations(/tabs) by selectively locking them.
  Pidgin Conversation Save Order

Interface Tweaks Save the order of chats and IMs and restore it the next time you open a conversation. Konrad Gräfe
  Pidgin current track

Now Playing Current Track plugin will update your Pidgin user info, available message or away message, and buddy icon from iTunes, Winamp, RealPlayer, WMP, Musicmatch, MediaMonkey, XMPlay, Yahoo! & Foobar2000 in Windows and XMMS, Rhythmbox, & Amarok in Linux.
  Pidgin Embedded Video

Miscellaneous A GTK plugin to watch videos directly into your Pidgin conversation
  Pidgin Group Chat Typing Notifications

Interface Tweaks Display typing notifications of users in a compatible multi-user chat
  Pidgin PBar

Interface Tweaks A toolbar to update some account settings globally.
  Pidgin Personal Bar

Interface Tweaks Adds a section at the top of your buddy list to change your display name and personal message.
  Pidgin Windows Position Manager

Interface Tweaks Places new conversation windows intelligently in Windows (i.e. doesn’t always put them in the top left corner).
  Pidgin ZNC Helper

Miscellaneous Display correct timestamps on messages replayed by a ZNC Bouncer. Konrad Gräfe
  Pidgin-Audacious-Remote

Now Playing Updates the status message using custom information retrieved from Audacious Media Player. This plugin also allows control over Audacious Media Player from the Pidgin conversation windows (play, pause, next…).
  pidgin-autoanswer

Accounts and Logs A personal adviser, that tries to find suitable answers in your previous logs
  pidgin-capsnot

Notifications Keyboard LED Notification (caps-lock/num-lock/scroll-lock) for Pidgin/Finch EionRobb
  pidgin-cmds

Interface Tweaks Various conversation commands
  Pidgin-convreverse

Miscellaneous Reverses any word on all conversation.
  Pidgin-Countdown

Profile and Status Updates Sets your status counting down to a specific date & time. Stephen English
  Pidgin-dock

Notifications Emulate Mac OS X — dock behaviour with cairo-dock Sergey Klimov
  Pidgin-Encryption

Security and Privacy Encrypts conversations using stored RSA keys obobo
  Pidgin-eSpeak

Miscellaneous Reads incoming text messages via eSpeak (text-to-speech).
  Pidgin-GeoURI

Miscellaneous Convert geo URI scheme to Google Maps or OpenStreetMap link
  pidgin-gnome-keyring

Security and Privacy Stores account passwords in the system keyring instead of as plaintext aebrahim
  Pidgin-google-contact

Miscellaneous Syncs the buddy list with google contacts
  Pidgin-googledesktop

Miscellaneous Google Desktop Indexing Plugin for Pidgin
  Pidgin-GPG

Security and Privacy Pidgin GPG/OPENPGP (XEP-0027) Plugin Alex Segler
  Pidgin-Identica-Status

Profile and Status Updates Use a feed from identi.ca as your Pidgin status.
  pidgin-im-gnome-shell-extension

Notifications Make Pidgin IM conversations appear in the Gnome Shell message tray muffinmad
  pidgin-juice

Accounts and Logs Web-based iPhone interface for Pidgin/Finch
  Pidgin-LaTeX

Miscellaneous Allows you to include mathematical formulas in your conversations.
  pidgin-nudge

Interface Tweaks Shakes your conversation window when you receive a nudge/buzz/zap
  Pidgin-Paranoia

Security and Privacy Encrypts conversations using one-time pads boognu, nowic
  Pidgin-privacy-please

Security and Privacy Stop spam bots hwms
  Pidgin-Twitter

Protocol Twitter plugin honeyplanet
  Pidgin-Twitter-Status

Profile and Status Updates Use a feed from Twitter as your Pidgin status. No OAuth required. Works via RSS. guysoft
  pidgin-wincred

Security and Privacy Save passwords as windows credentials instead of as plaintext aebrahim
  PidginSnarl

Notifications Notifications using Snarl on Windows sven
  pidginTeX

Miscellaneous Renders mathematical expressions. Lots of options, size, colors, etc. Built upon Pidgin-LaTeX.
  Pidglet

Miscellaneous A Windows Vista Sidebar Gadget that displays your buddy list.
  PiFo

Miscellaneous Renders various latex markups and procedural graphics code.
  pilt spotify

Now Playing ‘now listening’ plugin for spotify
  Protocol Icon Override

Interface Tweaks Lets you pick the protocol icon to display per-account
  Protocol Status Icons

Interface Tweaks Adds the protocol icon to the status icons in the buddy list. Konrad Gräfe
PubNub

Protocol Real-time messaging system pubnub
Pulse SMS

Protocol SMS messaging via your Android phone EionRobb
  Purple History Since

Accounts and Logs Avoid duplicated chat history on some XMPP servers Konrad Gräfe
  Purple Import Empathy

Interface Tweaks A pidgin plugin that imports empathy accounts and logs
  Purple Plugin Pack

Miscellaneous Provides over 50 various plugins, including oft-requested IRC-related plugins.
  Purple Twitter Syncup

Profile and Status Updates Set User Tweet as Pidgin Status. Standalone application using reliable OAuth Authentication and DBus. yogeshpathade
purple-feed

Protocol RSS and Atom feed reader moraxy
  purple-libnotify+

Notifications Provides libnotify notifications sardemff7
  Purple-Presence
(broken link)


Profile and Status Updates Provides GnomeSession Presence status support to Purple sardemff7
Pushbullet

Protocol Send pushes and SMS (Android-only) via Pushbullet EionRobb
  QIP decoder
(broken link)


Miscellaneous Corrects invalid incoming QIP 2005 diacritics and local symbols
  QQ (libqq-pidgin)

Protocol QQ protocol support libqq-pidgin
QQ (pidgin-lwqq)

Protocol QQ protocol support (Based on WebQQ) xiehuc
QQ (purple-oicq)

Protocol A binding to takayama-lily’s OICQ library. axon-oicq
  Quickadd

Interface Tweaks This a simple plugin for pidgin. The idea is to alter the context menu of email addresses in conversations and add option to add the address as a buddy
  Quickpurple

Interface Tweaks Provides quick buddy lookup, status switch, unread messages list and access to some Pidgin dialogs.
  Quote selected text

Interface Tweaks Quick specify message to answer
  Rainbow Bridge

Miscellaneous Simple relay bot for Libpurple chats
  Rediffbol

Protocol Indian network Arnold Noronha
Rocket.Chat

Protocol Open-source replacement for Slack EionRobb
  Roster

Profile and Status Updates contact suggestions for Jabber, as described in XEP-0144 dzzinstant
  RSS / ATOM

Miscellaneous Shows Feed updates as messages in a conversation window. Requires Python and presently only works on Linux.
  Scroll Lock Indicator

Profile and Status Updates Flashes scroll/caps/num lock light on new message dotdias
  Scroll to bottom
(broken link)


Interface Tweaks Scrolls chat history of created conversation windows automatically to the bottom.
  Send Screenshot
(broken link)


Miscellaneous Take a screenshot and send it to a buddy.
  Session Save
(broken link)


Interface Tweaks Session Save will remember what conversation windows you had open the last time you used Pidgin, and re-open them for you when you sign on.
  Signal (presage)

Protocol A libpurple/Pidgin protocol plugin for Signal (formerly textsecure) using presage. hoehermann
  Signal (signald)

Protocol Secure mobile messaging. (Deprecated see purple-presage) hoehermann
  Silence

Profile and Status Updates Mutes everything megacoder
  SIPE

Protocol Microsoft Office Communicator, Reuters Messaging Stefan Becker
Skype

Protocol Skype IM protocol support EionRobb
Slack

Protocol Team collaboration tool dylex
  Sluggish

Profile and Status Updates Sluggish will delay changing your status to Available until you have been back at your keyboard for several minutes. jamesboston
  Smart Ear
(broken link)


Notifications Customized per-buddy sound events Matt Perry
  Smiley Shortcuts

Interface Tweaks Inserts a smiley on ctrl+(number) combination.
SMS

Protocol Purple SMS plugin using ModemManager Librem5
  Spinp

Protocol Decentralised chat farcdev
  SQLite Logger

Accounts and Logs IM/Chat logger with a SQLite backend
  Status Hot Keys

Profile and Status Updates Global shortcut keys to set status and manipulate the buddy window visibility castledragmire
  Status RSS
(broken link)


Profile and Status Updates Update status from RSS feed
  Status to Twitter

Profile and Status Updates Update Twitter with your Pidgin Status
Steam IM (mobile)

Protocol Steam Friends gaming network EionRobb
Steam IM (native)

Protocol Steam Friends gaming network seishun
  STFW
(broken link)


Miscellaneous A plugin that helps you teach your buddies how to use google.
Teams

Protocol Microsoft Teams EionRobb
Telegram (modern)

Protocol Secure messenger BenWiederhake
Telegram (original)

Protocol Secure messenger majn
  Threema

Protocol Threema hbruintjes
  TooBars

Interface Tweaks Add toolbar, status bar, context menu to Pidgin buddy list, hide main menu, change all status by menu (not through Statusbox!) and much more
  TooButtons

Interface Tweaks Add Send and Close buttons to Pidgin conversations
  Toolbar Shrink

Interface Tweaks Shrinks the toolbar of the conversation windows by hiding the text of the buttons. Konrad Gräfe
  TorChat
(broken link)


Protocol p2p instant messaging through Tor hidden service tunnels prof7bit
  Tox

Protocol Secure instant messaging via Tox protocol EionRobb
  Translit tools

Interface Tweaks A virtual russian keyboard that decodes message written in ISO-9 translit in russian.
  Trillian (IMPP)

Protocol Trillian Astra protocol Hi-Angel
  Twitter in your Profile

Profile and Status Updates Insert your Twitter history into your profile. It gets updated periodically.
Twitter Protocol

Protocol Access Twitter (and status.net / identi.ca) feeds like chat rooms mikeage
  Unhighlight System Messages

Interface Tweaks Remove the highlight flag from system messages. Konrad Gräfe
  URL Scout

Miscellaneous This plugin will lookup a url and display a web page title when you receive a link in a chat
  URL Shorten

Miscellaneous Perl plugin to shorten long urls. Especially useful for finch. Download and put in plugins directory. URLs are shortened as they come in if they exceed maximum length setting. no action required. Requires some perl libraries to work.
  usercast

Interface Tweaks Copies the nickname you’ve double clicked in the conference chat and pastes it into a conversation’s entry field
  Web Pidgin
(broken link)


Accounts and Logs Access buddy list and conversations via mobile web browsers
  Web Pidgin Z
(broken link)


Accounts and Logs Fork from the original Web Pidgin. A lot of new features and bugfixes like Ajax support, digest authentication, webserver logs and gtalk-like grouping of messages and much more
  Wechat

Protocol Wechat Protocol Support sbwtw
  What’s my IP

Miscellaneous Allows buddies to get your external IP by writing ‘ip’ on IM chat
WhatsApp

Protocol WhatsApp IM protocol davidgfnet
  WhatsApp (purple-gowhatsapp)

Protocol WhatsApp IM protocol hoehermann
  Wikipedia look-up

Miscellaneous Easy look-up received and typed words on Wikipedia.
  Window Merge

Interface Tweaks Merges the Buddy List window with a conversation window
  Windows 7 Taskbar

Interface Tweaks Adds new Windows 7 eye-candy such as task bar menu, progress and emblems
  Windows 8 Toast Notifications

Notifications Native win8 toast notifications Adrian Keenan
  Windows Smooth Scrolling

Interface Tweaks Gives more precise scrolling control eg with trackpads
  Windows Toast Notifications

Notifications Shows notifications when receiving messages, in the standard Windows design Christian Galla
  WinMX Peer Network

Protocol File sharing network ranma42
  WrapMenu

Interface Tweaks Wrap main menu if it is too wide
  Xfer Auto Path

Interface Tweaks Allows you to automatically set the folder for saving your incoming file transfers by some criteria such as buddy alias. Konrad Gräfe
  XMPP HTTP File Upload

Miscellaneous XEP-0363: HTTP File Upload plugin for libpurple (Pidgin, Finch, etc.)
  XMPP Ignore Groups

Miscellaneous Ignores server-sent XMPP groups so that you can move buddies around on annoying servers (e.g. Facebook) EionRobb
  XMPP Message Carbons

Miscellaneous Displays self-sent messages from other XMPP clients
  XMPP MUC Presence

Miscellaneous Shows participant’s presence icon in chat room.
  XMPP Receipts

Miscellaneous Shows a delivering notification if the recipient supports it
  XMPP URI Links

Miscellaneous Support clicking on xmpp links, such as xmpp:foo@bar.net?message to open a chat window.
  xssidle

Profile and Status Updates Set idle time based on information from X11 Screen Saver (such as xscreensaver). mehturt
Yahoo

Protocol Replacement plugin for Yahoo 2016 EionRobb
  YouTube Title Adder

Miscellaneous Displays video titles for incoming YouTube links.
  YuLastFM

Now Playing Yu Last.fm Pidgin tune status plugin.

Share this search:

Here are
27 public repositories
matching this topic…

Pidgin/libpurple plug-in for WhatsApp Web.

  • Updated
    May 5, 2025


  • C

Pidgin libpurple bridge to signald.

  • Updated
    Jul 21, 2024


  • C

HTTP File Upload plugin for libpurple (XMPP Protocol)

  • Updated
    Sep 2, 2022


  • C

Windows Toast Notification Plugin for Pidgin

  • Updated
    Apr 16, 2025


  • C++

Pidgin/libpurple plugin for signal using libsignal-service-java (and parts of signal-cli).

  • Updated
    Mar 20, 2022


  • C++

A pidgin/libpurple plugin for the F-List roleplaying webchat

  • Updated
    Jun 30, 2021


  • C

ZNC Helper uses message timestamp from a ZNC Bouncer and sets them within Pidgin so that replayed messages will be displayed with the correct timestamp.

  • Updated
    Jun 3, 2022


  • C

Hide group chats while auto-joining them.

  • Updated
    Feb 26, 2021


  • C

Pidgin plugin for windows 8 toast notifications

  • Updated
    Oct 31, 2017


  • Perl

Pidgin plugin adding macOS shell integration

  • Updated
    Nov 20, 2021


  • Swift

This plugin saves the order of chats and IMs and restores it the next time you open a conversation.

  • Updated
    Feb 26, 2021


  • C

This plugin allows you to sort your buddy list more flexible than Pidgin does.

  • Updated
    Feb 26, 2021


  • C

Join Microsoft Lync Conference via invite link on Linux

  • Updated
    Oct 12, 2019


  • Shell

Avoid duplicated chat history on some XMPP servers.

  • Updated
    Feb 26, 2021


  • C

Trillian IMPP plugin for libpurple

  • Updated
    Dec 10, 2022


  • C++

Pidgin Birthday Reminder reminds you of your buddies birthdays. Birthdays can be set by hand or be automatically filled-in for ICQ, MSN and XMPP protocols.

  • Updated
    Feb 26, 2021


  • C

Protects account passwords by a master password.

  • Updated
    Feb 26, 2021


  • C

brew tap for Pidgin plugins

  • Updated
    Aug 31, 2022


  • Ruby

Plugin that allows to use zx2c4 pass to store passwords

  • Updated
    Mar 29, 2017


  • C

Pidgin/libpurple plugin that displays incoming messages on a Logitech G15 LCD screen

  • Updated
    Nov 5, 2021


  • C

Improve this page

Add a description, image, and links to the
pidgin-plugins
topic page so that developers can more easily learn about it.

Curate this topic

Add this topic to your repo

To associate your repository with the
pidgin-plugins
topic, visit your repo’s landing page and select «manage topics.»

Learn more

Pidgin is our favorite instant messaging application for Windows, not only for all its great built-in features, but for all the features you can add to it via plugins. It comes with a few built-in, but there are a ton of others out there if you know where to find them. Here are our favorites.

Some of these plugins come baked in with Pidgin, and you don’t need to download or install anything extra—you just need to turn them on under Tools > Plugins in Pidgin.. Others will require installation, which can vary from plugin to plugin. Sometimes they come with a Windows installer, but other times they’ll just come as a set of folders or DLL files inside a ZIP file. In this case, copy them to your Pidgin folder so that the DLL files end up in C:\Program Files\Pidgin\plugins (or C:\Program Files (x86)\Pidgin\plugins for 64-bit machines), and that any other files get dropped into their associated folders inside Program Files\Pidgin. Check each plugin’s documentation for exact instructions on how to install it. Once it’s installed, you’ll be able to find it in Tools > Plugins—no need to restart Pidgin or anything.

Note: This guide is mainly geared toward Windows users, but Pidgin is our favorite Linux IM client too, so a few of these will work great on Linux as well. Linux also has some other great plugins that we didn’t mention here, though, and installing plugins on Linux could be a little different, so be sure to check each plugin’s documentation for more info.

GTK Theme Control

Pidgin’s default colors are a little bright for my tastes, and the fonts are a little big. So, I like to use the Pidgin GTK Theme Control plugin to tweak the interface more to my liking. It comes with Pidgin, and lets you change the colors you see in conversations, the fonts and font sizes, and even the horizontal separation of the tree view in your buddy list. You can also disable the typing notification text, if that bugs you.

Note that this doesn’t theme Pidgin, per se, it just lets you tweak a few things here and there. To give it a different theme completely, you’ll want to check out the GTK Theme Switcher program, which you can read more about on this page of Pidgin’s documentation.

I’dle Mak’er

No one seems to follow IM etiquette anymore. It’s like we’re a bunch of cavemen. If you find that your friends keep messaging you even when you’re away, you can set your idle time manually with the the pre-bundled I’dle Mak’er plugin. That way, you can appear idle when you’re really not, and people will hopefully leave you alone. After enabling in the Plugins section, just head to Tools > I’dle Mak’er to set your idle time for a specific account, or for all your accounts at once. And give your friends a subtle hint by sending them our primer on instant messaging status etiquette, while you’re at it.

History and SessionSave

If you need to remember your last conversation with someone, the built-in History plugin will show it every time you open a new IM window—so you’ll never just have a blank box with no text. Coupled with the non-standard SessionSave plugin, which reopens all your old conversations and tabs on each launch, you can pick up right where you left off every time you restart Pidgin.

Windows 7 Taskbar

The Windows 7 Taskbar plugin adds a number of Windows-specific features to Pidgin, including jumplist support, a status icon on the taskbar, support for showing file transfer progress, and tab thumbnail previews on Aero Peek. I’m a little shocked none of this is baked into Pidgin, as for other Windows programs, this is basic functionality. If you use Pidgin on Windows 7, you should absolutely have this extension.

Extended Buddy List Sort

If Pidgin’s default buddy sorting options aren’t enough for you, the Extended Buddy List Sort plugin gives you a bit more control. You can give your buddy list three different rules for sorting, in order of importance. You can sort them by status then by name, by online time then by protocol, and more. It’s pretty useful.

Message Notification, Pidgin GNTP, and Audible Alerts

Pidgin isn’t great at notifying you when new IMs come in or buddy statuses change, but a number of plugins can help with that. Message Notification, built into Pidgin, gives you a few more options like flashing the window and showing the number of unread messages in the titlebar. If you use Growl for Windows, you can also download the Pidgin GNTP plugin to get Growl notifications for all sorts of events. And, lastly, the Audible Alerts plugin replaces the beeps and dings with a text-to-speech reading of who’s IMing you, so if you’re away from your keyboard you can tell whether it’s important or not.

Off the Record and Windows Credentials

If you need to add a layer of security to your IMs, Off the Record is the plugin to do it for you. Not only can you disable logging and send encrypted messages, you can even make sure your buddy is who you think they are through a question-and-answer system, a shared secret, or digital fingerprint verification. There’s a lot to this plugin, so you can read more about it at its homepage and in its readme. Note that this extension is not the same as Gtalk’s built-in «off the record» feature that just disables logging; you can’t get that in Pidgin.

While you’re tweaking security settings, though, you might want to deal with one of Pidgin’s biggest sources of complaints and install the Windows Credentials plugin. By default, Pidgin stores its passwords in plain text, which many see as insecure—though the Pidgin team has an explanation for why they do it. If it still makes you uncomfortable, though, the Windows Credentials extension saves your passwords using the Windows Credentials API instead.

Lock ‘n’ Roll

Ever leave your computer, but forget to change your status to Away? Lock ‘n’ Roll fixes that, automatically setting you as Away when you lock your computer, with whatever status you want. We wish it could set you to Offline or Invisible, too, but for right now it can only change your status to away.

Advanced Shorturl and Expand

If you frequently share long URLs that clutter up your IM window, the Advanced Shorturl plugin will automatically shorten URLs after a specific length with is.gd. You can choose the maximum length for a URL before it becomes shortened, which is nice, though this plugin takes a bit more work to install (you’ll need ActivePerl 5.10 installed, which you can grab along with the plugin on its download page).

Alternatively, if you don’t like short URLs because of the security issues surrounding them, you can instead install the Expand plugin, which automatically expands URLs from a ton of different shorteners, so you always know where you’re headed—which is great, since IM and Facebook Chat is so often used to spread spam and viruses.


There are a ton of great Pidgin plugins out there, but these are definitely our favorites for customizing the look and usability of our favorite IM client. Do you have one that you love, but we forgot to mention? Share it with us in the comments below.

В данной статье мы рассмотрим как собрать плагин поддержки протокола Skype для Pidgin под ОС Microsoft Windows, который работает без оригинального клиента. Ранее мы уже подробно рассматривали сборку под GNU/Linux.

Загрузка и установка MSYS2

Для сборки плагина skypeweb нам потребуется полный инструментарий, необходимый для компиляции Pidgin из исходных текстов. В данном руководстве будет использоваться MSYS2.

Страница загрузки MSYS2

Страница загрузки MSYS2

Загружаем официальный инсталлятор MSYS2 со страницы проекта на SourceForge для платформы i686 и запускаем его.

Приветствие программы установки MSYS2

Приветствие программы установки MSYS2

После запуска появится приветственное окно, где следует сразу же нажать кнопку Далее для перехода к следующему этапу.

Выбор каталога установки MSYS2

Выбор каталога установки MSYS2

Второй шаг программы — выбор каталога, в который будет устанавливаться MSYS2 и все его компоненты. По умолчанию предлагается C:\msys32. Оставим предложенный вариант.

Больше здесь изменить ничего нельзя, поэтому сразу жмём Далее.

Установка MSYS2

Установка MSYS2

Программа начнёт распаковывать базовые пакеты MSYS2, необходимые для работы. Ждём окончания процесса и снова жмём Далее.

Резюме установки MSYS2

Резюме установки MSYS2

На предпоследнем шаге мастера можно ознакомиться со списком установленных файлов и каталогов. По окончании следует нажать Далее.

Завершение установки MSYS2

Завершение установки MSYS2

На этом установка MSYS2 завершена. Ставим флажок в чекбокс Запустить MSYS2 сейчас и нажимаем кнопку Завершить.

Устанавливаем необходимые пакеты

Пустая консоль MSYS2

Пустая консоль MSYS2

Запускаем терминал MSYS2 если не сделали этого ранее при помощи файла C:\msys32\msys2_shell.bat или Пуск(Все) ПрограммыMSYS2MSYS2 Shell.

Обновим список доступных пакетов:

pacman -Sy
Установка пакетов MSYS2

Установка пакетов MSYS2

Теперь загрузим нужные нам пакеты:

pacman -S mingw-w64-i686-toolchain mingw-w64-i686-json-glib automake autoconf tar unzip pkg-config wget
Загрузка пакетов MSYS2

Загрузка пакетов MSYS2

Утилита pacman запросит подтверждение, поэтому смело жмём Y для продолжения и ждём окончания загрузки и установки. Закрываем MSYS2, он нам больше не понадобится.

Пустая консоль MinGW

Пустая консоль MinGW

Запустим консоль MinGW при помощи C:\msys32\mingw32_shell.bat или Пуск(Все) ПрограммыMSYS2MinGW 32-bit Shell.

Для начала создадим каталог C:\dev, в котором и будем собирать Pidgin и плагин SkypeWeb:

mkdir C:/dev

Перейдём в этот каталог:

cd C:/dev

Загрузим скрипт, который подготовит всё для сборки:

wget --no-check-certificate https://github.com/renatosilva/pidgin-windev/raw/master/pidgin-windev.sh

Теперь запустим его:

./pidgin-windev.sh .

Если всё нормально, то начнётся загрузка и установка необходимых для сборки компонентов. Это займёт несколько минут (зависит от скорости Интернет-соединения).

Загрузим исходники SkypeWeb в архиве и распакуем только каталог skypeweb из него в C:/dev.

Загрузим исходники библиотеки libjson-glib из официального репозитория и распакуем в каталог C:\dev\win32-dev.

Теперь открываем файл C:\dev\skypeweb\Makefile.eion в любом текстовом редакторе и вносим правки с исправлениями путей.

Запускаем сборку:

cd C:/dev/skypeweb
/usr/bin/make -f Makefile.eion

Если всё прошло успешно, получаем на выходе libskypeweb.dll.

Время на прочтение7 мин

Количество просмотров1.7K

Преамбула

Будучи поклонником многопротокольных IM-клиентов, я довольно долго пользовался Miranda NG. Но кривоватая поддержка некоторых современных протоколов вроде Discord мешала пользоваться только ей, хотя возможности кастомизации у неё очень широкие. В конце-концов практичность взяла верх над перфекционизмом, и я установил Pidgin 2.14. Несмотря на некоторую страшноватость, программа оказалось весьма практичной. Однако была и ложка дёгтя.

Как выяснилось, трёхуровневая иерархия Discord (сервер — категория — канал) скверно ложится на двухуровневую иерархию списка контактов (группа — контакт), и соответствующил плагин решил эту коллизию просто — каждая категория была группой, чьё имя содержало префикс сервера. Разумеется, это привело к тому, что даже при моём скромном круге общения в контакт-листе образовалось 30+ групп — помимо групп из других протоколов. Ориентироваться в этом было не слишком удобно — хотелось иметь возможность устроить какую-то иерархию, например, сделать над-группы.

Однако быстрый поиск вывел на старый баг-трекер Pidgin, где такая возможность была упомянута… и отмечена как wont-fix. Упс. Ну что ж, где наша не пропадала — сделаю имитацию сам!

Полезные ресурсы

  • Старая вики проекта Pidgin

  • Актуальная документация разработчика

  • Репозиторий Pidgin

  • Новый баг-трекер Pidgin

  • Репозиторий purple plugin pack для Pidgin

Концепция

Pidgin в основном поддерживает плагины, написанные на C. Есть загрузчики дла плагинов на Perl, а также механизм взаимодействия с DBus, но C является основным средством разработки. Кроме того, из всех затронутых языков он мне наименее незнаком.

Далее, ключевая идея плагина была сформулирована следующим образом: скрывать или комбинировать группы в списке контактов согласно некоторому набору правил. При этом наборы правил должны задаваться пользователем, иметь читаемое имя и, желательно, иконку. Поскольку плагин для Discord генерировал группы вида «Имя сервера: Категория», то напрашивалась идея использования wildcards в плагинах, чтобы не пришлось перечислять все категории сервера по отдельности. Также показалось стоящим предусмотреть возможность указания нескольких правил в наборе, а также создания отрицающих правил (исключение группы из показа).
Таким образом, задача была декомпозирована на составляющие:

  1. Понять, как устроен плагин Pidgin.

  2. Разобраться, какое средство использовать для wildcard-matching’а, и реализовать логику применения правил к группе.

  3. Понять, как устроен контакт-лист libpurple (бэкенд клиента Pidgin), и как получить сведения о группе.

  4. Понять, как устроено отображение списка контактов в Pidgin, и как скрыть или показать контакт в списке.

  5. Понять, как устроен GUI Pidgin в целом, и как в него добавить свою панель инструментов.

  6. Разобраться с хранением настроек, и созданием диалога настроек для своего плагина.

Простой плагин для Pidgin

К счастью, в репозитории нашёлся довольно понятный hello-world.c, описывающий базовую структуру плагина для Pidgin. Все плагины можно разделить на несколько категорий:

  • core — плагины, работающие только с libpurple и никаким образом не затрагивающие UI.

  • prpl — плагины, реализующие протоколы месседжеров.

  • lopl — загрузчики для плагинов на скриптовых языках.

  • gtk, gtk-x11 и gtk-win32 — плагины, работающие с GUI — универсальные, Linux-специфичные и Windows-специфичные.

  • gnt — плагин для консольной версии клиента (Finch).

Очевидно, нас интересует gtk-плагин, на худой конец gtk-win32.

И сам Pidgin, и нижележащая библиотека libpurple построены на базе GLib и графического тулкита GTK — правда, довольно старых версий. Из этого следует несколько выводов. Во-первых, для управления памятью часто используется механизм счётчика ссылок, что несколько упрощает решение вопросов, касающихся времени жизни объектов. Во-вторых, GLib предоставляет механизм сигналов, позволяющий достаточно прозрачно реализовать обработку событий, в том числе событий интерфейса. libpurple активно использует сигналы для оповещения клиентского кода о событиях, поступающих из IM-сетей, а также об операциях над хранимыми данными вроде списка контактов. Поэтому вопрос реакции на то или иное событие будет сводиться к поиску нужного сигнала и подписке на него.

Попутно решилась задача реализации windcard-matching’а — GLib представляет соответствующие средства, над которыми потребовалась лишь небольшая логическая надстройка.

BuddyList и все-все-все

По итогам вдумчивого чтения документации (и осторожных расспросов на полуофициальном Discord-сервере проекта) выяснилось следующее. Формально список контактов (buddy list) из libpurple представляет собой дерево из разнородных узлов, подобно известному паттерну «компоновщик». Это дерево обёрнуто в объект PurpleBuddyList.

Однако на практике это дерево формирует фиксированную трёхуровневую иерархическую структуру. На верхнем уровне находятся группы контактов, представленные объектами PurpleGroup, на нижнем — индивидуальные участники (PurpleBuddy), а на промежуточном — чаты (PurpleChat) и контакты (PurpleContact) как таковые. Элементы на каждом уровне дерева связаны в двусвязный список — таким образом, родитель хранит только ссылку на своего первого потомка.
По сути, контакты в libpurple являются аналогами мета-контактов в других клиентов — они позволяют объединить несколько учётных записей одного человека в одну сущность, что довольно удобно. Однако это никак не помогало в решении задачи по группировке групп контактов. Пришлось отказаться от идеи о группировке, и остановиться на варианте со скрытием «ненужных» групп.

Ради этого пришлось прошерстить исходный код, отвечающий за отображение контакта в графическом интерфейсе Pidgin. И тут всплыли так называемые флаги контакта, среди которых был флаг INVISIBLE. Элементы с таким флагом не отображались в списке контактов независимо от их типа. Бинго?

Почти. Как быстро выяснилось, скрытие контакта в группе могло приводить к скрытию всей группы. Такое поведение являлось следствием логики в функции pidgin_blist_update_group(), которая скрывала всю группу, если обновлялся скрытый контакт в ней. Почему так, я до сих пор не понял. Тем не менее, это ещё не означало непригодности данного механизма — только ограничивало плагин скрытием групп целиком.

Графический интерфейс

Сам же графический элемент списка контактов оказался устроен и проще, и сложнее чем я предполагал. Проще, потому что это оказался всего один компонент — GtkTreeView. Сложнее, потому что этот компонент имеет дело с отдельным объектом-моделью (скрытом за интерфейсом GtkTreeModel), и обладает заковыристым механизмом для кастомизации рендеринга элементов модели на экране. Как следствие, чтобы вмешаться в его работу в достаточной степени, мне пришлось бы повторить реализацию солидного куска списка контактов Pidgin — что было бы долго, сложно и плохо совместимо с другими плагинами. Как итог, для реализации скрытия пришлось остановиться на описанном выше флаге INVISIBLE.
Тем не менее, GtkTreeView мне пригодился в ходе реализации диалога редактирования правил.

Что касается остального графического интерфейса, то там всё оказалось достаточно просто. TreeView завернут в несколько контейнеров, ссылки на которые хранятся в публично доступной структуре данных. Таким образом, создав свой собственный контейнер, можно добавить его в уже существующие. Но такой подход серьёзно ограничен в возможностях. Можно только добавить панель статического размера выше или ниже списка контактов, но не слева или справа. Плагин mystatusbox из purple plugin pack добавляет панель с изменяемым размером, но для этого ему приходится перелопачивать половину интерфейса. Я не настолько был уверен в своих силах, чтобы провернуть подобное и не сломать совместимость с mystatusbox (которым пользовался и сам), поэтому ограничился простой панелью.

Хранение настроек

Для хранения настроек libpurple реализует свой собственный механизм — своего рода иерархическую базу данных (на практике она сохраняется в XML-документ). К счастью, нашелся неплохой пример работы с ней. Хотя подход довольно прямолинейный — есть операции создания, чтения, задания и удаления настроек, а также несколько базовых типов данных — не обошлось без подводных камней.

В первую очередь, для проверки ситуации, когда настройка существует, но имеет неправильный тип, требуется довольно громоздкий код. Добавление отсутствующей настройки выполняется куда как проще. Также остаётся открытым вопрос о миграции с одной схемы настроек на другую, например, при обновлении плагина.
Также, самый сложный стандартный тип данных — это список строк. Поскольку в моём случае нужно было иметь дело со списком структур данных, пришлось писать умеренно сложный код для десериализации этой структуры.

Наконец, Pidgin предоставляет три механизма для изменения настроек плагина.

Первый, упрощённый, позволяет указать список из записей, содержащих имя параметра и его желаемое представление. На основании этого списка Pidgin автоматически сформирует диалог настроек, и выполнит их привязку к элементам управления.
Второй, чуть более сложный, позволяет задать кастомный диалог в качестве диалога настроек, и показывать его вместо стандартного.
Третий, наиболее универсальный — воспользоваться механизмом действий, т.е. дополнительных пунктов меню, добавляемых плагинами. В рамках действий можно выполнять практически любые операции, в том числе показ нужных диалоговых окон. Единственное ограничение — эти окна будут работать параллельно с остальной программой.

В итоге настройки плагина были разбиты на две секции. Одна описывает только правила скрытия/показа групп, и размещается в меню действий плагина — так как пользователь будет пользоваться ей более часто. Вторая описывает внешний вид и размещение селектора правил, и спрятана в станадртном диалоге настройки плагина. По идее, ей достаточно воспользоваться однажды, а далее о ней можно будет забыть.

Результат

Интерфейс выбора показываемых групп выглядит примерно так:

Под главным меню располагается панель выбора наборов правил. Каждому набору сопоставлено название и иконка для облегчения восприятия. Для примера приведены три набора — один показывает всё, второй — только группу General, третий — всё кроме General.

Настройка правил осуществляется через диалог настроек, показанный ниже. Не слишком красиво, но свои функции выполняет.

Сам плагин можно найти на Github.

Итоги проекта

Считаю ли я плагин полезным? Мне он пригодился. Если сам плагин, или приведённая в статье информация пригодятся кому-то ещё, будет замечательно.

Насколько сложно было въехать в тематику? На удивление просто, несмотря на то, что я ранее не имел дела ни с разработкой на чистом C, ни с GTK. Кодовая база pidgin достаточно хорошо организована, хотя документация иногда оставляет желать лучшего.

Что было самым трудным в разработке? Как ни странно, настроить окружение для сборки проекта на Windows. Под Linux это оказалось намного проще, так что почти вся разработка велась на домашнем сервере под Debian. Инструкция по сборке есть, но она требует адаптации. В итоге пришлось просить помощи на Discord-сервере Pidgin.

Почему я счёл необходимым написать эту статью? Потому что мне пришлось повозиться, собирая крупицы документации и продираясь через мёртвые ссылки, и захотелось сохранить полученные знания.

И хотя сейчас Pidgin переживает переход на версию 3.0 с сопутствующей переработкой кодовой базы, версия 2.x.y ещё долго будет актуальна. Да и в целом ситуация выглядит так, словно мультипротокольные клиенты находятся в некотором упадке. Если это не так, отпишитесь в комментариях — буду рад ошибиться.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как отключить синхронизацию onedrive в windows 11 на ноутбуке
  • Настройка автоматического обновления windows 10 gpedit
  • Как сделать восстановить систему windows 10
  • Как включить приложение камера на windows 10
  • Как поставить full hd на windows 10