2009-04-17

Moblin Day 1+2

It's the second time I'm testing Moblin. The first time was with Alpha1, but now with Alpha2 I decided to install it. One main reason I kept Alpha2 was because of the availability of Xfce 4.6 ;-) Apart from that the experience is really great and it does boot fast. I turn the netbook on and after 1-2 seconds I already see an image on top of the Xorg session. It feels like hibernation but it's not :-)

The first day
I stumbled over the bug #1088 when I entered my key for the Wifi access. Of course I obviously had to type it wrong... One way to fix this was to clean up the configuration file of connman, within /var/lib/connman/. Otherwise nothing alarming.

After that I themed a little bit the desktop, like the awesome Nodoka-Midnight theme. Next I quickly figured the package manager, yum, and I headed toward a system upgrade. This step took a very long time, up to 3 hours. Alpha2 is as of today around 1 month old and there were over 300 packages to download. That took around 700 actions for yum like installing, updating and cleaning up.

Once the upgrade was done I installed the necessary devel packages to compile xfce4-gvfs-mount and xfce4-clipman-plugin both respectively from git and subversion. The Install/Remove Software GUI (gpk-application) is very nice, better than what I knew from Synaptic. Amongst the Moblin packages I found xfce-software-development which eases a little bit the selection of packages to install.

Well, one issue at the post upgrade was the default background disappearing, so I found out that it came from the package xfce4-desktop-branding-moblin. I'm kinda attached to that background now, I like the electronic-circuit like board, so I managed to copy/paste it. It's called moblin-energy-blue-1024x600.png.

The second day
A few issues:
- Firefox crashes "a lot".
- The gvfs-fuse-daemon is missing.
- Impossible to play MP3 or Divx.

I dunno how to fix Firefox and there are no appearing bug reports. I tried out the official binary provided by Mozilla and it crashes the same ways. GMail is crashing, Twitter is crashing when reloading the page after giving an up-to-date state, https on xfce.org, etc. So this is annoying. I will try to get a backtrace and install Midori since Moblin has a recent version of WebKit GTK+.

Now about the Gvfs topic, I was first fighting with an old build of xfce4-gvfs-mount on my home partition to finally notice that the gvfs mount was useless as gvfs-fuse-daemon was missing by default on the system. This means I can only access the files the hard way by using the gvfs programs to copy, list or delete files. I had to install the package gvfs-fuse.

And finally, the Moblin repository doesn't provide decoders for MP3 or Divx. Those are provided with the set of ugly plugins for GStreamer and is not available.
Hence I downloaded and installed the following packages from Fedora 10: a52dec, libmad, libmpeg2, lame-libs, libmpeg3 and of course gstreamer-plugins-ugly. The gstreamer-plugins-ugly package depends on a little more libraries but I didn't find them and I am already covered with the libs I downloaded.

Last but not least, I miss Wesnoth and the Xfce Power Manager :-)

Update: Screenshots

Update: Actually to get Totem to read Divx I needed to install gstreamer-ffmpeg! I have a dozen of rpms in a directory.

2009-04-16

Xfce Clipman Plugin 1.0.0

This post is about the latest release of Xfce Clipman Plugin, a Clipboard Manager for the Xfce desktop. I turn it more technical than for end-users. I hope people interested into GTK+, GObjects or Xfce panel plugins will like to read it. The release is going to happen very soon now.

The first major change concerns the plugin being entirely rewritten by using GObjects and Xfconf, this means cleaner, better understandable, maintainable code, etc. There is the "main function" (for sack of clarity) and four objects. A collector which listens to clipboard changes and put them in the history, the history is also an object, a menu (on top of GtkMenu) that displays the history and allows to clear it, and finally another object which is part of a new feature for the clipboard manager.

Now having my objects it's just about instantiating them in the main function and binding them to Xfconf. If there is something missing in an object it is just about modifying a particular aspect of it.

The goal of using Xfconf is to have a less cluttered code for settings, and to make good use of property bindings against the objects. For instance, the object History has a maximum count of items, and being bind against Xfconf, it is possible to run an external command with xfconf-query to change that setting, without having to call a public setter function. Binding a property is a one function call.

