```
๋ฐํ๋ฌผ
์๋ฆผ ๋ฐ๋ชฌ์ ์์ด์ฝ ์ด๋ฆ์ ์ง์ํ์ง ์์ต๋๋ค.
์์ฉ ํ๋ก๊ทธ๋จ ์ธก์์๋ 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์ ๋ํ ์ง์์ด Bug 745634 ์์ ๋ ผ์๋๊ณ glib 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
ํํธ์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ณด๋ด๋ ๋ชจ๋ ์ ํฌ ์
๋ ฅ์ ์ ์์ ์ผ๋ก ์ฒ๋ฆฌํด์ผํฉ๋๋ค.
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
๋ฌธ์ ์ถ๊ฐํ์ง๋ง ์๋ฆผ์ด ์ฌ์ ํ ํ์๋์ง ์์ต๋๋ค. ๋๋ ๋ ์ด์ ๊ฐ์ง ์์๋ค.
์ด ์ ๋ณด๊ฐ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์์ธํ ๋ด์ฉ์ ์ ์๊ฒ ping์ ๋ณด๋ด์ฃผ์ธ์. ๊ฑด๋ฐฐ,
Arnaud
@elboulangero ์ด ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๊น?
@ icarter09 ์ฌ์ฉ์๊ฐ Cinnamon์์ Goodvibes์ ์ถฉ๋์๋ณด๊ณ ํ ํ Cinnamon VM์์ ์ผ๋ถ ํ ์คํธ๋ฅผ ์ํํ๋ ๋์์ ๋ง ์์์ต๋๋ค. ๋๋ ์๋๋ชฌ์ ์ง์ ์คํํ์ง ์์์ ๋งํ ์ ์์ต๋๋ค.
์์ "๋ณต์ ๋จ๊ณ"๋ฅผ ์๋ํ์ฌ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
๊ฑด๋ฐฐ
@ icarter09 ์, ์ฌ์ ํ ๋ฌธ์ ์ ๋๋ค. fedora๋ @itzexor WIP๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
https://github.com/itzexor/Cinnamon/commit/d56f1cca19867dfa44b79e654f729d2f27319e1f
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@ icarter09 ์, ์ฌ์ ํ ๋ฌธ์ ์ ๋๋ค. fedora๋ @itzexor WIP๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
https://github.com/itzexor/Cinnamon/commit/d56f1cca19867dfa44b79e654f729d2f27319e1f