Recent blog entries for pbor

3.12 almost here

I wanted to make one more post before the imminent release of 3.12 showing how gedit changed in this cycle, but the recent series of posts by Matthias feature plenty of gedit images and left me without fresh screenshot material :-)

For those living under a rock here is how gedit 3.12 looks

gedit 3.12 with the Solarized Dark color scheme

gedit 3.12 with the Solarized Dark color scheme

Beside the changes in the main user interface, there are other small gems that may be not as shiny, but are very useful to regular gedit users.

With the adoption the new user interface we changed the “new document” keyboard shortcut to the ubiquitous ctrl+T, and while at it we borrowed another neat trick from web browsers: with ctrl+shift+T you can now reopen the tabs you closed recently.

Another small feature I find myself using more and more is the new keyboard shortcut to change the case of text: with ctrl+L you can change the selection to lower case and with shift+ctrl+L change it to uppercase. Ctrl+~ will toggle the case of the selected text. These actions are also available from the right click menu.

There is however another large set of changes that is very dear to me even if it may be not as evident to final users: also in this cycle we managed to keep technical debt under control:

  • we make proper use of new GTK+ widgets and features including GtkPopover, GtkStack, GtkCenterBox, GtkHeaderBar and CSD decorations
  • we reworked command line handling taking full advantage of the features supported by GApplication, including being able to pipe to stdin even when there is an instance already running
  • we got rid of GtkUIManager and switched all the menus and shortcuts to GAction with a clean implementation that leaves us good amount of freedom to adapt and change our UI to different systems
  • we continued our effort to move as much widgetry as possible to .ui files and make use of Gtk templates
  • we removed a lot of custom (and slow) code that implemented the full-screen toolbar animation and replaced it with smart use of GtkOverlay and GtkRevealer
  • we reimplemented the side pane using GtkListBox, removing one of the biggest uses of the scary GtkTreeView API in our codebase and in the process of doing so we restored the ability to drag and drop
  • more importantly we did all the above shaving about 3000 lines from the total amount of C code, while keeping all the features and adding a few new ones

Syndicated 2014-03-21 21:22:39 from Club Silencio

gedit: new look

This week GNOME released its 3.11.90 version and entered the UI freeze period.

Some time ago nacho unveiled the major changes in the gedit user interface that we have been designing and implementing, but now that the dust is settling I think it is a good time to take another look at the many details we have been polishing since those early screenshots were posted.

We now use the new GtkPopover widget to select the currrent side panel and to tweak the current view settings




Many dialogs are now taking advantage of header bars


The Gtk tabs design went through more refinements and using the new support for a centered widget in GtkBox, the tab label is properly centered also when showing a warning.


The new user interface aims to be elegant and minimalistic, but this does not mean that is not thought for advanced users, quite the opposite: I think heavy keyboard users will enjoy the no-frills UI that lets you focus on the content, whether it is code, your LaTeX thesis or that tricky apache configuration.

All the usual advanced tools are still there (for instance the Snippets and External Tools dialogs can be reached from the App Menu) and by popular demand we incuded in GtkSourceView the Solarized and Solarized-dark color schemes. Not to mention the new code-assistance framework, but that’s something for another post :-)


Even if not as visible, the same amount of polish and attention to detail happened under the hood.

The use of GMenu / GAction was iterated a few times with the invaluable help of Ryan who has always been ready to answer our many questions, and I am now confident that is properly set to accomodate the need of plugins and the integration on different platforms[1]

Ryan also helped us improve the command line handling, taking advantage of (and actually driving) the new features of GApplication.

Sebastien Lafargue rewrote the document list side pane using GtkListBox and greatly improving the code and reimplemented the the fullscreen mode replacing a ton of custom animation code with GtkRevealer.

[1] help and patches are very much welcome, and I do not mean it in the usual ”patches welcome” tone :-)

Syndicated 2014-02-20 13:37:46 from Club Silencio

Fosdem ’14

I’ll be at FOSDEM this year! If you want to chat about the new gedit or anything else I’ll be hanging around the desktop devroom.

I am looking forward meeting my fellow belgian gedit developers swilmet and nud.

I will land at 5:30 PM at the Charleroi airport, if someone wants to join me on the bus shuttle to Brussels feel free to leave a comment.

In other news, if you are a young linux “smanettone” who enjoys sysadmin work on clusters and HPC systems, we have an open position in Rome.

Syndicated 2014-01-31 07:55:26 from Club Silencio

Give me a stopwatch and a map…

It looks my posts are as punctual and frequent as the GNOME releases… one every 6 months.

