Some time ago I wrote a blog post about osc in Gentoo. As I already stated there, we’ve got some pretty cool technologies in openSUSE and I would like to promote them everywhere. And as I’m also partially Gentoo user and I have many Gentoo friends, I’m trying to make some of the coolest openSUSE technologies available on Gentoo. One of the cool things we’ve got is libYUI.
What is libYUI?
As name suggests, libYUI is a library. It is yet another graphical toolkit you can write your application in. Why is it cool and not lame? Because it is actually abstraction over already existing toolkits. You can write application using libYUI, compile it and run it and depending on what you have installed. During runtime, it will select the best toolkit available. There are currently three different plugins for libYUI. Qt, GTK and ncurses. And depending on what you have installed, application can behave like native Qt application to fit nicely into your KDE environment or behave like GTK application to fit Gnome/Xfce. And it can even look like ncurses application, so you can run it on your server without X! Isn’t it awesome? All this just from one code.
This library was originally created for YaST, openSUSE configuration utility. But this summer, one of our GSoC project was to make it independent of YaST and openSUSE infrastructure. If you are interested in current progress of this GSoC project, you can read blog posts by N.B.Prashanth. He is not only making it openSUSE independent, but he is also fixing documentation and creating examples, so you can start using it much easier!
So now you all know, that libYUI is cool, right? And that it is no longer openSUSE specific technology and you can start using it for any project you like. Here comes my little contribution. From Monday, libYUI is part of Gentoo portage tree as
x11-libs/libyui. Currently only available for
~amd64, but ebuilds are there, you can unmask it on other architectures and you’ll see. If it doesn’t work, file a bug report 😉 I tried it to run SaX3 on Gentoo and it works 😀 So if you are going to write an application that can make a use of both ncurses and graphical interface, check out libYUI, it can make you life easier 😉