{"id":74,"date":"2011-08-18T22:04:57","date_gmt":"2011-08-18T20:04:57","guid":{"rendered":"https:\/\/blogs.gentoo.org\/mgorny\/?p=74"},"modified":"2012-11-27T06:22:13","modified_gmt":"2012-11-27T05:22:13","slug":"libtinynotify-%e2%80%94-a-smaller-implementation-of-desktop-notifications","status":"publish","type":"post","link":"https:\/\/blogs.gentoo.org\/mgorny\/2011\/08\/18\/libtinynotify-%e2%80%94-a-smaller-implementation-of-desktop-notifications\/","title":{"rendered":"libtinynotify \u2014 a smaller implementation of Desktop Notifications"},"content":{"rendered":"<p>Just a quick note. This week I began a new project, and it&#8217;s called <a rel=\"external\" href=\"https:\/\/bitbucket.org\/mgorny\/libtinynotify\/\">libtinynotify<\/a>. The tagline would probably sound like <q>from the creator of uam, another piece of software to make your systems smaller<\/q>.  But in fact, I don&#8217;t think it will. I just used libnotify, and thought it could be done much better.<\/p>\n<p>The highlight in libtinynotify is to keep it simple. When I used the original <a rel=\"external\" href=\"http:\/\/www.galago-project.org\/\">libnotify<\/a> in <a rel=\"external\" href=\"https:\/\/bitbucket.org\/mgorny\/autoupnp\/\">autoupnp<\/a>, I noticed that it forces my library to link not only with gobject but even with gdk-pixbuf! I <a rel=\"external\" href=\"https:\/\/bugzilla.gnome.org\/show_bug.cgi?id=626952\">reported the bug upstream<\/a> and they didn&#8217;t really care. Why would a simple notifications library force using gdk-pixbuf on all users? That&#8217;s not really a good dependency set for a preloaded library which autoupnp is now.<\/p>\n<p>And that&#8217;s basically how it all started. First, I wanted to create a smaller, GLib-free variant of libnotify with a compatible API but that&#8217;s obviously impossible (due to GObject). And I really didn&#8217;t want to push GObject dep into the API. Thus, libtinynotify comes with a new, shiny API.<\/p>\n<p>Although it&#8217;s still early work and API can change rapidly, it does its job already. I tried to make it pretty flexible for everyday tasks while keeping it simple. And I think I did pretty well, though I&#8217;m open to comments.<\/p>\n<p>If someone wants to give it a try, it&#8217;s <code>x11-libs\/libtinynotify<\/code> in mgorny overlay (live ebuild). My playground for it is <code>net-misc\/autoupnp<\/code> (also the live ebuild, in mgorny overlay).<\/p>\n<ul>\n<li><a rel=\"external\" href=\"https:\/\/bitbucket.org\/mgorny\/libtinynotify\/\">project page \/ git repo<\/a>,<\/li>\n<li><a rel=\"external\" href=\"http:\/\/dev.gentoo.org\/~mgorny\/libtinynotify\/\">API docs<\/a> (gtk-doc).<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Just a quick note. This week I began a new project, and it&#8217;s called libtinynotify. The tagline would probably sound like from the creator of uam, another piece of software to make your systems smaller. But in fact, I don&#8217;t think it will. I just used libnotify, and thought it could be done much better. &hellip; <a href=\"https:\/\/blogs.gentoo.org\/mgorny\/2011\/08\/18\/libtinynotify-%e2%80%94-a-smaller-implementation-of-desktop-notifications\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;libtinynotify \u2014 a smaller implementation of Desktop Notifications&#8221;<\/span><\/a><\/p>\n","protected":false},"author":137,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[3],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts\/74"}],"collection":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/users\/137"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/comments?post=74"}],"version-history":[{"count":3,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts\/74\/revisions"}],"predecessor-version":[{"id":184,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts\/74\/revisions\/184"}],"wp:attachment":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/media?parent=74"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/categories?post=74"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/tags?post=74"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}