With GNOME set to be out in October (well, end of September, but bear with me) and including a new Maps application, we just needed a stopwatch

GUADEC was once again great and Brno turned out to be a beautiful (and hot!) location.

Clocks is a small pet project, with a tiny and clean codebase which makes it fun to work on, so during the conference I decided to rework the stopwatch and timer tools, which in 3.8 were a bit dull. After a few iterations with Allan, here is what will be in 3.10

Clocks 3.10Clocks 3.10

In the video you can also see that at start up a world clock for my current location appears automatically: this is thanks to the geolocation support implemented by Evgeny during his Summer of Code and which I still hope to sneak in for 3.10.





Syndicated 2013-09-11 21:42:58 from Club Silencio

3.8… clocks, gedit, more…

gnome 3.8 will be out later today, on time as usual, it’s a great incremental release with improvements all over the place, but I’ll let the release notes speak.

For my own part, I put my fingers here and there either making patches or trying to help (annoy?) people doing the real hard work with reviews and suggestions.

Clocks has matured from a prototype to a real app and in this cycle. It turns out that while from the code point of view a clocks app is really a small application (some even think trivial and a waste of resources better spent improving other aspect of gnome) it is actually quite challanging to design and decide how all the small details should work, since the user expectations for such a familiar object are very high. It has also been a good way to experiment with the new design patterns and the new widgets (like the ones in libgd). There are surely many things to improve in the next iteration, a particularly sore point that I am a bit ashamed to not have fixed yet it is the persistence of alarms when the app is not running (or even when the system is suspended), but today’s bug is tomorrows chance to get involved!


 The application went through a full rewrite to address many of the issues found in the first implementation. I opted for a rewrite in vala because it is probably the more mature technology if you want to write a GObject based app today and  you are a bit sick of writing C boilerplate, but at the same time you need to pull some tricks to call some C code and libraries without proper introspection support. However I think the choice of the language is a secondary aspect of the rewrite compared to the use of some good practices I tried to adopt in the new code (use of many of the new prototype widgets in libgd, use of .ui files, use of GLib resources, use of GLib based library calls for everything, etc). Clocks is small enough I do not exclude to try a JS rewrite even if just as an exercise to see how the platform is maturing. In this regard I am really excited to see Giovanni’s work on defining a good platform for JS apps… I have some opinions in that regard (also due to the fact that I am back doing quite a bit of JS at work), but that’s probably best saved for another post.

 Gedit has been ported to GtkApplication: from the user point of view this mostly means that when run within gnome-shell you will see an appmenu (while you will get the usual menu when running on a WM that does not support that). However under the hood this meant quite a lot of code to rework: gedit makes use of many exotic features of GtkApplication, like handling stdin (you have now to use cat file.txt | gedit – , note the dash at the end) and support for blocking the terminal in order to be able to use EDITOR=gedit for git commits etc).

We also ported gedit plugin system to use Python 3, in compliance to a gnome wide goal. This has the unfortunate side effect of breaking third party plugins once again, but I think it is a step worth taking in the long term and the sooner the better: if you have to port your plugin you just need to specify “loader=python3″ in the .plugin file and make sure the code is valid python 3, gedit’s API did not change.


GtkSourceView has seen lots of work on the completion framework thanks to the Sebastien Wilmet, his blog has all the interesting details.

Baobab saw a few of incremental improvements after the major rework of 3.6, including a classy animation from the summary to the results page thanks to the wonders of libgd. With regard to baobab, if you are looking for a challenging, but relatively small and fun project, it would be great to see someone step up and implement animated charts (Stefano had a prototype) and rework the treemap to use the squarified algorithm… It would probably make for a good GSOC project, though you would have to find a mentor since I do not think to have time to do that this year (unless a really strong and independent candidate shows up).


Syndicated 2013-03-20 11:20:45 from Club Silencio


Summer is almost over, or rather, my summer vacation is almost over. In the last weeks I have been actively working on GNOME like I hadn’t in a long time… Monday I will go back to work, but even if I will not have as much time, I will try to keep my level of involvement as high as possible. This renewed enthusiasm comes largely from one decision: attending GUADEC.

I have been working on GNOME for more or less ten years now, but I attended GUADEC just once before (Stuttgart 2005) and I figured it was time to go again and see if a visit to the self-congratulating echo chamber could renew my interest and motivations… and guess what: it did!

GUADEC was fantastic, the location, the organization, the people, the talks, the food, but you probably heard this many times now…

Discussing implementation details (courtesy of xjuan)

