notify-rust 3.2.1

Show desktop notifications. Pure Rust dbus client and server.
Documentation

Desktop Notifications for Rust.

Desktop notifications are popup messages generated to notify the user of certain events.

Examples

Example 1: Simple Notification

# use notify_rust::Notification;
# use notify_rust::NotificationHint as Hint;
Notification::new()
    .summary("Firefox News")
    .body("This will almost look like a real firefox notification.")
    .icon("firefox")
    .timeout(6000) //milliseconds
    .show().unwrap();

Example 2: Persistent Notification

# use notify_rust::Notification;
# use notify_rust::NotificationHint as Hint;
Notification::new()
    .summary("Category:email")
    .body("This has nothing to do with emails.\nIt should not go away until you acknoledge it.")
    .icon("thunderbird")
    .appname("thunderbird")
    .hint(Hint::Category("email".to_owned()))
    .hint(Hint::Resident(true)) // this is not supported by all implementations
    .timeout(0) // this however is
    .show().unwrap();

Careful! There are no checks whether you use hints twice. It is possible to set urgency=Low AND urgency=Critical, in which case the behavior of the server is undefined.

Example 3: Ask the user to do something

# use notify_rust::Notification;
# use notify_rust::NotificationHint as Hint;
Notification::new()
    .summary("click me")
    .action("default", "default")
    .action("clicked", "click here")
    .hint(Hint::Resident(true))
    .show()
    .unwrap()
    .wait_for_action({|action|
        match action {
            "default" => {println!("you clicked \"default\"")},
            "clicked" => {println!("that was correct")},
            // here "__closed" is a hardcoded keyword
            "__closed" => {println!("the notification was closed")},
            _ => ()
        }
    });

Minimal Example

You can ommit almost everything

# use notify_rust::Notification;
Notification::new()
    .show();

more examples in the repository.