```
рдореБрджреНрджрд╛
рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдбреЗрдореЙрди рдЖрдЗрдХрди рдирд╛рдореЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЖрд╡реЗрджрди рдкрдХреНрд╖ рдкрд░, рдореИрдВ рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП GApplication рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЖрдЗрдХрди рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ:
icon = g_themed_icon_new("edit-copy");
g_notification_set_icon(notif, icon);
g_application_send_notification(app, "notif-id", notif);
рдпрд╣ рдХреЛрдб рдореВрд▓ рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреНрд░реИрд╢ рдХрд░ рджреЗрдЧрд╛ред рдХреНрд░реИрд╢ рдЧреНрд▓рд┐рдм рдореЗрдВ рдПрдХ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ send_notification () рдЯрд╛рдЗрдо рдЖрдЙрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рджрд╛рд▓рдЪреАрдиреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдбреЗрдореЙрди рдЕрдм рдФрд░ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рднреА рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдЬрд┐рддрдирд╛ рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ рдореИрдВрдиреЗ рдЙрд╕ рдкрд░ рдирдЬрд╝рд░ рд░рдЦреАред рдХреЙрд▓рд░ рд╕рд╛рдЗрдб рдкрд░ рдкрд╣рд▓реЗ (рдпрд╛рдиреА рдЧреНрд▓рд┐рдм), рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ GThemedIcon рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкрд░ рдмрдЧ 745634 рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА, рдФрд░ рдЧреНрд▓рд┐рдм ec1edef3 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
рдЕрдм рдпрджрд┐ рдЖрдк рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдВрддрддрдГ рдЖрдЗрдХрди рдХреЛ image-path
рд╕рдВрдХреЗрдд рдореЗрдВ рд╕рд╣реЗрдЬ рд▓реЗрдЧрд╛ред рдЬреЛ рд╣рдореЗрдВ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХреЗ рдЪрд░рдгреЛрдВ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ...
рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛
рддреЛ рд╣рдо g_application_send_notification()
рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЧрдП dbus рдХреЙрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╛ рддреЛ рдПрдХ рдкреВрд░реНрдг рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрджрд┐ рдХреЙрд▓рд░ GFileIcon рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рддреЛ рдЖрдкрдХреЛ рдпрд╣реА рдорд┐рд▓рддрд╛ рд╣реИ), рдпрд╛ рдмрд╕ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдмрд┐рдирд╛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо (рдпрджрд┐ рдХреЙрд▓рд░ GThemedIcon рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рддреЛ рдЖрдкрдХреЛ рдпрд╣реА рдорд┐рд▓рддрд╛ рд╣реИ)ред
рдПрдХ рдкреВрд░реНрдг рдкрде рд╕реЗрдЯ рдХрд░рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
IMAGE=/usr/share/icons/Adwaita/48x48/actions/edit-copy.png
python -c "import dbus; print dbus.Bus().call_blocking(\
'org.freedesktop.Notifications', \
'/org/freedesktop/Notifications', \
'org.freedesktop.Notifications', \
'Notify', \
'susssasa{sv}i', \
('appname', 0, '', 'summary', 'body', [], {'image-path': '$IMAGE'}, -1))"
рдПрдХ рдЖрдЗрдХрди рдирд╛рдо рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреЛрдИ рд╕реВрдЪрдирд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ:
IMAGE=edit-copy
python -c ... # copy-paste the snippet above
рдЕрдиреНрдп рд╕реВрдЪрдирд╛
рдпрд╣ рдЖрдкрдХреЛ рддрдп рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдбреЗрдореЙрди рдореЗрдВ рдереАрдореНрдб рдЖрдЗрдХрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдбреЗрдореЙрди рдХреЛ image-path
рд╣рд┐рдВрдЯ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЬрдВрдХ рдЗрдирдкреБрдЯ рдХреЛ рдЗрдирд╛рдпрдд рд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВрдиреЗ рджрд╛рд▓рдЪреАрдиреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреБрдЫ рд▓реЙрдЧ рдЬреЛрдбрд╝реЗ, рдФрд░ рдореИрдВ рдпрд╣рд╛рдБ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реБрдЖ js/ui/notificationDaemon.js
:
} else if (hints['image-path']) {
return textureCache.load_uri_async(GLib.filename_to_uri(hints['image-path'], null), size, size);
рдпрд╣ рдХреЙрд▓ рдХрднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрддреА рдХреНрдпреЛрдВрдХрд┐ GLib.filename_to_uri
рдПрдХ рдЕрдкрд╡рд╛рдж рдЙрдард╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрд╕ рдХреЙрд▓ рдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдПрдХ try
catch
рдХрдерди рдЬреЛрдбрд╝рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЕрднреА рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдореИрдВ рдЖрдЧреЗ рдирд╣реАрдВ рдЧрдпрд╛ред
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдкрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред рдЪреАрдпрд░реНрд╕,
рдЕрд░рдиреЙрдб
@elboulangero рдХреНрдпрд╛ рдЖрдк рдЕрднреА рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
@ icarter09 рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдХреЗрд╡рд▓ рджрд╛рд▓рдЪреАрдиреА рд╡реАрдПрдо рдореЗрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рджрд╛рд▓рдЪреАрдиреА рдкрд░ рдЧреБрдбрд╡рд┐рдмреНрд╕ рдХреЗ рд╕рд╛рде рджреБрд░реНрдШрдЯрдирд╛ рдХреА рд╕реВрдЪрдирд╛ рджреАред рдореИрдВ рдЦреБрдж рджрд╛рд▓рдЪреАрдиреА рдирд╣реАрдВ рдЪрд▓рд╛рддрд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ред
рдпрд╣ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдмрд╛рдд рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ, рдЖрдк рдКрдкрд░ "рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг" рдХреЛ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдЪрд┐рдпрд░реНрд╕
@ icarter09 рд╣рд╛рдБ рдпрд╣ рдЕрднреА рднреА рдпрд╣рд╛рдБ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдлреЗрдбреЛрд░рд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @itzexor WIP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
https://github.com/itzexor/Cinnamon/commit/d56f1cca19867dfa44b79e654f729d2f27319e1f
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@ icarter09 рд╣рд╛рдБ рдпрд╣ рдЕрднреА рднреА рдпрд╣рд╛рдБ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдлреЗрдбреЛрд░рд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @itzexor WIP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
https://github.com/itzexor/Cinnamon/commit/d56f1cca19867dfa44b79e654f729d2f27319e1f