Posts tagged ‘epiphany’

Epilicious is dead, say hello to BMS

With Python being dropped as a language for extensions in epiphany 2.28 I needed to replace epilicious. I tried writing it in JavaScript (seed was integrated in 2.28), but I gave up due to hitting too many hurdles on the way. Instead I decided to rewrite epilicious using Vala and a minimal layer of C.

It turned out to be very doable, despite epiphany’s extension API lacking Vala bindings (Cosimo Cecchi, I’m looking at you :-) ). Basically I did the following setup:

  1. Add the extension following the instructions in Writing Epiphany Extensions by Adam Hooper.
  2. Add a check for valac in configure.ac.
  3. Add a rule in the extension’s Makefile.am to generate a C header file for all the Vala code, for use from C.

Then I started writing the actual extension. I did the minimal amount of work in C, trying to escape as soon as possible into Vala. In the few places I needed to call from Vala into C I would declare a delegate in Vala, and pass a function from Ci.

I call this new version BMS, for bookmark synchronisation. I have a patch for BMS that applies to epiphany 2.28.1. (The file also contain a PKGBUILD in order to delight Arch users :-) )

I should probably point out that while epilicious never could be called polished, BMS is even less so. I might find the time to make it multi-threaded, so that it’s possible to do some sort of progress dialogue, but don’t hold your breath. In the back of my mind is also the thought of rewriting it yet again, in JavaScript/seed.

  1. The format of .vapi files are unknown to me, and I haven’t managed to find much documentation. Using function pointers seemed like an easier way, especially given that I needed this in exactly 3 places.[back]

Setting up Epiphany to play with Seed extensions

Since the Python extensions to Epiphany have been removed from the repository I thought it was high time to start playing with what seems to be the replacement to Python extensions: Seed extensions. The first step is of course to get a version of Epiphany that supports Seed extensions. After a few emails on the mailing list I’ve come to a recipe (I’ve done this twice now on different machines to I’m fairly confident it works). I should probably preface this by saying that I run an up-to-date Arch system, if you run something else you might need to do a bit more, or less if you’re lucky :-)

  1. Make sure the following packages are installedi: libsoup, libwebkit, gnome-common, intltool, libffi
  2. Clone the following Git repositories from git.gnome.org: epiphany-extensions, epiphany, seed, gobject-inspection, gnome-js-common, gir-repository
  3. Decide on a $prefix, i.e. where you want it all installed (I use ~/opt/gnome-trunk). Then export the following environment variables:

    export PATH=$prefix/bin:$PATH
    export PKG_CONFIG_PATH=$prefix/lib/pkgconfig
    
  4. Then configure, build and install everything. Use the autogen.sh script to create the configuration, and make sure to pass it prefix=$prefix each time. Some of the modules need extra arguments as well. This is the order and extra arguments I used:

    1. gnome-js-common (--disable-seed --disable-gjs)
    2. seed
    3. gnome-js-common (--disable-gjs)
    4. gobject-introspection
    5. gir-repository
    6. epiphany (--enable-introspection --enable-seed)
    7. epiphany-extensions

After that you can put your extensions in ~/.gnome2/epiphany/extensions/. I have two instances of Epiphany installed, a stable from my distro, and the dev version I built myself. I haven’t managed to run them both side by side, but beyond that there seems to be no bad interaction between them.

  1. You might need a few more packages depending on what desktop environment you use. Those were the packages I needed to add to my machine where I run Gnome and do regular non-Gnome development[back]

Epilicious in Ubuntu Edgy Eft

It seems my Debian packages for Epilicious have worked in Ubuntu (Dapper Drake I suppose). This is purely accidental. It’s however a very nice accident :-) This lucky coincidence doesn’t hold for Edgy Eft.

If you are lucky then you can get my Epilicious packages to work on Edgy Eft by copying (or linking) the files to /usr/lib/epiphany/2.16/extension. No guarantees, and YMMV, of course.

Related news: I’ve just updated the package of the development edge version of Epilicious.

New release of epilicious coming up

Since it’s been some time since the 0.8 release of epilicious and I’ve been doing some work on it lately I thought it’s time for a release soon. I should be able to get around to it in a day or two.

I went over the translations and realised that they’re all going to be out of date when I make the release. Reading through the document on L10N Guidelines for Developers I considered sending a POT file to the Translation Project. I didn’t send an email for two reasons:

  1. Epilicious contains 18 translatable strings. It just feels like it doesn’t belong with apps like xchat.
  2. I’m still hoping I’ll be able to get it into GNOME CVS at some point as an official plugin for epiphany. Then the GNOME Translation Team would get involved but unfortunately they won’t touch it until it’s in GNOME CVS.

For now I’ve uploaded the POT file. Please, please, send me a translation!

Epilicious for Epiphany 2.14

I’ve just uploaded a Debian package that fixes Epilicious so that it works with Epiphany 2.14. It still works like a charm :-)

Do keep in mind that I’m packaging an unreleased version of Epilicious.

Bookmark sharing, firefox to epiphany and back again…

I’ve just found foxylicious and AbstractMouse.com. Jippie! now let me tell you why I’m so happy about that!

I use computers at home and at work. For a long time I kept on sending mails from work to my private email address with non-work-related links to check out at home. It also happened that I sent similar mails in the other directions with work-related links I stumbled across when at home. I’m currently using Epilicious to make it easier to share bookmarks between home and work. However, I’m forced to use Windows (as well as Linux) at work, and Epiphany doesn’t run on Windows. Using foxylicious I can now get those bookmarks into FireFox as well :-)

Lately I’ve started using several computers at work (well, really only two computers and a set of VirtualPC/VMWare images) and I want to share some pure-work bookmarks between them, here I’m talking about internal pages that are inaccessable from home–I don’t want them cluttering my bookmarks at home! This is where I’ve put AbstractMouse.com to work, using it I can share work-only bookmarks between all the machines/images :-)

But all isn’t well. :( When on a Linux box, where Epiphany does run, I’m forced to use FireFox to get to the work-only bookmarks. I have two options for solving that:

  1. Get both foxylicious and Epilicious to work with multiple delicious accounts, or
  2. Make Epilicious work with the AbstractMouse.com server.

The former requires some lobbying of the foxylicious author (I’ve already posted a comment on his blog :) ). The latter would only involve getting some information from Eric of AbstractMouse (he’s interested in adding plugins for more browsers), then the rest is up to me. The problem there though is how to map between Epiphany’s topics and FireFox’s hierarchies… I prefer the former! :)

Epiphany rocks!

Read a post on epiphany-user yesterday on how a hidden location bar appears when Ctrl-L is pressed. Then it goes away again. Very nice. It also seems that the version in Debian keeps information about “Generic Postscript” printing–I don’t need to enter a2ps in the text box anymore, it’s remembered.

I just love how the irritation points in the GNOME UI just keep on disappearing :-)