GithubHelp home page GithubHelp logo

christiangalla / pidginwintoastnotifications Goto Github PK

View Code? Open in Web Editor NEW
24.0 5.0 2.0 278 KB

Windows Toast Notification Plugin for Pidgin

License: GNU General Public License v2.0

C 44.36% C++ 55.64%
pidgin-plugins toast-notifications

pidginwintoastnotifications's Introduction

PidginWinToastNotifications

Windows toast notification plugin for Pidgin.

Shows notifications on message receive or buddy sign on / off in the standard Windows design.

Direct message from someone who has a profile picture:

Direct message with picture

Direct message from someone who has not a profile picture:

Direct message without picture

Chat message from someone who has not a profile picture:

Chat message without picture

A buddy who has not a profile picture signed on:

Buddy signed on

A buddy who has not a profile picture signed off:

Buddy signed off

This plugin uses Pidgin's standard C API so no other tools like Perl are required.

Table of contents

Supported Pidgin versions

The plugin was developed and tested using the newest Pidgin 2 version 2.13.0.

For Pidgin version 2.12.0 there is an alternate download.

Older versions of Pidgin are currently not supported.

Supported operating systems

The plugin was developed and tested using the newest Windows 10 version.

Other Windows 10 versions, Windows 8 and Windows 8.1 should also work, but this has not been tested.

To display the protocol, account and chat name in the toast notifications the Windows 10 Anniversary Update (also known as version 1607 or Redstone 1) or newer is required.

Installation

  1. Ensure to have the Microsoft Visual C++ 2015-2019 Redistributable (x86) installed or download and install it from Microsoft.
  2. Download the dll files from the newest release.
  3. Copy the file PidginWinToastLib.dll to the installation directory of Pidgin. This is usually "C:\Program Files (x86)\Pidgin" on 64-bit versions of Windows or "C:\Program Files\Pidgin" on a 32-bit version.
  4. Copy the file PidginWinToastNotifications.dll to the plugin directory of Pidgin. This is usually "C:\Program Files (x86)\Pidgin\plugins" on 64-bit versions of Windows or "C:\Program Files\Pidgin\plugins" on a 32-bit version.
  5. Start Pidgin. Open the plugin window and enable "Windows Toast Notifications".

Troubleshooting

If the plugin cannot be enabled, there should be an error message in the error search window available in the help menu of Pidgin.

If you experience a problem or have an idea for a new feature, feel free to open an issue.

Known errors

  • The initialization may fail if the current user is not permitted to edit the Pidgin shortcut in the Start menu.

    To be able to create Windows Toast Notifications, it is required to set a property on the Start menu shortcut of Pidgin or automatically create a new one. Please ensure the current user is permitted to do this.

  • A notification for a received message is shown when you send the message from another device.

    The used protocol may incorrectly call Pidgin's message receive event. Please update your protocol plugin and if the error persists, contact the author of the protocol plugin to have a look into this.

  • There is a duplicate task bar icon.

    The Toast notification plugin sets an Application User Model ID that is used to group program windows.

    If you have pinned Pidgin to the task bar before enabling the Toast notification plugin, unpin it and pin the current running Pidgin window.

    If you are using other Windows specific plugins, they may try to set another conflicting app id. Please try to identify incompatible Plugins by selective enabling or disabling. If you have found an incompatible plugin, try to update it to the newest version before creating an issue.

Configuration

It can be configured if notifications should be shown for direct messages, every message in chats, only for messages in chats when mentioned or only if the conversation window is not focused.

It is also possible to configure if a notification should be shown when a buddy signed on or off.

This configuration can be overwritten per status (Available, Away, Do not disturb, Extended away or Invisible).

Global configuration:

Global configuration

It is also possible to overwrite the global settings for each group, chat and buddy.

Configuration for a group:

Group configuration

Configuration for a chat:

Chat configuration

Configuration for a buddy:

Buddy configuration

The global configuration can be accessed via the default plugin configuration page (In Buddy List: Tools / Plugins / Windows Toast Notifications).

The group settings can be opened from the context menu of a group in the Buddy List.

