nautilus-elementary project reactivated - Jupiter coming soon

2011-03-20-000353_1920x1200_scrot

Hello, long time no see,

I were a bit busy the last couple of months, working on new exiting projects: marlin, wingpanel, slingshot etc... Marlin the successor of nautilus-elementary is still not there and you propably know the first release of eOS, Jupiter is coming soon. Like many other distributions, Ubuntu Natty won't support gtk3 and the gnome3 stack without adding external/testing repositories. Since gtk3 dropped the rc format, only one gtk engine is ready for gtk3 (clearlook) and one gtk theme (adwaita). Without proper theming there's no point rushing to gtk3/gnome3 so gtk2/gnome2  still has some nice months ahead before a progressive transition.


Considering the context and to provide the best experience for Jupiter, i decided to re-activate the nautilus-elementary project. A special up-to-date version of nautilus-elementary will be released soon. The 2.32.0 version bringed many bugs which have been hunted down for this special release.
Although the project has been shut down since November, i still see many people using this outdated version of nautilus, distributions adopting it, artists working on stuning theme for it, which surprised me bit considering the project is unmaintained. I would like to thanks all of the nautilus-elementary supporters and specialy the archlinux community which has kept working on an up-to date version. 

The future of marlin is still uncertain and i'd certainly appreciate help on a such large project, so if you're developer and would like to contribute to the potential successor of nautilus-elementary consider joining the #elementary channel on irc freenode.
I will continue my work and my efforts on Marlin so only critical bugs in nautilus-elementary would be fixed for the moment (ndlr. don't expect any new fancy features).

Expect an upgrade in the next couples hours for Maverick and a new package for Natty, 
for arch i just need to update the bzr - it's so good to be lazy ;)

(screenshot nautilus-elementary 2.32.2 @Ubuntu Natty)

nautilus-elementary - moment of truths | rant

In July 2009, nautilus rockstar developer Marcus Carlson published nautilus-simplified patch for nautilus 2.24 or 2.26 (i don't remember ;) ) and the 100% paper cut project started, i think it's the exact time where Ubuntu take his destiny in hand and started refining applications. It's a key moment and   the result is maverick merkat that upstream media salute today.

By that time i was member of the gloobus project and we needed some bind key to launch easily our previewer from nautilus. This is how was started the nautilus-elementary project too. It was a few patches at first but it quickly grown larger and larger trying to improve usability in nautilus. One and an half year later, here we are nautilus-elementary has become a popular application enought to be mentioned as a potential default application candidate on the next Ubuntu distribution. In the meantime i can't count the events (hackfest london, guadec, usability project, precedent UDS this UDS) where  some usability questions about nautilus were discussed. Many designers tried the exercise DanRabit, Izo, Hbons, Garrett  ... And still nothing has been done to solve this outside elementary. So i really didn't expected anything this year at UDS.

and here we go with this wonderful quote
"nautilus elementary - rejected because of patches considered hacks"

Considering the total absence of argumentation it can only be a joke and a bad one. I like to be insulted by someone who am sure didn't read my code at all. That nautilus-elementary would be default in a distribution i couldn't care less, in the end users would made their choices, this is freedom. But questioning the quality of my code without any argumentations is an insult. It only show the incompetence and professionalism of the person who made this judgment call. Just a free bashing/attack to elementary nothing more. 

Coming from a Canonical employee it is even more problematic, does Ubuntu really want to attract third party developers? 

Because the permanent attacks from this kind of people is getting annoying and is the reason of this post is i am getting sick of them. I've never published anything negative on free sotfware until now. 

Like theses comments on a bug report on launchpad or on ubuntu forums

Seriously who the fuck is this guy to tell me who i should work with? that my work is a duplicated effort, that he don't recommend my application... That's how Ubuntu want to attract third party developers, hackers? Yes i am talking about Canonical here, because theses attacks come from a Canonical employee on an official site (launchpad), and somewhat when you work for a company your talks on an official media engage its responsibility. Plus it's a bug report thread not a forum... Canonical has taken the road to Unity should i tell this same guy the same dumb comments he's done to me?  "hey it's a duplicated effort, u know gnome-shell ..." Hopefully i am not that dumb. Diversity and competition is a good thing. I don't know if it's the same guy responsible for the evaluation of nautilus-elementary and to be honest i don't really care about the who.

If i generate a patch between nautilus 2.32 original source code and nautilus-elementary 2.32 one i got a total of 22k+ lines of codes (autotools po files not included, just .c .h and Makefile.am diff). Lets count large and say the half is useless lines from diff -uprN and comments. I seriously doubt the person questioning the quality of my work read the 10k+ line of code. I doubt he read even one. 

Some parts come from some large communities projects like rhythmbox for the sidebar bar and the expanders, midori for the toolbar editor the compact menu button, etc ... I won't call them hack. When we talk about nautilus-elementary now, we don't talk about a few patches anymore the list of functionalities is somewhat consequent. 

It's just free bashing nothing more. Welcome to FOSS communities and its distributions/communities trolls.. If your project shine a bit more than another, the fanboys/haters troll.

On another hand there's people who ask why nautilus-elementary work is not included upstream. Let me be clear on this subject we already tried upstream wasn't interested and it's their right. I won't try to hit a dead horse and try to convince people. I really got some more interesting things to do than wasting my time. Two patches have even been uploaded on bugzilla for the few parts upstream was interested in. Plus if i may ask what about the destiny of the tons of patchs present in ubuntu/debian packages? why they're still not commited upstream after many years and you still use them?  What about the indicators? Why they have been rejected by gnome? If i am reasoning like this people, does it means the code was bad? Or does it only means that every communities have the freedom to do whatever they want with their projects. Like others got the same rights to fork them. But then chances are big that the old upstream communities start to complains about disrespect etc. Yes it's free software until you choose to go your own path then it's flames and insults. I am getting tired of this game. From all the communities i thought Ubuntu one would know a bit more the problematics about rejected patches. I just see how wrong i was ...

I develop this project on my own, on my free time, because i am a developer, because i like to experiment new things, because i am not satisfied with some software i use. Because i got the freedom to do so, like you're free to hate it or like it. Because i enjoy to do what i do, coding, so stop breaking my balls with your pathetic attacks, i am not interested in your FOSS politics gnome ubuntu. Some people should seriously reconsider their engagement in free software.

You can start trolling now i've got some pop corn.

Progress Pathbar widget

So theses last few days i were playing with some gtk/cairo C code to make pathbars look like progressive a la ubuntu software center. In nautilus-elementary we use a pixmap hack where we map some pixmaps to the differents buttons of the breadcrumb it's a bit hackish but it work pretty well. But now some native pathbar are needed in nautilus-elementary, our next step would be to combine the paths with the search/edit entries like in Danrabbit mockups.

In my researches i found herzi code for a litlle path bar widget and i am playing with this code since a few days.

The hard part of the challenge is to match the gtk theme. I've experimented differents ways to achieve this goal:

  • The first technique is to draw "manually" with cairo the pathbar drawing 3 lines of 1pixels, an outer border, a path and inner border line with a linear gradient fill. While it performs well on some themes, on some others the results are not so good. The solution would be to fix some drawing parameters and "cheat" a little depending on the used gtk theme. That's what the sofware center does. The counter part of this solution is every themes got the same shape whatever gtk engine it use. The nice part is you have a total control on the aspect of the pathbar.
    2010-10-23-134544_1920x1200_scrot
    this screenshot don't really illustrate the gtk matching colors but rather focus on the drawing to get a good shape and giving the shape a nice relief. And i got some fun drawing the black carbon pathbar ;)
  • The other solution and because i am really lazy ;) is to let gtk draw the button for you using gtk_paint_box function and draw & map the cairo arrows part on top of it. And i must say it works pretty well, the shape and colors of the theme are respected. I saw that gtk_paint_box functions will support cairo_t argument in gtk+3, it seems a good new as we could draw directly on a cr instead of the GdkWindow (at least that's how i understand it, i didn't tried it). It would be less "hackish" to use this technic.
    (download)
    I resized the toolbar for 40px height to get a nice view of the outer borders of the pathbar (26px height). I added a standard toolbar button to check the style of the pathbar and check if the colors matche. The cairo part is really well mapped on the painted box and the pathbar can even extend or change size without a problem.

 

Still there's many thing to do to use this pathbar in the filemanager, manage the way the pathbar collapse when there's many directories to show and the width of the pathbar is not suffisant. Give the pathbar an entry to use in correlation with search or change path like in Dan's mockups. It's a first step and a nice one :)

