Definição de Widget Library
Apesar de controlar todo o subsistema de vÃdeo, o X sozinho oferece recursos extremamente espartanos para o desenvolvimento de programas gráficos. Criar um simples botão ou uma barra de rolagem usando apenas os recursos nativos do X é uma tarefa inglória.
Para facilitar o desenvolvimento de aplicativos gráficos para o X, existem hoje uma grande variedade de bibliotecas com funções gráficas prontas. Ao invés de programar os menus, botões, anti-alising das fontes e outros recursos usados pelo programa, o desenvolvedor pode simplesmente usar os recursos disponÃveis numa destas bibliotecas, conhecidas como Widget Libraries.
Alguns exemplos são o GTK, usado pelo Gnome e pelo Gimp, o QT usado pelo KDE, o Motif, desenvolvido pela OSF, o EWL (Emacs Widget Library) oferecido pelo Emacs, entre vários outros. As Widget Libraries são também conhecidas como Toolkits.
A existência de tantas bibliotecas diferentes oferece uma maior variedade de ferramentas para os programadores, estimula a competição e o desenvolvimento, etc. mas, em compensação, também trás vários inconvenientes para o usuário. Em primeiro lugar, os programas baseados em cada biblioteca possuem um visual (o desenho dos botões, das barras de rolagem etc.) e muitas vezes se comportam de forma diferente. É por isso que o visual do Konqueror é tão diferente do do Netscape por exemplo. Além disso, ao rodar programas baseados em bibliotecas diferentes simultâneamente, o sistema precisará manter ambas na memória, consumindo mais e mais memória RAM. É por isso que um PC com pouca memória fica lento ao carregar aplicativos do Gnome e do KDE simultâneamente: ambos são baseados em bibliotecas diferentes.
O Gnome e o KDE tentam resolver este problema incluindo tantos aplicativos quanto possÃvel em cada pacote, todos com um visual consistente e baseados na mesma biblioteca, de forma de o usuário não precise utilizar programas de fora. O KDE por exemplo não é apenas uma interface gráfica: ele inclui uma suÃte de de escritório (Koffice), editores de texto e de imagem, navegador e gerenciador de arquivos (Konqueror), jogos, terminal, uma ferramenta centralizada de configuração (Kcontrol) e até um ambiente de desenvolvimento, o Kdevelop. Ou seja, é quase um sistema operacional completo.