Ok... You want some clarity?

Being a programmer this sort of question always has conditionals.

  1. Are there any DE's or (more generally) DE backends that support building (scripting) or rather modding the UI in HTML and it's associated web languages?

  2. If not what are the existing languages in use, how modifiable are they, and would it be possible to build an interpreter to bridge between a HTML written UI layout and a given language. (from what I understand the current standard appears to be XML so this latter option should be somewhat feesable)

  3. Putting all of the above aside how difficult would it be to do something like this from 'scratch.' Mint's login manager already has the ability to take HTML files for making custom login screens so it is possible to sandwich a Web-Engine on top of the OS and have it talk between the UI and OS components.

That being said @goldilocks mentioned that HTML is really ristrictive in comparison XML. I beg to differ and to that end I built a web page in less than 3 days that mirrors the core UI elements that most DE's use in the way I'd like have them laid out. (non functional of course but it's a start.) :) http://azarel-howard.me/html-desktop/ there are some warts it not being fully polished but the concept is there. (don't forget to mouse over some elements) :)

Original Question

Hi I've been searching for the past couple of months for a Linux DE that's built on HTML. I found this as I was starting this question http://blogs.gnome.org/alexl/2010/11/23/gtk3-vs-html5/ and it's great but that's GTK via browser.

What I want is to able to build my own DE as such using HTML. I'm currently using Cinnamon in Linux Mint and I can theme it via CSS but I'd like to be able to make my own DE with custom toolbars and such.

Note: I'm not talking about a ground up DE just being able to build the user facing UI (the application switcher [alt+tab],the app menu, toolbars, etc.)

I'd still use a standard window compositor and file manager etc. and it'd still all be linked in with the GTK theming engine but more customizable. :)

EDIT: For Posterity. Let it be known that Deepin 2014 introduced a desktop UI built using HTML, CSS, and JS. It's not exactly stable (plenty of bugs prevent recommendation for use as a daily driver) but the point is that it's possible. And... this forum had the nearsightedness to close my question as unclear. Well I think it's pretty clear now what I was asking and that it (contrary to the responses below) is totally possible.

closed as unclear what you're asking by slm, jasonwryan, manatwork, Flup, rahmu Mar 19 '14 at 13:29

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    ...what is your question here? You state you want to "build [your] own DE", but that's not a question. – Chris Down Mar 19 '14 at 3:15
  • :/ Why's it so complicated for me to get this concept across? :/ – azariah Mar 19 '14 at 3:16
  • Using Cinnamon as a model I'm talking about being able to edit and fully customize things like the 'menu' (known to most end-users as the 'start menu') in HTML and by extension the panel ('taskbar') also to do what I want how I want it. Say I want the battery indicator time and notification in the top right corner but my active apps as a popout from the right, and my apps menu and 'quick launch' icons in the bottom right. can make that in html. – azariah Mar 19 '14 at 3:22
  • 1
    Because GTK is yet another language, it uses CSS for themeing why wouldn't you use HTML for 'building' at least some of the UI? – azariah Mar 19 '14 at 3:22
  • @terdon both point 1 and 2 are valid. Is there something out there that does this? And if not is it possible, could I do something crazy and start a project to build this capability? – azariah Mar 19 '14 at 3:24

One option here is glade:

Glade is a RAD tool to enable quick & easy development of user interfaces for the GTK+ toolkit and the GNOME desktop environment.

The user interfaces designed in Glade are saved as XML, and by using the GtkBuilder GTK+ object these can be loaded by applications dynamically as needed.

By using GtkBuilder, Glade XML files can be used in numerous programming languages including C, C++, C#, Vala, Java, Perl, Python,and others.

This focuses on the use of a WYSIWYG style tool, but I am pretty sure there is documentation for writing the XML directly, as this is a common thing to do -- no doubt some ubiquitous GNOME apps were done (in part) this way.

However -- and I think this is what some of the objectionable comments to your post are trying to get at, although they do not formulate it clearly -- neither XML or HTML are turing complete and hence, cannot possibly be used in place of programming languages. They are markup languages, which can, at least in the case of XML, be used to describe static data structures -- arrays, trees, graphs, etc. -- as well as documents or interface surfaces.