The local settings can be opened from the conversation menu underneath More or from the context menu of a buddy or chat in the Buddy List:

Configuration menu in a conversation

Changelog

All changes between versions are documented in the file CHANGELOG.md.

Architecture

This Plugin consists of the two dll files PidginWinToastNotifications.dll and PidginWinToastLib.dll.

PidginWinToastNotifications.dll is loaded from Pidgin as plugin. It is written in ANSI C and it provides necessary plugin information. It registers callback functions in Pidgin's message API and relays received messages to PidginWinToastLib.dll.

PidginWinToastLib.dll is written in C++ and calls Windows's toast notification API to display the toast notifications. For that it uses WinToast as library.

How to build on Windows

PidginWinToastNotifications.dll

This file is build using the GNU Compiler Collection (GCC).

  1. Follow the official instructions of the Pidgin wiki to set up your build environment. For this I recommend pidgin-windev.
  2. Copy the files Plugin/PidginWinToastNotifications.h and Plugin/PidginWinToastNotifications.c into the subfolder pidgin\plugins inside of your Pidgin development directory.
  3. Inside a Cygwin Terminal navigate to pidgin\plugins inside of your Pidgin development directory.
  4. Run the Command: make -f Makefile.mingw PidginWinToastNotifications.dll

Now the file PidginWinToastNotifications.dll should be in the same folder.

PidginWinToastLib.dll

This file is build using Visual Studio 2017.

Open the Solution lib/PidginWinToastLib.sln in Visual Studio 2017. Right click on the Project and hit Build.

Now the file PidginWinToastLib.dll should be in the Release folder of your Solution.

pidginwintoastnotifications's People

Contributors

christiangalla avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pidginwintoastnotifications's Issues

Cannot enable plugin

I cannot enable the plugin with a standard user, on the debug I have this message :

(11:52:24) win_toast_notifications: loading...
(11:52:24) win_toast_notifications: dll loaded
(11:52:24) win_toast_notifications: pidginWinToastLibInit called
(11:52:24) win_toast_notifications: Initialization failed: The library was not able to create a Shell Link for the app

It works perfectly with an Administrator user.

This is on a RDS farm with Windows Server 2016 (1607 14393.3443) with Active Directory GPO for standard users and roaming profiles.

Not working on Pidgin 2.12.0

The latest version 1.6.1 doesn't work on Pidgin 2.12.0 / Windows 10-x64, can't enable the plugin from the plugin list.

Though it works on 2.13.0. For older plugins, many of us need to use Pidgin 2.12.0.

1.5.0 version works on 2.12.0

Notifies of message received by user even when user's window is in focus

Great plugin by the way. Really needs added to the Pidgin ThirdPartyPlugins list, hard to find.

Anyway, as of right now, for me at least (I assume I haven't messed anything up on my end), the plugin will push notifications even when a user's window is in focus, which is a bit much. Maybe either change the default behavior to ignoring messages received in a focused window, or provide an option in the plugin configuration to toggle it?

Plugin greyed out

I have installed the DLLs for a Windows build of Pidgin but when I try to enable to plugin, it appears grayed out. Do you know what could be causing this?
Screenshot

Unable to enable plugin

unable to enable plugin, have the .lib in the correct pidgin main directory, and have the .dll in the plugin folder. did NOT change the names at all simply downloaded and moved them.

Cannot Activate Plugin

Plugin version 1.6.1
Pidgin Version 2.13.0

Attempts to check off the plugin in the plugin list fail.

Localization / Translation in other languages

Currently the plugin is only available in English.

I am planning to add German translation. If someone has experience in localization of Pidgin plugins or wants to add another language, I appreciate pull requests.

Options for notifications

Similar to the Message Notifications plugin (or if you can use the options/settings that it provides)
image

To be able to only get notifications for chats where I'm mentioned, or for IM's. I'm connected to a lot of noisy chats and I don't want to see every message for every conversation.

Disable notifications when away

When my account is away, I would like the option to disable notifications so that I am not getting pinged while I'm in a meeting.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.