Wednesday, 18 August 2010

The Awesome New Features of Midori 0.2.7

After a rather longish time a new release of midori is out and among other things it has a feature I never expected it would have implemented this early. Unless I'm mistaken, midori is the first browser that supports delayed tab loading on startup out of box (I'm aware of some extension for firefox which does something like this). You just need to set it in your preferences. Yay, this speeds up browser startup about zillion times as I keep a lot of tabs open. Well, it could use some improvement – currently you need to hit reload to load a tab, it would be nice if they loaded when selected.

Next, long awaited feature, are improvements to location bar. It can now search through bookmarks and it supports multiword search. Another bunch of useful improvements.

There are also two new Vala extensions – history list and external applications. The first one is an interesting feature that adds behaviour similar to how alt-tab works for windows to ctrl-tab for tabs. Since I usually have many tabs open, but frequently switch only between few of them, this looks like a huge usability improvement.

The other one is another long awaited thing – since webkitgtk does not support ftp protocol, we'd just got error messages instead of ftp listings, now midori fires up gftp. Unfortunately, without passing it the uri. So I looked into the code, quickly get acquainted with Vala language (really easy if you know some object oriented programming language and C), switched gftp for nautilus (gftp is a bit overkill to me) and fixed it to actually open the location. It's like two lines change:


diff -up midori-0.2.7/extensions/external-applications.vala.nautilus midori-0.2.7/extensions/external-applications.vala
--- midori-0.2.7/extensions/external-applications.vala.nautilus 2010-08-16 21:31:14.000000000 +0200
+++ midori-0.2.7/extensions/external-applications.vala 2010-08-18 01:34:04.000000000 +0200
@@ -17,7 +17,7 @@ public class ExternalApplications : Mido
Dialog? dialog;
bool launch (string command, string uri) {
try {
- var info = GLib.AppInfo.create_from_commandline (command, "", 0);
+ var info = GLib.AppInfo.create_from_commandline (command, "", GLib.AppInfoCreateFlags.SUPPORTS_URIS);
var uris = new List();
uris.prepend (uri);
info.launch_uris (uris, new GLib.AppLaunchContext ());
@@ -38,7 +38,7 @@ public class ExternalApplications : Mido
WebNavigationAction action, WebPolicyDecision decision) {
string uri = request.get_uri ();
if (uri.has_prefix ("ftp://")) {
- if (launch ("gftp", uri)) {
+ if (launch ("nautilus", uri)) {
decision.ignore ();
return true;
}


Hopefully this will be configurable in the next release (so that I won't have to patch the source code :D).

These new things also have the flip side though – occasional crashes. I haven't got time yet to inspect them, but I suspect the new vala extensions or changes to location bar to be at fault.

Sunday, 15 August 2010

Some progress on Nodoka

So, lately when I need to rest a bit from more technical work I usually do a bit of designing. And today I completely rethought how I shell approach the nodoka gtk-engine rewrite. First I decided that because it's rewrite and will be a really big change, I'll use 1.0 version for the final product. Next I've done some initial project planning which differs a bit from what I've been doing until now (design a widget, implement a widget, design a widget, implement a widget, …). You can see it on 1.x Brainstorm Page. During the past few days I also progressed a little with the initial widget design for MODERN style. Here's a preview (click on it to see it in original resolution):


You can grab the SVG from git.

Note that the actual coding is still far from here and might take a while. I also have some hopes for gtk3 widget-draw and I'll probably wait with actually writing the engine till I know what the new gtk3 API for drawing widgets will be. But comments/improvements on the style, submitting of new styles, … are more than welcome.

Saturday, 7 August 2010

Nodoka ported to GTK+ 3

Yes, I've finally updated gtk-nodoka-engine so that it supports GTK+ 3. It was rather time consuming (because of that I went to sleep at 3:30 AM) but easier than I initially thought it would be. Plus I was able to maintain support for GTK+ 2.18 and newer (which is in Fedora 12). Today I went a little more further, added the entry-progress rendering, I had in my TODO list since this was introduced, and uploaded the resultant packages (for F12 only gtk2 version, for F14 both, I don't have F13 to build packages for that) on my fedorapeople space. Here're quick tables of the packages (all the packages are either i686 or noarch):

Fedora 12

gtk-nodoka-engine GTK+ 2.0 Nodoka Engine + default theme
gtk-nodoka-engine-extras More themes for GTK+ 2.0 Nodoka Engine

Fedora 14

gtk2-nodoka-engine GTK+ 2.0 Nodoka Engine + default theme
gtk2-nodoka-engine-extras More themes for GTK+ 2.0 Nodoka Engine
gtk3-nodoka-engine GTK+ 3.0 Nodoka Engine + default theme
gtk3-nodoka-engine-extras More themes for GTK+ 3.0 Nodoka Engine
gtk-nodoka-engine Metapackage, pulls in both gtk{2,3}-nodoka-engine packages
gtk-nodoka-engine-extras Metapackage, pulls in both gtk{2,3}-nodoka-engine-extras packages


I'm planing on testing these packages on my laptop for some time and if I don't discover any regressions I'll officially release 0.7.5, submit the gtk3 version into fedora as well as update the gtk2 version.

Any testing is welcome, the packages are easilly rebuildable from the srpms (which you can easilly find on my fedora people space) for any fedora starting F12 and any architecture. If you encounter any problems, be it build issues or bugs in the engine, feel free to nag me in comments section :-)

Friday, 30 July 2010

The Biggest "F14 Feature" Is Here!

Yes, fedora SCM (source code management) system finally moved from the aging CVS to the modern, fast and efficient git. I express my sincere thanks to all who participated in making this change possible, you rock! I've already made my first changes using this new system, and it is simply awesome, especially if one has a previous knowledge of git (which is however not required to properly operate the repositories). Looking at the F14 Feature list, I think this is one of the best features of this release cycle.

Tuesday, 27 July 2010

F14 Laughlin Wallpapers Package


So, at the today's design team meeting we decided on the wallpapers for Laughlin Alpha and I've packaged them. The packages are available at the usual place until they get into fedora (review request). For gnome you'll need laughlin-backgrounds-gnome, for kde you'll need laughlin-backgrounds-kde, and in addition, in both cases you'll need laughlin-backgrounds-single. The packages are built in F12, but should work on any reasonably new Fedora ;-)

And here's a screenshot from my F12:


Please contribute to the F14 artwork by giving us feedback, preferably at a dedicated wiki page.

2010/08/01 UPDATE: the packages are now available in F14 and rawhide.