Between a talk and the other I also came to the realization that I needed to work on something fresh and fun, so while in A Coruna I finished the redesign and rewrite of Baobab, GNOME’s disk usage analyzer, that Ryan started last winter.

I am really happy with the result both in terms of the new UI and in the underlying code, which is now written in vala, it is small and clean and makes use of many of the latest GNOME technologies.

Baobab location list

Baobab scan view

Developing small applications is so much fun and so rewarding that it is addictive, so after A Coruna (and after a couple of days getting sunburned enjoying nacho‘s hospitality in the south of Galicia) I decided to help getting gnome-clocks ready: this was even more fun because the work was shared with other current developers and designers, but also with some new contributors.
I just uploaded the first release of Clocks, in time for GNOME 3.5.91.

Mind you, this is a preview release so do not rely on it to wake up for work or to bake your cakes! It has a few know bugs and probably many unknown ones, but it starts to be feature complete and should provide a good starting point to iterate the design process and evolve into a beautiful and enjoyable clock application (well, unless you use the alarm to wake up at 6 AM, not much we can do to make it enjoyable in that case…)

World Clocks

Selecting Alarms

Ringing Alarm


Does this all mean I am abandoning gedit? No, I still use it daily more than any other application, but it is stable and does what I need it to do… on the other hand I am sure Jesse will come up with some incredible feature and Gustavo has a long secret todo list we reviewed together at GUADEC, so I can relax and just keep complaining about coding style errors while pretending to review patches…

Syndicated 2012-09-01 23:41:16 from Club Silencio

Third time’s the charm

While I was in flight over the Atlantic to come back to the old Europe, the awesome gnome release team finally put out GNOME 3. Not only that, now sports a fresh new look, but most importantly some great new content.


I am of the opinion that the primary measure of success of an open source project is its ability to attract and keep contributors and I think in this regard GNOME 3 is already a success. The changes in the UI – even the controversial ones – managed to revitalize a project that was slowly falling in a drowsy routine, refocusing efforts of long-standing contributors and attracting new forces. At the same time the great efforts spent cleaning up the programming platform provide a future-proof foundation which makes contributing easier and more fun. Time to make patches, GNOME 3.2 is right ’round the corner!

Syndicated 2011-04-07 20:51:01 from Club Silencio

gnome3 / cincinnati

Lots of blogs/flames/opinions about gnome3 on the web lately… but as they say, there is no such things as bad publicity.

I’ll keep my opinions for myself for now, first of all because I have not yet used gnome-shell enough to make an informed evaluation, but most importantly because if I write them down here, 3 years from now people will be able to point out how wrong I was ;) [maybe I should link some of the blog posts explaining why the spatial nautilus - which is gone in 3.0 - was such a good idea]

With regard to gedit, I am really happy to see how things are coming along… up to a couple of weeks ago I was a bit worried about the stability of the upcoming release, but thanks to the great work of nacho, nud, jesse, gregier, j1mc (thanks for working on the docs!) and to the prompt support of gtk+ and pygobject developers in fixing reported bugs, I am now back to using the devel version of gedit for day to day work and I am confident that it will be a good release. Besides, now that even the dependency on GConf is gone, gedit will fit perfectly in your XFCE, LXDE or EXDE desktop :-)

Coming to more important matters, this blog post after almost an year was mostly an excuse to say that I should be in Cincinnati for about a week starting from the 25th of March… if there is any gnomer who would like to meet for a beer just let me know!

Syndicated 2011-03-09 21:34:39 from Club Silencio

New logo

New logo, courtesy of Henry Peters.

New gedit logo

As announced by nacho, we have been looking for a new logo for a while. We had many interesting submissions and iterated through a couple of designs, borrowing ideas here and there. Thanks to all those who sent us their work!

Not only the new logo is already committed, but you can even wear it :)

Syndicated 2010-04-07 20:17:36 from Club Silencio

gedit 2.29.5

I just rolled the tarball for the next development release of gedit. This release marks an important milestone, since we completed all the goals we had on our roadmap for 2.30.

In particular this release overhauls the internals of I/O handling in gedit by always using gio for file loading and saving (we only used gio for saving remote files) and by taking advantage of the new data conversion api added by Alex.

For the casual gedit user these changes should be pretty much transparent, since they do not introduce new features except for the ability of forcing different line endings (Window’s CRLF, old MacOS CR and the usual UNIX CR). However since they are affecting one of the most important parts of the gedit codebase we would like to ask anyone running the development version and in particular who uses files with encodings different from UTF-8, to heavily test file loading and saving  and report any problem or regression.

Syndicated 2010-01-25 20:57:18 from Club Silencio

67 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!