`` ''
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°
ΠΠ΅ΠΌΠΎΠ½ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠΌΠ΅Π½Π° Π·Π½Π°ΡΠΊΠΎΠ².
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ GApplication Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ. Π― ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» Π·Π½Π°ΡΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:
icon = g_themed_icon_new("edit-copy");
g_notification_set_icon(notif, icon);
g_application_send_notification(app, "notif-id", notif);
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ±ΠΎΡ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘Π±ΠΎΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° ΠΎΡΠΈΠ±ΠΊΠΈ Π² glib, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΠ·-Π·Π° ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ send_notification (). ΠΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΈΡΡΠ΅ΠΊΠ»ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΄Π΅ΠΌΠΎΠ½ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Cinnamon Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠΎΠΆΠ΅ ΠΏΠΎΡΠ΅ΡΠΏΠ΅Π» ΠΊΡΠ°Ρ .
Π― ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π» ΡΡΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠ³. Π‘Π½Π°ΡΠ°Π»Π° Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π°Π±ΠΎΠ½Π΅Π½ΡΠ° (Ρ.Π΅. glib) ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GThemedIcon ΠΎΠ±ΡΡΠΆΠ΄Π°Π»Π°ΡΡ Π² ΠΎΡΠΈΠ±ΠΊΠ΅ 745634 ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ββΠ² glib ec1edef3 .
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π² ΡΡΠΎΡ ΡΠ°ΠΉΠ», Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΡΠΎΡ
ΡΠ°Π½ΠΈΡ Π·Π½Π°ΡΠΎΠΊ Π² ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ΅ image-path
. ΠΡΠΎ ΠΏΠΎΠ΄Π²ΠΎΠ΄ΠΈΡ Π½Π°Ρ ΠΊ ΡΠ°Π³Π°ΠΌ ΠΏΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ...
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠ·ΠΎΠ² dbus, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ g_application_send_notification()
. Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ (ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅, Π΅ΡΠ»ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» 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
.
Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΆΡΡΠ½Π°Π»ΠΎΠ² Π² Cinnamon Javascript ΠΈ ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π·Π΄Π΅ΡΡ, Π² ΡΠ°ΠΉΠ»Π΅ 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 ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Cinnamon ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠΈΠ» ΠΎ ΡΠ±ΠΎΠ΅ Goodvibes Π½Π° Cinnamon. Π― ΡΠ°ΠΌ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Cinnamon, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΌΠΎΠ³Ρ ΡΠΊΠ°Π·Π°ΡΡ.
ΠΡΠΈ ΡΡΠΎΠΌ, Ρ Π΄ΡΠΌΠ°Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ Β«Π¨Π°Π³ΠΈ ΠΏΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡΒ», ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, Π²ΡΠ΅ Π»ΠΈ ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
Π²Π°ΡΠ΅ Π·Π΄ΠΎΡΠΎΠ²ΡΠ΅
@ icarter09 ΠΠ°, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Fedora ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ @itzexor WIP, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ
https://github.com/itzexor/Cinnamon/commit/d56f1cca19867dfa44b79e654f729d2f27319e1f
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
@ icarter09 ΠΠ°, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Fedora ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ @itzexor WIP, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ
https://github.com/itzexor/Cinnamon/commit/d56f1cca19867dfa44b79e654f729d2f27319e1f