I'm looking to be able to customise the part of the os which the user interacts with (the application?), for instance the task bar (on windows), start button, desktop etc. as I have no interest in changing how to load files and process applications, but where do I start looking?
Eu sou muito especial sobre minha área de trabalho também. O GNU / Linux tem o potencial de ser muito mais flexível assim do que o Windows ou o OSX devido ao design modular, mas para obter o máximo disso você precisa entender como ele se encaixa.
Além do kernel, há três camadas envolvidas em uma interface gráfica normal do Linux:
-
O servidor Xorg; isso é universal - AFAIK, não há alternativa alguma a isso (Wayland não-em pé, veja a resposta de Thomas Nyman). É chamado de servidor porque é; Aplicativos GUI são clientes do servidor. Xorg (anteriormente X11, e também conhecido como "X Windowing System") remonta ao mesmo tempo que as primeiras GUIs do MS e Apple. 1 Enquanto você pode usá-lo sozinho, o que fornece é muito rudimentar de uma perspectiva do usuário. No entanto, é importante conhecer e entender que é uma entidade distinta, como o motor de um carro. Tudo por conta própria, um motor não é muito útil para a maioria das pessoas, mas é claro, nem é um carro sem motor.
-
O gerenciador de janelas, abreviado como WM. Enquanto o X fornece os recursos básicos para a criação de janelas, o WM acrescenta itens como barras de título, quadros e menus independentes. Alguns gerenciadores de janela são projetados exclusivamente para integração com o número 3 abaixo, no entanto, muitos deles também podem ser usados sozinhos. Como o WM é responsável pelo comportamento e pela aparência da janela, um bom WM autônomo pode fornecer tudo o que você precisa - lembrando que coisas como barras de tarefas são formas especiais de "janela", e alguns WM podem configurá-los e instanciá-los. Além disso, as barras de tarefas e os docks geralmente são aplicativos independentes que podem ser executados em um WM sem precisar do # 3. Eu recomendo totalmente tentar isso em algum momento, mas acho que pode ser um pouco confuso para novos usuários.
-
O ambiente de área de trabalho, abreviadamente DE. DE são construídos em cima de WM e freqüentemente permitem que você escolha qual WM usar, embora inicialmente você deva ficar com o padrão. De muitas maneiras, um DE é na verdade um front-end de GUI para um WM; Os WM geralmente são configurados com arquivos de texto e o DE fornece uma interface de apontar e clicar. Eles geralmente também incluem um conjunto de aplicativos integrados, cuja peça central é um navegador de arquivos. No entanto, esses aplicativos geralmente não precisam do DE (por exemplo, meu aplicativo do terminal fav é o Terminal do XFCE, mas eu não uso o XFCE). Barras de tarefas, como já mencionado, podem ser um exemplo disso também. Portanto, há muito potencial para mixagem e correspondência aqui.
Eu não sou uma autoridade sobre o estado dos principais DEs, então não posso dizer exatamente o quão flexível eles são na configuração do WRT. Tradicionalmente, a flexibilidade é mais uma característica do WM - o DE acaba limitando isso a sua visão particular. No entanto (você foi avisado!) Um WM standalone verdadeiramente dinâmico geralmente envolve muito trabalho com arquivos de texto parecidos com a complexidade do HTML / CSS - não é difícil fazer algo básico, mas obter exatamente o que você quer facilmente leva algum experiência.
Se você não for prejudicial à gravação de alguns CD's, eu gravaria alguns CD's ao vivo usando diferentes DEs - Gnome, KDE, XFCE, etc. - e veja se você consegue descobrir como fazê-los parecer do jeito que você quer que eles olhem em um curto período de tempo. Isso pode não acontecer, mas deve dar uma idéia de qual você prefere trabalhar. Ignore os temas e cores nesse ponto e foque na função.
Atualmente, uso o KDE como meu ambiente principal. Como mencionado, sou muito particular e é muito configurável. Eu não olhei para o GNOME há muito tempo e não sei como ele é comparado, configurabilidade, mas eu acho que esses seriam os dois grandes candidatos à flexibilidade na categoria DE.
A última coisa que deve ser mencionada é o conjunto de widgets , que é uma espécie de camada como 1,2,3 acima (mas não realmente). 2 conjunto de widgets é o que determina a aparência de itens genéricos dentro da moldura da janela (botões, barras de rolagem, etc.), e por isso existem TWO formas distintas e independentes de "tema" em jogo com a aparência da GUI : o tema do conjunto de widgets (dentro do quadro) e o tema do WM (o quadro, a barra de título). O conjunto de widgets mais comum no linux é o GTK, que foi desenvolvido em conjunto com o GNOME, mas também é usado por outros DEs. Uma exceção significativa é o KDE, que usa o Qt, um kit de ferramentas multiplataforma.
1 Sim, isso é mais antigo que o linux. X é usado em todo o mundo "unix-like".
2 "Conjunto de widgets" é um termo muito solto, já que o Qt e o GTK (+ glib) fazem muito mais do que apenas fornecer widgets, mas isso é bom o suficiente por enquanto.