6
würde Ich mag Desktop-Benachrichtigungen über D-Bus senden https://crates.io/crates/dbus verwenden.D-Bus-Desktop-Benachrichtigung mit dbus-rs
Mein aktueller Ansatz ist:
let c = Connection::get_private(BusType::Session).unwrap();
//let m = Message::new_method_call("org.freedesktop.DBus", "/", "org.freedesktop.DBus", "ListNames").unwrap();
let mut m = Message::new_method_call(
"org.freedesktop.Notifications",
"/org/freedesktop/Notifications",
"org.freedesktop.Notifications",
"Notify"
).unwrap();
m.append_items(&[
MessageItem::Str("appname".to_string()), // appname
MessageItem::UInt32(0), // notification to update
MessageItem::Str("icon".to_string()), // icon
MessageItem::Str("summary".to_string()), // summary (title)
MessageItem::Str("body".to_string()), // body
???, // actions
???, // hints
MessageItem::UInt32(9000), // timeout
]);
Ich kann nicht glauben, von einer sinnvollen Art und Weise der Schnittstelle des Notify
Verfahrens gerecht zu werden. Laut D-Feet, sieht es wie folgt aus:
Notify(
String app_name,
UInt32 replaces_id,
String app_icon,
String summary,
String body,
Array of [String] actions,
Dict of {String, Variant} hints,
Int32
)
Vor allem die Array of [String]
, Dict of {String, Variant}
mir ein Rätsel.
Ich denke, 'Array von [Zeichenfolge]' wird von 'MessageItem bedeckt :: Array' Enum-Variante, aber ich bin über' Dict' nicht sicher. Es gibt 'MessageItem :: DictEntry', aber ich kann nicht sagen, wie es verwendet werden soll. –
Es gibt ein ['from_dict'] (http://diwic.github.io/dbus-rs-docs/dbus/enum.MessageItem.html#method.from_dict) ... vielleicht wird' Dict' als ein Array dargestellt von Schlüssel/Wert-Tupel, und 'DictEntry' ist nur ein einziger ... – Shepmaster