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.