The right way to install nautilus-elementary on maverick

Reading some questions, browsing some forums, many people trying to install nautilus-elementary end up with half upgraded nautilus.
Yes command line is handy to install applications and it's so geecky  ;)
But sometime you have to know what you're doing.

So here the correct way to install the actual nautilus-elementary on maverick:

sudo add-apt-repository ppa:am-monkeyd/nautilus-elementary-ppa
sudo apt-get update && sudo apt-get dist-upgrade
nautilus -q

Performing a simple ugrade instead of dist-upgrade would end in an unfinished nautilus upgrade because nautilus-elementary have now some extra dependencies
and upgrade don't install any new packages.

For a complete explanation about upgrade vs dist-upgrade check this excellent blog post: http://davitenio.wordpress.com/2008/08/24/difference-between-apt-get-upgrade-and-apt-get-dist-upgrade/

or just use GUI if you're not geecky enought ;)

Bug squash hunt week end for nautilus-elementary and some zeitgeist thoughts

It has been a big productive week end, a consistent list of bugs has been fixed, so i thought it deserved a post
Here's the changelog:

   - zeitgeist search engine debug + adding cancellable on log_find_events loop
   - fix zeitgeist search engine producing 0 results on 32bits archis - Bug #644652
   - fix in case we share the same UI xml file from stock nautilus
   - right click menu popup on eterm for ne-terminal-config + copy/paste and ne-terminal functionnalities
   - adding ne-terminal-config dependency
   - middle click to close tabs
   - add Select All in background menu + remove Zoom In/Out
   - use cd not PWD - fix Bug #657516
   - allow nautilus to open a directory and select a file instead of useless error message 'this is not a directory'- bugzilla Bug 131259
   - add back ~ home directory support for location bar - Bug #630512
   - removing most of debug messages and GtkWarnings

