• Stars
    star
    176
  • Rank 216,987 (Top 5 %)
  • Language
    C#
  • License
    MIT License
  • Created almost 4 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A cross-platform C# library for native desktop "toast" notifications.

DesktopNotifications

A cross-platform C# library for native desktop "toast" notifications.

Build Nuget Nuget

Screenshot (Linux)

Screenshot (Windows)

Features

Windows Linux (FreeDesktop.DBus) OSX
Show notifications βœ“ βœ“ βœ•
Hide notifications βœ“ βœ“ βœ•
Schedule notifications βœ“ βœ“* βœ•
Launch actions βœ“** βœ• βœ•
Replacing notifications βœ• βœ• βœ•
Buttons βœ“ βœ“ βœ•
Audio βœ• βœ• βœ•
Images βœ“ βœ“*** βœ•

* Scheduled notifications will only be delivered while the application is running.
** This is currently not supported when targeting .netstandard
*** If supported by the notification server

Application Context

Most operating systems require you to register the application in some form before you can actually send notifications. This registration process is handled by the ApplicationContext. On Windows (see WindowsApplicationContext) it will create and assign a Application User Model Id to the current process and associate a shell link in the start menu with it. This will cause your application to appear in the Windows Start Menu. On Linux/FreeDesktop.DBUS, the application context is just holding the name and optional icon of your application.

Avalonia

The DesktopNotifications.Avalonia package offers support for the Avalonia project. It doesn't do much on its own, it just provides helpers to register the INotificationManager with the application builder. You can see an example of it in the Example.Avalonia project.

Help wanted

My MacBook Pro is 11 years old now and it does not run OSX Mojave or higher. Unfortunately, Apple deprecated NSUserNotificationCenter with OSX 10.14 and I suppose they want us to use the newer UNUserNotificationCenter API instead. I would kindly appreciate any contributions from folks that own a more modern Mac and are interested in implementing the OSX backend using the new API.

License

See License