What I would like to do is version control the desktop environment config file(s) with git and then simply push/pull changes.
Todos os ambientes de desktop Linux (DEs) que conheço armazenam suas configurações em arquivos, portanto, a escolha de DE não é crítica para isso.
Em geral, isso não é uma ótima idéia, porque muitas configurações padrão vão acabar lá. Assim, os arquivos ficarão poluídos e difíceis de editar / mesclar manualmente, em grande parte invalidando o propósito de usar o controle de versão. Você pode muito bem apenas tar
no diretório de configuração.
O KDE, por exemplo, armazena as configurações em ~/.config
e a configuração é gerenciada por meio de muitos arquivos diferentes, como plasmarc
, plasmashellrc
, kglobalshortcutsrc
(só para citar alguns). À medida que você instala programas, algumas configurações, como as de chromium
e syncthing
, também são armazenadas em ~/.config
, e essas configurações serão atualizadas automaticamente, embora você provavelmente não queira salvá-las. Você poderia usar um .gitignore
, mas isso se tornará oneramente tedioso, já que você terá que adicionar novos arquivos / diretórios a ele, e será difícil dizer o que foi modificado por você e por conta própria.
A abordagem usual para esse tipo de coisa é descobrir qual ferramenta de linha de comando é usada para definir configurações no DE (a maioria delas deve suportar isso). Em seguida, você escreve um script que chama esse comando para definir todas as configurações e o controle de versão desse script. Isso é o que eu faço (com o ambiente de desktop xfce4, embora muitos outros também suportem configuração de linha de comando; eu não sei especificamente sobre o KDE, mas o GNOME tem certeza).