32 bits users finally gonna enjoy zeigeist search engine too. I know there are some issues actually with search inside nautilus-elementary, Zeitgeist is not enough to cover all your needs.
It only index previous opened data. Don't forget to install the data providers for you everyday apps : https://edge.launchpad.net/zeitgeist-dataproviders

The search engine is not yet fully achieved, it lacks some functionalities and usability need to be improved. I still think zeigeist is a good candidate for fast and instant indexed searches but it's just not enough, we still need the old simple "find" engine in complement.
Maybe an hybrid solution could do the job, showing the instant zeitgeist results while browsing the directory defined by the search in background. We can imagine too that the filemanager feed zeigeist while you're browsing directories, while performing searches. The main idea would be to reuse the maximum known data on the system. In the end zeitgeist would cover most of the searches without any performance counterpart.

Of course this hybrid solution won't appear tomorrow, so in the meantime there's a decision to make, maintain nautilus-elementary like this with zeitgeist search engine and rely on external apps like gnome-search-tool or revert back to the good old nautilus simple search engine.
I'll make my decision next week. It would depend obviously about the usability of this solution and an evaluation of the time to develop a basic hybrid solution, showing zeitgeist result + performing a simple search (find like) in background. Any thought on this?

maverick nautilus-elementary PPA again operational

Just a quick a post to let you know that our mavericks problems are now solved and the ppa is now again operational.
Updates coming soon, packages pending for publication.

