Setup Environment

Setup Environment

October 20, 2024
Technology


Me preparando para o ano de 2025, comecei a atualizar meu setup pessoal. Atualmente utilizo o Windows 11 porém, quero voltar a utilizar alguma distribuição linux como sistema operacional principal.

Meu setup permanece o mesmo desde 2022 e com a migração para o linux, algumas mudanças serão significativas.

Hardware e Sistema Operacional

A máquina que utilizo é um laptop Avell. Abaixo as espeficações técnicas da máquina:

💻
Modelo: Avell A72 HYB Processador: i7-12700H Memória RAM: 16GB 3200GHz Placa de Vídeo: NVIDIA 3070 TI (laptop) Armazenamento: SSD M.2 512GB

Em um futuro não tão distante, pretendo realizar uma atualização no hardware, aumentando a capacidade de armazenamento e memória RAM.

Para sistema operacional, depois de testar algumas distribuições, escolhi o Pop!_OS 22.04 LTS como distribuição principal. A proposta é chegar o mais próximo possível (ou melhor) da praticidade e performance que tenho no setup atual, utilizando o Windows 11.

O maior desafio é fazer com que os drivers sejam compatíveis com o hardware do laptop e de todos, o Pop!_OS foi o que apresentou menos problemas e incompatibilidades.

Personalizações

Realizo algumas personalizações na interface do GNOME afim de ficar mais produtivo, bonito e agradável para uso no dia a dia.

Primeiro, realizo a instalação do GNOME Tweaks para gerenciar e controlar a aparência do GNOME.

shell
1
sudo apt install gnome-tweak-tool

Depois, realizo a instalação de algumas extensões, tais como: User Themes, que permite carregar temas personalizados dentro do GNOME.

É possível realizar as configurações através do aplicativo de extensões, que vem instalado por padrão no Pop!_OS. Também realizo a instalação do Folder Colors, que me permite modificar as cores de pastas e adicionar icones personalizados. O GNOME sushi, que me permite realizar a visualização de um arquivo sem precisar abri-lo, parecido com a opção de preview do MacOS.

shell
1
sudo apt install folder-color gnome-sushi

Tema

Para tema, escolhi o Dracula para GTK. Os arquivos compactados devem ser extraidos para a pasta .themes no diretório home.

shell
1
mkdir ~/.themes
2
chmod u+rw ~/.themes/
3
 
4
unzip ~/Downloads/gtk-master.zip -d ~/.themes/
5
mv ~/.themes/gtk-master ~/.themes/Dracula
6
rm ~/Downloads/gtk-master.zip

Ícones

Para ícone, utilizarei o Reversal icon theme, que pode ser baixado no site do Gnome-look.

Cursores

Para cursores, utilizarei o McMojave cursors, que também pode ser baixado no site do Gnome-look.

Os arquivos de icones e cursores ficarão na pasta .icons, no diretório home.

shell
1
mkdir ~/.icons
2
chmod u+rw ~/.icons/
3
 
4
sudo tar -xJf ~/Downloads/Reversal-black.tar.xz -C ~/.icons/
5
sudo tar -xJf ~/Downloads/McMojave-cursors.tar.xz -C ~/.icons/

A seleção de tema, icones e cursores pode ser realizado através do GNOME Tweaks. É necessário realizar o logout para que as alterações sejam aplicadas em todo o sistema.

Para estilização do terminal, também utilizo o Dracula através do Gogh. E depois, realizo a configuração do Oh My Posh:

shell
1
## Install Oh my Posh
2
sudo wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-linux-amd64 -O /usr/local/bin/oh-my-posh
3
sudo chmod +x /usr/local/bin/oh-my-posh
4
 
