The latest version of GTk+, version 3.2, has been released. While this new release contains many smaller, less invasive changes, it also has experimental support for two very important new features. First, the ability to run Gtk+ applications inside a browser using HTML5. Second, initial support for the Wayland display server.
Gtk+ 3.2 introduces many smaller features which users will benefit from straight away. CSS themeing support has been improved, GtkFileChooser has been overhauled, the GtkFontSelection has been replaced by a new set of GtkFontChooser widgets, and several new widgets have been introduced as well.
The HTML5 support in Gtk+ 3.2 is still experimental. It allows you to run Gtk+ applications inside HTML5-capable browsers – and we’re not just talking a calculator or a notepad application, since GIMP runs just fine in Firefox 4.0 as well, as the video below demonstrates.
The other big new thing – also experimental since, you know, Wayland itself is highly experimental – is support for the Wayland display server. This is all work done to make sure Gtk+ is ready for the future, since all indications point towards a Wayland future (instead of the X.org we know today). Qt is also working on Wayland support, so it would seem the two major open source toolkits are getting ready for the future.
You can download the code, or wait for your distribution to include it in its repository.
Woohoo!
I’ve been waiting for a nice toolkit for HTML so I can create more powerful “weblications”.
Since it’s still experimental I’ll have to wait a bit but I sure hope it goes well. All I need is a nice looking theme and for it to be relatively fast.
Is Nokia working on something similar with Qt?
Qt has experimental Wayland support as well:
http://labs.qt.nokia.com/2011/03/18/multi-process-lighthouse/
Don’t get too carried away – this isn’t a web toolkit. It’s just a form of remote display, an application running on the server but rendering to an HTML canvas. It’s not a magic solution to all your web-design needs.
So what exactly do you mean when you hint that this is a kind of “cheat”? Does it require stuff on the client side? Is it a Xish server badly (performance-, stability-, securitywise) pushed inside HTML5 canvas?
The painting is done over a websocket, it’s not even HTML+AJAX
I don’t know. Does the following count as similar, or not?
http://news.cnet.com/8301-1035_3-20020286-94.html
Hm, I really don’t know what to make out of that. Do they mean I can use my Qt skills to create web apps or that I can use my web skills to make Qt apps?
Anyway, thanks for the link.
Been there, done that… Last year already I saw Calligra Tables running inside firefox using Qt Lighthouse’s http backend. I’m not sure how similar the implementations are, but the effect is the same. A full desktop application that runs on a server and displays in a browser.
It’s been there forever.
Well forever is a very long time but anyway, thanks for the link… oh wait!
These are two really good changes – well done to the Gtk+ devs!
Edited 2011-09-26 21:50 UTC
The browser support could be pretty cool, but I wonder how it’s implemented. If it’s simply drawing into a <canvas> and sending back the mouse/keyboard events, then this isn’t that impressive really. If the GUI is being rendered with actual markup, that would be very impressive indeed. I suspect the truth might lie somewhere between these two possibilities. Anyway, I’d love a little technical insight into what’s happening behind the scenes.
It’s the former – client-side code that communicates with the Gtk+ code running on the server, and renders to an HTML canvas. A nice trick, but you’re right – not all that impressive.
thanks, a great break from all the legal stuff (not saying that the legal stuff isnt important too though)
Me want
I have to wonder if running GTK+ (or any other toolkit) inside a browser is a good idea. It would depend on how it’s been implemented of course, but I worry that we’re just going to end up seeing the return of ActiveX but without the proprietary lock-in. ActiveX was a pain in the ass for many reasons *besides* lock-in, so I’m hoping this is not what we’re seeing. Do the apps run server-side and the browser just renders them, or do they run natively using a local copy of GTK+? The former would be moreuseful than the latter, since I guarantee the only platform to have GTK+ installed by default would be *NIX. While it would be satisfying in a sort of selfish way to see this type of situation bounce back on to Windows, practicality is another matter and I wouldn’t want to have to go installing GTK+ and deploying the bloody thing.
The apps run on the server side, they function like a webserver (you connect via http to a host:port.)
So it’s not like ActiveX at all, because you don’t have anything to install on your browser and no native machine code runs in it.
I suspect this technology is not intended to replace other web technologies (such as ZK) but rather provide another mechanism for running apps remotely, in the same way you might run a unix app now via Xming on Windows.
If you were to expose these apps to the wider web, there would surely be a whole slew of additional security concerns that followed…?
Ugh, your understanding of GTK+ / html5 is way off. GTK does not run inside a browser, rather a GTK+ app using the html5 backend spits out html which is displayed by the browser. The GTK+ app sits server side, opens a socket, and the browser connects to this socket, basically the app becomes a web server.
This could be interesting.
Correct me if I am wrong, this thing will work on Windows and any OS if you have the GTK libs installed, right? I am sure it’s cool, like it’s totally cool…I just…I don’t see it taking off as people like us (programmers, techs etc) are a minority. Still though, don’t let this stop you from achieving your goal! Keep it up!
Edited 2011-09-27 09:05 UTC
lolwhut? The success of GTK depends only on whether techs and programmers like “you” use it. It’s a library.
If you have nothing good to say, I suggest you say nothing at all + you don’t know whether I referred to my self as a programmer or a tech. For your info, I do software development for a living for a local company, nothing major, but I do the job in multiple programming languages.
Now which part of my comment did you find funny? Didn’t I say “correct me if I am wrong” which means I already in advance admit that I am not familiar with the method?
Edited 2011-09-27 11:56 UTC
GTK is a library. Only programmers use it at all. You seem confused on this point.
Among Free Software developers GTK is hugely popular. Saying “I don’t see this taking off” when referring to GTK would be like saying “I don’t see it becoming popular” when referring to e.g. Pepsi. You’re aware that it’s a well-known, entrenched entity, not a new project, right?
While he does seem to be confused over the library aspect of it, he may have a larger point which heretofore hasn’t been addressed: The use case of the html back-end of GTK.
I don’t think its a coincidence that wayland support was just added and they’re being mentioned as features in the same release. One of the biggest complaints I’ve heard about wayland is that it doesn’t have the same networked abilities that X11 does. Now, I haven’t run X apps remotely in a while, but I’m mostly sure that its pretty much the same thing: Local Display of a remote application. Problem solved, order me up one heaping dose of wayland with a side order of broadway!
The use-case of the HTML back end is that it’s a gimmick. There’s not much practical application.
Are you serious? What about LibreOffice run through a browser to let AROS, Haiku, etc. be usable as day to day OSes? What about administering VPSes?
Given the way it works there’s very limited ways to make it work without destroying any resemblance to security. Yes “Your native client app… In your web browser! No code changes required!” sounds good, but you’re not getting anything like that. Users without a local login to the box and permission to start their own gtkhttp webserver aren’t going to be able to use it.
A proxy server could fix that.
That’s pretty much what I’m looking for, though – a way to run Linux GUI applications remotely without needing an X server on the remote system, run over my LAN.
For you it’s probably okay, but for a LAN the X protocol is far more efficient. I’d prefer this for when I don’t wnat to expose X to the internet directly.
I would like to see it as the default windowing toolkit (+gail) for the Mingw port of Firefox.
On one hand we hear some people say that X is old and crappy, that Wayland is the future, etc and on the other hand you have this HTML 5 abuse. If you think X is slow and crappy, that is because you have never tried to run your applications on a web server. X may be old but it is designed to run application over the net. There is a lot of latency, right but the web is an order of magnitude worse. The web is perfect for documents that are accessible, translatable and readable by anybody. That is what it is designed for. What is the point in running your gtk application on the web please? Can lynx run your application? Can Google spiders index your application? No? Then you are probably doing something wrong in my opinion.