ppa:am-monkeyd/nautilus-elementary-ppa

Changelog
nautilus (1:2.31.92-0ubuntu2) maverick; urgency=medium

  * nautilus-elementary update to 2.31.92 bringing new features:
    - clutterview F4
    - embed terminal F7
    - zeitgeist search engine
    - some fix

Reviving old clutterview code + maverick pkg

As you probably already know (omg! guys are really fast! ;) ), 

Old clutterview code from nautilus-elementary 2.28 (karmic) has been committed to our last 2.31+ bzr branch.
Since i find it usefull to browse images and/or photos, i can't find any other uses for the moment, maybe the community can help with suggestion(s) and/or mockup(s) about things we can do with this new widget.
Or maybe this widget will stay as a simple toy, time will tell.

The packages

Since maverick suffers from unstable libraries cf my last post about libgtk, i still can't update launchpad maverick ppa.
So here are the deb files if you want to try out this version of nautilus-elementary with clutterview (aka coverflow) activated.
(compiled with old good and stable libgtk 2.21.5)

How to install
Warning: clutter uses opengl so if your video card don't support 3d acceleration it just won't work.
Warning2: don't install this on lucid, it just won't work
Warning3: use it at your own risk ;)

apt-get update
sudo apt-get install libzeitgeist-1.0-0 libclutter-1.0 libclutter-gtk-0.10

extract the archive (tar zxvf archive.tar.gz)
sudo dpkg -i *.deb

nautilus -q

press F4 to launch the clutterview.
have fun!

(download)

multiple problems about nautilus / nautilus-elementary in ubuntu maverick - some possible solutions

Nautilus and nautilus-elementary are very unstable under ubuntu maverick for many reasons. First if you have played with unity recently under maverick or even lucid, you have noticed some huge slowdown problems for each nautilus windows you launch. This is due to the package appmenu-gtk. The problem is even worse if you try to open multiple windows of a same application. So the first thing to do to solve this problem is sudo apt-get remove appmenu-gtk. The bug is already known https://bugs.launchpad.net/appmenu-gtk/+bug/604668

The other problem is the recent move to libgtk 2.21.6 in ubuntu maverick. gtk is moving from gdk to cairo, and at the moment libgtk2 2.21.6 is very unstable, many drawing gdk functions from this lib crash segfault. It is not systematic sometime you have to launch nautilus many times before having a viable window but it don't stand very long just change a theme and you observe that your nautilus windows just crash and be relaunched if you're under gnome. Downgrading to libgtk 2.21.5 seems to be a solution, unfortunately many packages now ask for libgtk 2.21.6 as a dependency. The weird thing about the problems with libgtk is that if you previously compiled nautilus with libgtk 2.21.5 installed, even if libgtk is updated to 2.21.6, the problem is solved. Maybe this come from some missing headers in 2.21.6. I don't have any clue but this is what i've observed and what the backtraces tend to say. 

Theses are the reasons why nautilus-elementary maverick package is not updated for a while now, because in the end we will distribute a package highly unstable, barely usable. So the only thing i can propose to you for the moment is using some packages compiled with libgtk 2.21.5. And for the moment i can only propose packages for amd64 architectures. I'll try to boot a livecd under x86 too and generate packages for this architecture too in the next few days.

Or feel free to downgrade to libgtk 2.21.5, manage the dependencies problems and compile nautilus-elementary with theses libraries.

Let's hope for better times with more stable libraries but with the next move to gtk3 things can be even worse ;)
(I don't have to remind you that we've choose to run an instable system and we don't have to complain)

So if you're running a maverick 64 bits system you can download the following archive : http://dl.dropbox.com/u/4135996/nautilus_2.31.90-0ubuntu4%7Eppa106_amd64.tar.gz
extract it, run a terminal and sudo dpkg -i *.deb

that's it and let me know if nautilus-elementary is running ok on your systems.

I will update this blog post in the middle of the week with x86 packages if everything works fine.