{"id":12,"date":"2009-10-05T13:27:37","date_gmt":"2009-10-05T11:27:37","guid":{"rendered":"http:\/\/blogs.igalia.com\/elima\/?p=12"},"modified":"2016-10-20T13:23:24","modified_gmt":"2016-10-20T11:23:24","slug":"vagalume-port-to-moblin2","status":"publish","type":"post","link":"https:\/\/blogs.igalia.com\/elima\/2009\/10\/05\/vagalume-port-to-moblin2\/","title":{"rendered":"Vagalume port to Moblin2"},"content":{"rendered":"<p>During summer, I started to work on porting <a title=\"Vagalume: Last.fm client for Gnome and Maemo\" href=\"https:\/\/vagalume.igalia.com\">Vagalume<\/a> UI to <a title=\"Moblin\" href=\"https:\/\/moblin.org\/\">Moblin<\/a> platform during my beloved hackfest hours. Vagalume is a <a href=\"http:\/\/last.fm\/\">Last.fm<\/a> client for <a title=\"The Free Software Desktop Project\" href=\"https:\/\/www.gnome.org\">GNOME<\/a> and <a title=\"Maemo platform\" href=\"https:\/\/maemo.org\">Maemo<\/a>, created by <a title=\"The world won't listen\" href=\"https:\/\/blogs.igalia.com\/berto\/\">Alberto Garc\u00eda<\/a> (aka Berto). Moblin is an open source project impulsed by <a title=\"Intel Corporation\" href=\"https:\/\/www.intel.com\">Intel<\/a>, to create a GNU\/Linux-based platform optimized for mobile devices (mainly, those powered by Intel&#8217;s <a title=\"Intel Atom\" href=\"https:\/\/www.intel.com\/technology\/atom\/\">Atom<\/a> processor and graphics accelerator).<\/p>\n<p>Vagalume&#8217;s UI is currently based on <a title=\"The GTK+ Project\" href=\"https:\/\/gtk.org\">GTK+<\/a> for GNOME and <a title=\"Hildon - Gnome Live!\" href=\"https:\/\/live.gnome.org\/Hildon\">Hildon<\/a> for Maemo. However, Moblin user-experience is based on <a title=\"NetBook ToolKit\" href=\"https:\/\/moblin.org\/projects\/netbook-toolkit-nbtk\">Nbtk<\/a> and <a title=\"Clutter Toolkit\" href=\"https:\/\/www.clutter-project.org\/\">Clutter<\/a>, yet it can run pure GTK+ applications. Taking a look at Nbtk toolkit was in my wishlist since it&#8217;s presentation at <a title=\"The Gran Canaria Desktop Summit '2009\" href=\"http:\/\/www.grancanariadesktopsummit.org\/\">GCDS 2009<\/a>, where some cool features of the project attracted my interest, like using <a title=\"Cascading Style Sheets\" href=\"https:\/\/www.w3.org\/Style\/CSS\/\">CSS<\/a> for styling widgets. About Clutter&#8230; well, it&#8217;s a project I personally like a lot and have been following since early versions. Motivation was ready and served.<\/p>\n<p><strong>The goal<\/strong><\/p>\n<p>The porting main goal is to get Vagalume running in Moblin2, sharing the platform&#8217;s look n&#8217; feel. Revamping the UI was not just replacing widgets, but initially make Vagalume use the technologies present in a Moblin ecosystem, and &#8220;by-the-port&#8221;, perform a complete redesign of the UI, getting help from those talented designers at Moblin team.<\/p>\n<p><strong>So far&#8230;<\/strong><\/p>\n<p>After some weeks of hacking and festing, we have partially completed the toolkit migration, and developed a concept-proof UI redesign for the main window using Nbtk and custom Clutter widgets, except for the shell-menu which was not migrated yet . A <a title=\"Vagalume Moblin2 concep-proof screen-cast\" href=\"https:\/\/blogs.igalia.com\/elima\/files\/2009\/10\/vagalume-moblin-02.ogg\">screen-cast<\/a> demo of the new UI is available. Notice that the target at this stage was not to align with Moblin&#8217;s look n&#8217; feel, but just mixing differnt toolkits and get them to run together.<\/p>\n<p>One of the new features we thought it would be interesting to include is to provide information of next and prevoius tracks, right in the main UI. The <a title=\"Last.fm API\" href=\"http:\/\/www.last.fm\/api\">Last.fm API<\/a> provides means to fetch playlist items in advance, so was not really difficult to implement that (with some core patches from Berto.. thanks).<\/p>\n<p>The port&#8217;s source code is temporarily in a <a title=\"Vagalume port to Moblin2 - git repository\" href=\"https:\/\/gitorious.org\/vagalume-moblin\/vagalume-moblin\">public repository<\/a> at <a href=\"https:\/\/gitorious.org\">Gitorious.org<\/a> in the <a href=\"https:\/\/https:\/\/gitorious.org\/vagalume-moblin\/vagalume-moblin\/commits\/moblin\">moblin<\/a> branch, but it will eventually get merged upstream when it gets mature enough. To build the branch, you will need a Moblin library-featured environment, like the <a title=\"Moblin SDK\" href=\"https:\/\/moblin.org\/documentation\/moblin-sdk\">SDK<\/a> provided, or the Moblin platform itself installing the development tools and libraries. Alternatively, you can use my jhbuild <a href=\"https:\/\/blogs.igalia.com\/elima\/files\/2009\/10\/vgl-moblin.modules\">moduleset<\/a>.<\/p>\n<p>There are some issues when building the project:<\/p>\n<ul>\n<li>Running Nbtk in 64 bits platform drops a segfault due to a problem in libccss-0.3.1, so use 32 bits for hacking by now.<\/li>\n<li>Moblin platform is not properly detected during <em>autogen.sh<\/em> stage, so you have to pass <em>&#8216;&#8211;with-platform=moblin2&#8217;<\/em>. This shall be fixed soon.<\/li>\n<\/ul>\n<p><strong>What&#8217;s next<br \/>\n<\/strong><\/p>\n<p>Right now, we are trying to get support and feedback from Moblin UI designers, in order to plan a complete layout and style redesign. Making Vagalume UI consistent with Moblin environment is the current milestone. In the mean, we are doing several stability tests and improving toolkit integration.<\/p>\n<p>Contributions are very appreciated, specially with design ideas, testing and project build integration. I can even review patches in my limited time.<\/p>\n<p>Stay tuned.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>During summer, I started to work on porting Vagalume UI to Moblin platform during my beloved hackfest hours. Vagalume is a Last.fm client for GNOME and Maemo, created by Alberto Garc\u00eda (aka Berto). Moblin is an open source project impulsed by Intel, to create a GNU\/Linux-based platform optimized for mobile devices (mainly, those powered by &hellip; <a href=\"https:\/\/blogs.igalia.com\/elima\/2009\/10\/05\/vagalume-port-to-moblin2\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Vagalume port to Moblin2&#8221;<\/span><\/a><\/p>\n","protected":false},"author":34,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,6],"tags":[12,23,33,37,38,43],"class_list":["post-12","post","type-post","status-publish","format-standard","hentry","category-gnome","category-hacking","tag-clutter","tag-gtk","tag-last-fm","tag-moblin","tag-moblin2","tag-vagalume"],"_links":{"self":[{"href":"https:\/\/blogs.igalia.com\/elima\/wp-json\/wp\/v2\/posts\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.igalia.com\/elima\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.igalia.com\/elima\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.igalia.com\/elima\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.igalia.com\/elima\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":4,"href":"https:\/\/blogs.igalia.com\/elima\/wp-json\/wp\/v2\/posts\/12\/revisions"}],"predecessor-version":[{"id":460,"href":"https:\/\/blogs.igalia.com\/elima\/wp-json\/wp\/v2\/posts\/12\/revisions\/460"}],"wp:attachment":[{"href":"https:\/\/blogs.igalia.com\/elima\/wp-json\/wp\/v2\/media?parent=12"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.igalia.com\/elima\/wp-json\/wp\/v2\/categories?post=12"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.igalia.com\/elima\/wp-json\/wp\/v2\/tags?post=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}