Uma opção aqui é 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.
Isso se concentra no uso de uma ferramenta de estilo WYSIWYG, mas tenho certeza de que há documentação para escrever o XML diretamente, já que isso é algo comum - sem dúvida alguns aplicativos GNOME onipresentes foram feitos (em parte) desta maneira.
No entanto - e acho que é isso que alguns dos comentários censuráveis do seu post estão tentando atingir, embora eles não o formem claramente - nem XML nem HTML são turing complete e, portanto, possivelmente não pode ser usado no lugar das linguagens de programação. Elas são linguagens de marcação , que podem, pelo menos no caso de XML, ser usadas para descrever estruturas de dados estáticas - < hr="http://en.wikipedia.org/wiki/Abstract_data_structure"> arrays, árvores, gráficos, etc. - bem como documentos ou interfaces superfícies .
Embora os tipos de dados abstratos sejam essenciais para a programação, os ADTs por si só não são suficientes. O código XML / HTML nunca pode corresponder a um programa porque não há possibilidade de coisas como controle de fluxo . Eles são simplesmente descrições estáticas. Para ser justo, HTML / CSS pode esticar a definição de "estático", mas no final até mesmo uma aplicação web muito simples ainda requer o uso de uma linguagem de programação completa tanto no cliente (javascript) quanto no servidor.
O ponto de coisas como glade é simplificar a descrição de partes estáticas de uma interface GUI. Observe que essas descrições ainda devem ser incorporadas ao código-fonte real C, python etc. para serem úteis.
Uma inversão disso, que talvez seja mais próxima do que você está pedindo, é incorporar referências a artefatos executáveis (coisas escritas em uma linguagem de programação) dentro do 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.
Por exemplo, você poderia descrever a barra de tarefas em HTML, incluir botões e outros widgets e fazer referência a ações dentro dela. Neste caso, o DE ou gerenciador de janelas é análogo ao servidor em um aplicativo da Web.
DE tendem a ser menos flexíveis a esse respeito do que os gerenciadores de janelas. Você pode estar interessado em openbox , que é um gerenciador de janelas configurável em XML que pode ser usado sozinho ou dentro do DE como o GNOME.