Since the beginning, the Solus Project’s Budgie desktop environment made use of GTK libraries and GNOME technology. Ikey, the lead developer or Solus, recently announced that the next version of Budgie will be based on a different toolset.
Ikey decided that the Budgie environment has simply outgrown GNOME. In the beginning, it was easier to integrate Budgie into the GNOME stack. However, as Budgie became more and more complex, that integration led to problems. Newer releases of GNOME have continually caused breakages in Budgie.
According to Ikey, the current version of Budgie is able to work only by pretending to be GNOME. This fools the GNOME stack into working. Here is an example:
To display device & volume notifications, the GNOME Settings Daemon sends a message to the ‘org.gnome.Shell’ name on D-BUS. In our case this has to be ‘budgie-wm’, which has to pretend to be ‘org.gnome.Shell’ for keyboard layouts and shortcuts to work with GNOME Settings Daemon
There are also other items to consider. Budgie needs a more powerful toolkit for graphics. Recent GTK API additions are inaccessible to developers of GNOME. Most of it is designed to work with the GNOME Shell only. The layout system that ships with GTK is limited. Certain Wayland functions are not currently available.
Tribute to Gnome
Ikey is quick to point out that his comments should not be seen as an attack on GNOME. He states that he has great respect for the GNOME project and has contributed both money and code to the project.
There were three options considered by Ikey. First was the possibility of forking GTK/GNOME. It appears that Ikey immediately dismissed this as being too much work, most of which would entail removing years worth of legacy support. In his mind, it would be a better idea to bring the ideas and concepts behind Budgie 10 into a newer and cleaner code base.
The second option would be to use the Enlightenment Foundation Libraries (EFL) from the Enlightenment desktop environment. EFL is a very efficient and capable toolkit. However, it would take a lot of work to make the default look similar to the default Budgie look.
Finally, there’s QT, which is very popular and very capable. It is also much larger than most alternatives. It is a platform, not just a toolkit. However, it is written in C++, which Ikey is not a fan of.
After much discussion and soul searching, Ikey has decreed that Budgie 11 will be powered by Qt. The goal is to create a “stable, reliable, performant experience” using the power of Qt, C++, and Wayland. (Ikey plans to roll out Wayland support in Budgie 11.) Ikey hopes “to provide a refined version of the experience you know and love, but with fluid, accelerated animations, a beautiful user interface, and full integration of Raven to be a first class component”. This will include replacing current GNOME apps with Qt apps. Ikey told me that the switch to Qt would bring high-quality animations and less lag. You can read more details on the Budgie roadmap.
There was an interesting reaction to Ikey’s announcements regarding Budgie 11. A Github user by the name of ZanderBrown decided to create a fork of Budgie 10. (I tried to contact ZanderBrown for a comment but received no reply.) According to a note on the forked project, ZanderBrown did this to “retain Gtk3 & Vala”. On the Late Nite Linux podcast, Ikey wondered why anyone would try to keep old and broken code. He suggested that the new project could be called Kludgie. At least one person commented that this seemed like a premature move because Budgie 10 was still under development at the time.
David Mohammed is the lead developer of Ubuntu Budgie, the only distro besides Solus that uses Budgie as the main desktop environment. David said that he and his team were happy with Ikey’s decision to move to Qt. (Ubuntu Budgie has been recently made an official flavor.) David said that “With much of Ubuntu’s efforts directed currently to the QT based Unity 8 and convergence, Ubuntu Budgie will greatly benefit from these investments – timely QT releases, fixes etc.”
David did say that they would continue to ship the GNOME applications currently in Ubuntu Budgie. He also said that the Ubiquity installer would have to be patched to support the change from GTK to Qt. He said that they would probably receive help from the Kubuntu and Lubuntu teams. (Lubuntu is switching from LXDE to LXqt.)
While I think that the move from GTK to Qt is a great idea, I have a couple concerns. First, will there be a smooth transition for current users when Budgie 11 is released? In other words, will you be able to upgrade to Budgie 11 from the package manager like a normal update or will it require a complete reinstall?
Second, what will happen to Solus’ support for MATE, which is GTK based? MATE was introduced to be a lightweight alternative to Budgie. Will the Solus team be able to maintain both a Qt-based DE and a GTK-based DE? I like to run both, so I’d hate to see MATE leave Solus.
The one thing I will be looking forward to is a snappier desktop. Budgie 10 is great, but I can still feel a tiny bit of lag. (This is why I mainly use XFCE.)
Overall, I wish Ikey and his team good luck on their new endeavor.
What do you think of the future of Budgie? Please let us know in the comments below.
If you enjoyed this article, please share it on social media.