Experience from writing a tiny GNOME app in Gjs
- From: Robin Stocker <robin nibor org>
- To: gnome-devel-list gnome org
- Subject: Experience from writing a tiny GNOME app in Gjs
- Date: Fri, 12 Jul 2013 18:54:53 +0200 (CEST)
Hey hey,
I wrote a tiny app in Gjs yesterday and wanted to share my experience.
It's a wrapper around the Spotify web player to add support for media
keys (play/pause, next, previous). It uses Gtk, WebKitGTK+ 2, and DBus.
I started with the gnome-devel-demos [1], which gives a very nice
introduction. The hello world was running quickly and the edit/run cycle
is of course very fast due to not needing compilation.
For adding media key support, I looked at what totem does [2], and tried
to reproduce it. This is where I hit the first road block, there's no
API reference for JS on developer.gnome.org. But I think this should be
addressed with bug 693378. Through searching I found some documentation
which helped [4] (although some things didn't work as documented).
For the WebKitGTK+ API, I looked at the C API reference and puzzled it
out. This was also kind of hard, but it's the same problem as above.
For making it easy to install this, I experimented with a .desktop file
which references the .js and icon through relative paths, but had no
success. I resorted to having an install.sh that expands the paths and
copies the file to ~/.local/share/applications/. I'm eagerly awaiting
the "app bundles" work, which should improve the situation [5].
All in all, I think the GNOME platform is moving in the right direction
and there's potential in having a good app development story.
Finally, here's the link to the source, if anyone is interested:
https://github.com/robinst/spotty-gnome
Regards,
Robin
[1] https://developer.gnome.org/gnome-devel-demos/unstable/js.html
[2] https://git.gnome.org/browse/totem/tree/src/plugins/media-player-keys
[3] https://bugzilla.gnome.org/show_bug.cgi?id=693378
[4] http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gio.DBusProxy.html
[5] https://mail.gnome.org/archives/gnome-os-list/2012-September/msg00000.html
[
Date Prev][Date Next] [
Thread Prev][Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]