Bem, não sei se posso considerar isso como um projeto, afinal fiz para mim mesmo, assim como esse site, contudo é aquilo com que eu mais tenho passado meu tempo.
- Obs: Alguns detalhes eu não irei comentar, pois já existem informações na internet.
- Obs2: Irei comentar apenas programas com configurações presentes nos meus dotfiles.
O que são dotfiles?
- São arquivos cujo nome começam com um ponto final.
- Os programas guardam configurações especificas do usuário neles.
Os dotfiles são basicamente isto que foi respondido acima, e por serem arquivos de configurações que é uma pratica bem comum de salvar esses arquivos e mantê-los dentro de um sistema de controle de versões como o Git, para rastrear mudanças e sincronizar as configurações entre outras maquinas, por isso facilmente você encontra repositórios no Github e etc chamados de dotfiles. Usuários de Linux e MacOS são os mais mais comuns de se encontrar salvando tais arquivos na nuvem.
Em meu caso, acontece por ser mais comum ainda, pois quase todos os programas cujo faço uso são configurados em arquivos texto e por isso faço questão de salvar aqueles cujo modifiquei em um repositório no Gitlab/GitHub.
Setup:
Distribuição Linux:
Como sabem sou usuário de Linux, mais especificamente sou, na data deste post, usuário da Distribuição Funtoo Linux (Uma Variante da Distribuição Gentoo Linux, criada pelo mesmo criador do Gentoo).
Já usei várias outras distribuições no passado e algumas pela maquina virtual somente para ver como eram. As que cheguei a instalar e usar por um bom tempo em minha maquina principal foram:
O que se destaca de diferente da maioria é que o Funtoo, assim como Gentoo, é uma Distribuição Source-based, o que significa que todos os programas são compilados durante sua instalação. Isso somado com o excelente gerenciador de pacotes chamado “Portage”, permite você otimizar e customizar ainda mais a sua instalação de Linux, mas trazendo como custo um grande tempo para compilar programas, por exemplo um navegador pode demorar de 1-4h de compilação (ou mais) dependendo do seu processador.
Interface:
E como sabem, as distribuições Linux todas possuem mais de um Ambiente de desktop, as que cheguei a usar na minha maquina principal foram:
- Unity (Atualmente descontinuado)
- Gnome
- KDE
- XFCE
- Budgie
Mas de resto já testei todas :D
Contudo atualmente eu não uso nenhum desses ambientes de desktops, mas sim um Gerenciador de Janelas.
Obs: Na verdade um Ambiente de desktop vem um gerenciador de janelas atrelado, o caso é que nesse não há.
Sendo mais especificamente uso BSPWM, que é um gerenciador de janelas “Tiling”, muitos usuários de Linux podem nunca terem ouvido falar nele, mas com certeza já ouviram falar do i3wm que é atualmente o mais famoso “TWM”.
Diferente do i3wm, o bspwm não vem com uma barra de status própria, logo eu tenho usado uma chamada Polybar e gosto muito dela, mas existem outras barras como o Lemonbar, Dzen2, entre outros que podem ser utilizadas. Mas lembrando que nenhuma dessas já vem prontas, é necessário configurá-las para o seu próprio gosto.
Não irei comentar aqui todas diferenças do BSPWM em relação ao i3wm.
Editor:
O editor de textos que uso atualmente é o NeoVIM, que é basicamente um fork do Vim original criado com o objetivo de facilitar a colaboração no desenvolvimento e de reescrever o código antigo/ineficiente do Vim original.
Já usei outros editores como o Atom e o VisualStudio Code, contudo tenho admirado o Vim/NeoVIM como ele é rápido, simples, e poderoso. E em minha opinião não vejo sentido em usar uma IDE, como Eclipse, se eu não usar nada que um editor não faça.
Digo isso porque é comum durante a faculdade, de alunos começarem a querer usar uma IDE, quando não enxergam que um Editor de textos como o Vim e o VSCode são o suficientes. Alguns ainda acham que o VSCode é uma IDE!
Não estou falando mal do Eclipse, ou de qualquer IDE, mas acho que os programadores novatos devem aprender a diferença de um Editor de textos extensível, e uma IDE. Um caso que eu possivelmente estaria usando uma IDE (Isso até descobrir uma forma de usar o Vim no lugar hahaha) é para programar para android, já que ele é capaz até de rodar o android virtualmente com a sua aplicação.
Claro que o Vim puro é muito contra-produtivo, mas assim como todo editor famoso/moderno, ele é extensível, o que permite que “Mágicas” ocorram. Acredito até que com a criação/utilização de diversos frameworks podem ter ajudado a desmembrar o que seria uma IDE, pois bastaria usar o seu Editor favorito com uma extensão que converse com esse framework que seria responsável por compilar o seu código e etc.
Um exemplo é o desse blog, que me bastou usar o Neovim + Jekyll (framework) para eu criar/editar esse blog, e ter uma prévia rodando no localhost, isso desconsiderando plugins de autocomplete para css/html e preview de cores RGB/HEX.
Atualmente uso o NVim para:
- Java
- ShellScript
- Markdown
- Latex
- CSS
- HTML
- Arquivos de configuração / texto
Demais programas:
Pequenos comentários sobre outros programas que uso, uma lista mais completa está no README do repositório.
- Browser: Tenho usado o Qutebrowser que é um navegador inspirado pelo Vim, possuindo modos e atalhos como o editor, mas o que eu mais gosto dele também é a facilidade para customizar sua aparência, comparado com outros navegadores. O contra é que ele ainda não tem suporte a extensões como o firefox/chrome. Mas a vantagem é que você pode navegar na web literalmente sem mouse e dificuldade.
- Gerenciador de arquivos: Tenho usado o Ranger que é um gerenciador de arquivos inspirado pelo Vim, que roda dentro do terminal. Ele tem suporte a preview de imagens, videos, textos e etc por meio de outros programas adicionais.
- Player de música: Uso o ncmpcpp que é uma interface de terminal para o servidor MPD.
- Shell: Uso o Zsh por ter um ótimo autocomplete nativo, faço uso em conjunto do oh-my-zsh um framework para facilitar sua customização.
Sessão de fotos:
- Polybar na parte superior e inferior.
- Neovim na esquerda.
- Qutebrowser na direita.
- Terminal com jekyll rodando abaixo.
- Ncmpcpp na esquerda.
- Ranger na direita superior.
- Sxiv na direita inferior, no modo Thumbnail.
- CAVA na parte inferior. (Amo ouvir musica com essas barrinhas kkk)
Rice:
É comum esse tipo de customização visual que eu fiz ser chamado de “Rice” pelos internautas, e existe um famoso subreddit chamado Unixporn, lá você pode encontrar outros post com customizações, sendo comum a divulgação dos dotfiles.
- Obs final: Esse post pode vir a ser alterado com o tempo!