While abstract data types are essential to programming, ADT's alone are not sufficient. XML/HTML code can never amount to a program because there is no possibility of things like flow control. They are simply static descriptions. To be fair, HTML/CSS can stretch the definition of "static", but in the end even a very simple web application still requires the use of a turing complete programming language either on the client (javascript) or the server.

The point of things like glade is to simplify the description of static pieces of a GUI interface. Note that those descriptions must still then be incorporated into actual C, python, etc. source code to be useful.

An inversion of this, which is perhaps closer to what you are asking for, is to incorporate references to executable artifacts (things written in a programming language) within the mark-up:

I'm talking about being able to edit and fully customize things like the 'menu' (known to most end-users as the 'start menu') in HTML and by extension the panel ('taskbar') also to do what I want how I want it.

For example, you could describe the taskbar in HTML, include buttons and other widgets, and reference actions within that. In this case, the DE or window manager is analogous to the server in a web application.

DE's tend to be less flexible in this regard than window managers. You may be interested in openbox, which is an XML configurable window manager which can be used on its own or within DE's like GNOME.

  • You have at least understood the gist of my question which means I'm at least partly sane. :) eh XML :/ took me awhile to figure out that it was XML that was responsible for theming window borders in Cinnamon. :/ ugly language. – azariah Mar 19 '14 at 12:45
  • Yeah I know ultimately it will all get linked back by Dom/js into the rest of the DE which will in turn link into the OS. But there's no reason why you couldn't use html as such. Almost all the stuff you see in a taskbar is static with the exception of the running programs area. The rest are buttons with hover and active animation stuff and that's it. The menu is harder granted. Ah well at least Glade is a step in the right direction. – azariah Mar 19 '14 at 12:50
  • The WYSIWYG is neat don't often see that for open source languages :) – azariah Mar 19 '14 at 12:53
  • I agree, HTML could be used here. However, there's a good reason to prefer XML, and that is that XML is much, much more flexible. HTML is very narrowly defined, and you'd have to do a clumsy mapping of elements to widgets. I'm not sure how many people really want to play with <div> functionality in constructing a taskbar...the openness of XML allows for more fine grained control in a context where you do not need to be constrained by the DOM. – goldilocks Mar 19 '14 at 12:56
  • It's easier than you'd think getting things mapped out :D I've already got some html and css going doing just that. And the container for the task bar is all of 2-4 lines of HTML and about 8 of css :) getting icons and labels to sit 'just so' within it was harder but not by much. I can have a static 'ui' viewable in browser by tomorrow evening my time (GMT+10) :) fun part is choosing what to put in for demo purposes :D – azariah Mar 19 '14 at 13:17

While I doubt very seriously you'll find anything that is written in pure HTML (I can't imagine how that would even work), there is Jolidrive. You will need a browser to use it, of course.

If you want the desktop to be the browser, you might want to look into compiling and building yourself ChromiumOS. I think there are some sites that offer built-for-you packages, but I wouldn't know how current they would be nor whether they would be sanctioned... I do know they're coming along with Wayland support as you can read here.

As for the rest, they all use some kind of markup-language, but I don't think it's HTML. Certainly I encourage you to take this one step further and realize your goal of developing a fully HTML compatible desktop environment - I'd be happy to beta-test.

Then again, according to this Wikipedia page, QML is:

a JavaScript-based, declarative language for designing user interface–centric applications.

QML is the Qt framework's markup-language for user-interfaces. I don't know what Cinnamon is built on, though I've a pretty strong hunch it's GTK since it started with Linux Mint after Gnome 3 hit scene and was supposed to be the new Gnome 2.

Still, Qt is pretty nice. Since 5.2 they've been pretty much fully mobile/desktop agnostic, I think.

  • Not so much be the browser so much as being designed and laid out using Web languages :) the key here is direct end user customisation. I'm getting tired of being dictated as to how my desktop should be laid out. And I'm seriously starting to detest the bickering going on between the DE camps as to who's best. :) I like cinnamon cause its really easy to customise colour wise. But not much else :/ – azariah Mar 19 '14 at 13:00
  • Maybe have a look at Qt and Qt creator. I linked to it above. – mikeserv Mar 19 '14 at 13:09

Not the answer you're looking for? Browse other questions tagged or ask your own question.