Following this major change is the settings dialog. I have written it from scratch with Glade, a UI designer for GTK+, by which I can easily modify and beautify the dialog without having to fight with lines of code several hours a day. In fact it takes a few seconds to change a label and up to 5 minutes to design a goddamn dialog. Glade makes an increased use of memory however, but stop thinking of this when you know you have 1MB times 1000 installed on your system — I have currently 1GB on a netbook and 2GB on a quite-fanless Atom-based workstation but I use only around 300MB in general. If you still fear about having an application that uses only 2 but 5MB with Glade, well I can't help you! From what I have read, the built-in UI designer of GTK+, named GtkBuilder, needs less memory, but the Glade to GtkBuilder conversions are going to happen with Xfce 4.8.

Now about the new feature introduced into this major release. It is called "Actions" which is the fourth object by the way. An action is a match between a text selection and regexes to let you execute specific commands. For example the action "Image" can match text with image filenames and let you choose commands between "View with Ristretto" and "Edit with Gimp". I wrote something simple in the settings dialog to add new actions that is inspired from the Thunar User Custom Actions interface.

Finally, I made other changes that are more geeky than useful, like I made a bundle out of the plugin. The plugin is now installed under the binary directory instead of the common place holder for panel plugins but can still be added inside a panel with the "Add Item" menu action. As you might understand, it can be executed as well now, and if you do so it will run inside the notification area. An item is installed in the applications menu to be able to start it (under the category Utility), and as it is possible to run outside the panel, I added a autostart file.

That's it already. If you have questions, don't mind. If you wanna discuss the Actions/regex feature go ahead. More importantly, I hope you'll take a glimpse at the code.

If you are interested into panel plugins, have a look at the wiki. The panel plugins amongst the goodies are a good way to get to know code and start with something.

Update: ANN: xfce4-clipman-plugin version 1.0.0 released

2009-04-10

IMAP Client

Lately I got a very broken GMail in my mail client Claws. I didn't check my mails for a few days and I got about 300 mails waiting for me. When I did the checkout it stopped at about 150 mails, then at around 250, reporting an error about timeout. Finally I got all the mails, but all the on-coming times I downloaded the mails it always restarted at 125 of 128 mails instead of 0 of 8 mails... The mail notification applets were also kind-of broken. And all of this was by using POP.

So I thought about un/rechecking that option, and actually I had the opportunity to switch that thing off and use IMAP instead. Which I did.

First impression ever, it's awesome. All the actions done in any IMAP client is synchronised in the web client, would it be moving a mail to a directory, create a directory, or mark a mail as unread. However, to be working perfectly with the web interface GMail, the client has to be tweaked.

When I started to use Claws as usual, I figured some problems, not that annoying, for instance that it creates its own Sent, Draft and Queued directories -- apparently I can't get rid of them. However more annoying, when composing a mail, as you compose, it saves a copy to Queued, and every time it saves a new copy the old one is archived in GMails "All messages". This means for long mails that you can have a thread of around 20 copies of your mail being more and more complete. I looked around in Claws, every little corner, but I didn't find anything. The only option left is to place the Sent, Draft and Queued messages in another directory. First I tried to put them in the predefined directories of GMail but it kept on putting them in the default place holders. Then I thought I had not really time to deal with these annoyances, I switched to another mail client. While writing this entry, I "debugged" and figured I can save the messages to a local directory, just like it works with the other mail client. In the end, I have a working and good mail client with Claws.

So today I retried Thunderbird, and with respect to IMAP, it does a real good job. It is possible to trash the mails permanently which means for GMail there is always a copy in "All messages". In fact I don't need yet another Trash directory in my mail client, as it is only a new and useless directory for the web client. More importantly, for Sent messages it can place it where I want and it works. And what I used in Claws to send messages with another email address -- creating an SMTP only account -- can be found in the "Identity Settings" of an account.

Which one to choose now? Claws has a status icon for the notification area, and Thunderbird -- even if possible -- will either come with a built-in one or provided by an extension perhaps with bugs. I will try one and the other I guess, and keep the one I finally prefer. It's IMAP now anyway, all what I do in one client is seen in the other clients ;-)

Update: Now this can sound surprising, Thunderbird is able to load a directory of 95000+ mails in a second (of course you have to wait to download them all the first time). Claws is lagging at this a lot, even with less like 40000+, it takes about a minute and more to display the mails.