5
## Download the themes
6
mkdir ~/.poshthemes
7
wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/themes.zip -O ~/.poshthemes/themes.zip
8
unzip ~/.poshthemes/themes.zip -d ~/.poshthemes
9
chmod u+rw ~/.poshthemes/*.json
10
rm ~/.poshthemes/themes.zip
11
 
12
## On .bashrc file, add
13
eval "$(oh-my-posh --init --shell bash --config ~/.poshthemes/spaceship.omp.json)"

Aplicativos

Timeshift

shell
1
sudo apt install timeshift

Remmina

shell
1
sudo apt-add-repository ppa:remmina-ppa-team/remmina-next
2
sudo apt update
3
sudo apt install remmina remmina-plugin-rdp remmina-plugin-secret

Android Studio

shell
1
# Link to download
2
https://developer.android.com/studio
3
 
4
# https://developer.android.com/studio/install
5
sudo tar -xvzf ~/Downloads/android-studio-2024.2.1.12-linux.tar.gz -C /usr/local/
6
 
7
sudo nano /usr/share/applications/studio.desktop
8
 
9
# Create icon
10
[Desktop Entry]
11
Name=Android Studio
12
Exec=/usr/local/android-studio/bin/studio
13
Terminal=false
14
Type=Application
15
Icon=/usr/local/android-studio/bin/studio.png
16
Categories=Development;IDE;
17
StartupWMClass=jetbrains-android-studio

VSCode

bash
1
 
2
cd ~/Downloads/
3
 
4
sudo apt-get install wget gpg
5
 
6
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
7
 
8
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
9
 
10
echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null
11
 
12
rm -f packages.microsoft.gpg
13
 
14
sudo apt install apt-transport-https
15
 
16
sudo apt update
17
 
18
sudo apt install code

Git

bash
1
git config --global user.name "Seu Nome"
2
 
3
git config --global user.email "seu@email"

Node.js

bash
1
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
2
 
3
# Download and install Node.js (LTS)
4
nvm install 22
5
 
6
node -v
7
 
8
npm -v

.NET Core

bash
1
sudo add-apt-repository ppa:dotnet/backports
2
 
3
sudo apt update
4
 
5
sudo apt install software-properties-common
6
 
7
sudo apt install dotnet-sdk-8.0

Flutter

bash
1
sudo apt-get update -y && sudo apt-get upgrade -y
2
 
3
sudo apt-get install -y curl git unzip xz-utils zip libglu1-mesa
4
 
5
# For Android Apps Development
6
sudo apt-get install libc6:amd64 libstdc++6:amd64 lib32z1 libbz2-1.0:amd64
7
 
8
mkdir ~/development/
9
 
10
tar -xf ~/Downloads/flutter_linux_3.27.1-stable.tar.xz -C ~/development/
11
 
12
export PATH="~/development/flutter/bin:$PATH"
13
 
14
flutter doctor --android-licenses

Docker

bash
1
# Remove dependecias em conflito
2
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
3
	
4
# Adiciona a chave GPG oficial do Docker key
5
sudo apt update
6
 
7
sudo apt install ca-certificates curl
8
 
9
sudo install -m 0755 -d /etc/apt/keyrings
10
 
11
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
12
 
13
sudo chmod a+r /etc/apt/keyrings/docker.asc
14
 
15
# Adiciona repositório na origem do apt
16
echo \
17
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
18
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
19
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
20
 
21
sudo apt update
22
 
23
# Instalação dos pacotes necessários
24
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
25
 
26
# Criação de grupo de acesso
27
sudo groupadd docker
28
 
29
# Inclusão do usuário atual no grupo
30
sudo usermod -aG docker $USER
31
 
32
# Aplica as mudanças no grupo
33
newgrp docker
34
 
35
# O bom e velho hello world para testar :)
36
docker run hello-world

SSH

Para realizar autenticação nos sistemas como GitHub, AWS, etc…

bash
1
# Gera chave privada e publica
2
ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -C "[email protected]"
3
 
4
# Verificar se o agente SSH está ativo e em execução
5
eval "$(ssh-agent -s)"
6
 
7
# Adiciona a chave no agente
8
ssh-add ~/.ssh/nome_chave_privada_aqui

VPN

bash
1
# Criação de diretório para arquivos de conexão
2
mkdir ~/openvpn
3
 
4
# Instalação de dependecias
5
sudo apt install openvpn
6
 
7
# Conexão
8
sudo openvpn --config ~/openvpn/config.ovpn

MySQL Workbench

bash
1
wget https://cdn.mysql.com//Downloads/MySQLGUITools/mysql-workbench-community_8.0.40-1ubuntu24.10_amd64.deb -O ~/Downloads/mysql-workbench-community.deb

OBS Studio

shell
1
sudo add-apt-repository ppa:obsproject/obs-studio
2
sudo apt update
3
sudo apt install obs-studio

Referências