Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Bash Strict Mode: Sai em caso de erro, trata variáveis não definidas como erro,
- # e garante que o status de saída de um pipe seja o do último comando que falhou.
- set -euo pipefail
- IFS=$'\n\t'
- # --- Função Auxiliar para Mensagens ---
- print_message() {
- echo ""
- echo "================================================================================"
- echo "$1"
- echo "================================================================================"
- echo ""
- }
- # --- Atualização Inicial do Sistema ---
- print_message "🔄 Atualizando e fazendo upgrade do sistema..."
- sudo apt update
- sudo apt upgrade -y
- # --- Instalar Ferramentas Essenciais e para GNOME ---
- print_message "🛠️ Instalando ferramentas essenciais, gnome-tweaks e gnome-shell-extensions..."
- sudo apt install -y curl wget git software-properties-common apt-transport-https gnome-tweaks gnome-shell-extensions ca-certificates
- # --- Instalar Python ---
- print_message "🐍 Instalando Python 3, pip e python-is-python3..."
- sudo apt install -y python3 python3-pip python-is-python3
- # 'pythonpy' não é um pacote padrão. Assumindo que o usuário quis dizer pip para python3.
- # --- Instalar Node.js e NPM ---
- print_message "📦 Instalando Node.js (LTS) e NPM..."
- # Usando NodeSource para uma versão recente do Node.js
- if ! command -v node > /dev/null; then
- # Baixar e executar o script de configuração do NodeSource para a versão LTS mais recente
- # A URL abaixo busca a versão LTS atual dinamicamente.
- NODE_MAJOR_VERSION=$(curl -sL https://deb.nodesource.com/ | grep 'setup_lts' | sed -E 's/.*setup_(lts_x|[0-9]+).x.*/\1/' | head -n 1)
- if [ -z "$NODE_MAJOR_VERSION" ]; then
- echo "Não foi possível determinar a versão LTS do Node.js. Usando 20.x como padrão."
- NODE_MAJOR_VERSION="20.x" # Fallback para uma LTS conhecida se a detecção falhar
- else
- NODE_MAJOR_VERSION="${NODE_MAJOR_VERSION/_/.}" # Converte lts_x para lts.x
- fi
- print_message "Usando Node.js versão: $NODE_MAJOR_VERSION"
- curl -fsSL "https://deb.nodesource.com/setup_${NODE_MAJOR_VERSION}" | sudo -E bash -
- sudo apt install -y nodejs
- else
- echo "Node.js já está instalado: $(node -v)"
- fi
- # NPM geralmente vem com o pacote nodejs do NodeSource
- # --- Instalar VS Code ---
- print_message "💻 Instalando Visual Studio Code..."
- if ! command -v code > /dev/null; then
- wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
- sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
- sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
- rm -f packages.microsoft.gpg
- sudo apt update
- sudo apt install -y code
- else
- echo "VS Code já está instalado."
- fi
- # --- Instalar Microsoft Edge ---
- print_message "🌐 Instalando Microsoft Edge (Estável)..."
- if ! command -v microsoft-edge-stable > /dev/null; then
- wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
- sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
- sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" > /etc/apt/sources.list.d/microsoft-edge.list'
- rm microsoft.gpg
- sudo apt update
- sudo apt install -y microsoft-edge-stable
- else
- echo "Microsoft Edge já está instalado."
- fi
- # --- Instalar Spotify ---
- print_message "🎵 Instalando Spotify..."
- if ! command -v spotify > /dev/null; then
- curl -sS https://download.spotify.com/debian/pubkey_7A3A762FAFD4A51F.gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg
- echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list
- sudo apt update
- sudo apt install -y spotify-client
- else
- echo "Spotify já está instalado."
- fi
- # --- Aparência macOS (Tema, Ícones, Cursores) ---
- print_message "🎨 Configurando aparência do macOS (Tema, Ícones, Cursores)..."
- # Pré-requisitos para compilar alguns temas (como sassc)
- sudo apt install -y libglib2.0-dev-bin libxml2-utils
- # Criar diretórios se não existirem
- mkdir -p ~/.themes
- mkdir -p ~/.icons
- mkdir -p ~/.local/share/fonts # Para fontes do usuário
- # 1. Tema GTK WhiteSur
- print_message "Instalando WhiteSur GTK Theme..."
- if [ ! -d "$HOME/.themes/WhiteSur-dark" ] && [ ! -d "$HOME/.themes/WhiteSur-light" ]; then
- cd /tmp
- git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git --depth=1
- cd WhiteSur-gtk-theme
- # Instalar localmente para o usuário. Adicionar -p para temas do Plank.
- # Use -c Dark ou -c Light para escolher um. -t para cor (e.g. blue, purple, pink, red, orange, yellow, green, grey)
- ./install.sh -d "$HOME/.themes" -N mojave -p -c Dark -t blue --opacity normal --round
- cd ..
- rm -rf WhiteSur-gtk-theme
- else
- echo "WhiteSur GTK Theme parece já estar instalado em ~/.themes."
- fi
- # 2. Tema de Ícones WhiteSur
- print_message "Instalando WhiteSur Icon Theme..."
- if [ ! -d "$HOME/.icons/WhiteSur" ] && [ ! -d "$HOME/.icons/WhiteSur-dark" ]; then
- cd /tmp
- git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git --depth=1
- cd WhiteSur-icon-theme
- ./install.sh -d "$HOME/.icons" -t blue # -a para alternativos
- cd ..
- rm -rf WhiteSur-icon-theme
- else
- echo "WhiteSur Icon Theme parece já estar instalado em ~/.icons."
- fi
- # 3. Cursores macOS
- print_message "Instalando cursores estilo macOS (McMojave Cursors)..."
- if [ ! -d "$HOME/.icons/McMojave-cursors" ] && [ ! -d "/usr/share/icons/McMojave-cursors" ]; then
- cd /tmp
- git clone https://github.com/vinceliuice/McMojave-cursors.git --depth=1
- cd McMojave-cursors
- ./install.sh -d "$HOME/.icons"
- cd ..
- rm -rf McMojave-cursors
- else
- echo "McMojave Cursors parecem já estar instalados."
- fi
- # 4. Plank Dock
- print_message "⚓ Instalando e configurando Plank Dock..."
- sudo apt install -y plank
- # Criar entrada de inicialização automática para Plank
- mkdir -p ~/.config/autostart
- cat <<EOF > ~/.config/autostart/plank.desktop
- [Desktop Entry]
- Name=Plank
- Comment=Stupidly simple macOS-like dock
- Exec=plank
- Icon=plank
- Terminal=false
- Type=Application
- Categories=Utility;X-GNOME-Utilities;
- StartupNotify=true
- X-GNOME-Autostart-enabled=true
- EOF
- # Temas para o Plank foram instalados com o WhiteSur GTK Theme (-p)
- # Para configurar o tema do Plank: Ctrl + Botão Direito no dock -> Preferências -> Aparência. Escolha um tema como WhiteSur-GTK.
- # --- Aplicar Temas usando gsettings (para GNOME) ---
- print_message "✨ Tentando aplicar temas e ícones (pode requerer logout/login)..."
- # Habilitar extensão User Themes (importante para temas do Shell)
- gnome-extensions enable user-theme@gnome-shell-extensions.gno.org || \
- echo "Falha ao habilitar a extensão User Themes. Faça manualmente via GNOME Tweaks ou Extension Manager."
- sleep 2 # Dar um tempo para as extensões carregarem
- if command -v gsettings > /dev/null; then
- # Tema GTK (Aplicações)
- gsettings set org.gnome.desktop.interface gtk-theme 'WhiteSur-dark-blue' # Ajuste conforme o nome exato instalado
- # Ícones
- gsettings set org.gnome.desktop.interface icon-theme 'WhiteSur-dark' # Ajuste conforme o nome exato
- # Tema do Cursor
- gsettings set org.gnome.desktop.interface cursor-theme 'McMojave-cursors'
- # Tema do Shell (requer extensão User Themes habilitada e tema do shell instalado)
- # O instalador do WhiteSur geralmente coloca temas do shell com nomes como 'WhiteSur-dark' ou 'WhiteSur-dark-blue'
- gsettings set org.gnome.shell.extensions.user-theme name "WhiteSur-dark-blue" # Ajuste se necessário
- # Layout dos botões da janela (estilo macOS: fechar, minimizar, maximizar à esquerda)
- gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:'
- else
- echo "gsettings não encontrado. Configure temas manualmente usando GNOME Tweaks."
- fi
- echo "Use o GNOME Tweaks para refinar a aparência (Fontes, Tema do Shell, Extensões)."
- # --- Fontes macOS (Lembrete para Etapa Manual) ---
- print_message "🖋️ INSTALAÇÃO DE FONTES (ETAPA MANUAL RECOMENDADA)"
- echo "Para fontes do macOS como San Francisco (SF Pro, SF Mono), você precisará baixá-las manualmente"
- echo "devido a restrições de licenciamento. Procure por 'SF Pro' e 'SF Mono' no site da Apple Developer ou em arquivos de fontes da comunidade."
- echo "Após baixar (arquivos .otf ou .ttf), copie-os para ~/.local/share/fonts/"
- echo "Exemplo: mkdir -p ~/.local/share/fonts && cp Caminho/Para/Suas/Fontes/SF*.otf ~/.local/share/fonts/"
- echo "Depois, atualize o cache de fontes: fc-cache -fv"
- echo "Use o GNOME Tweaks para definir as fontes (Interface, Documento, Monospace, Títulos de Janela)."
- # --- Gestos macOS (libinput-gestures) ---
- print_message "🖐️ Configurando gestos do touchpad estilo macOS com libinput-gestures..."
- sudo apt install -y libinput-tools xdotool wmctrl
- # Adicionar usuário ao grupo input (logout/login ou reinicialização obrigatória)
- if ! groups "$USER" | grep -q '\binput\b'; then
- sudo gpasswd -a "$USER" input
- echo "✅ Usuário $USER adicionado ao grupo 'input'. É NECESSÁRIO REINICIAR ou FAZER LOGOUT/LOGIN."
- else
- echo "Usuário $USER já pertence ao grupo 'input'."
- fi
- # Clonar e instalar libinput-gestures
- if ! command -v libinput-gestures-setup > /dev/null; then
- cd /tmp
- git clone https://github.com/bulletmark/libinput-gestures.git --depth=1
- cd libinput-gestures
- sudo make install # ou ./libinput-gestures-setup install
- cd ..
- rm -rf libinput-gestures
- echo "libinput-gestures instalado."
- else
- echo "libinput-gestures parece já estar instalado."
- fi
- # Criar um arquivo de configuração de exemplo
- mkdir -p ~/.config
- cat <<EOF > ~/.config/libinput-gestures.conf
- # Arquivo de configuração para libinput-gestures (~/.config/libinput-gestures.conf)
- # Mais informações: https://github.com/bulletmark/libinput-gestures
- # Deslizar com 3 dedos para cima: Visão Geral das Atividades (Activities Overview)
- gesture swipe up 3 xdotool key super+s
- # Deslizar com 3 dedos para baixo: Mostrar área de trabalho (GNOME) ou fechar overview
- # Se estiver no overview, Super+S o fecha. Se não, Super+D mostra a área de trabalho.
- # Você pode precisar de um script mais complexo para um comportamento exato como o do macOS.
- # gesture swipe down 3 xdotool key super+d # Para mostrar a área de trabalho
- # Deslizar com 4 dedos para esquerda/direita: Mudar de área de trabalho
- gesture swipe left 4 xdotool key Control+Alt+Right # GNOME usa Right para ir para a área de trabalho "seguinte" (esquerda no visual)
- gesture swipe right 4 xdotool key Control+Alt+Left # GNOME usa Left para ir para a área de trabalho "anterior" (direita no visual)
- # Deslizar com 3 dedos para esquerda/direita: Navegar para trás/frente no navegador (e alguns apps)
- gesture swipe left 3 xdotool key Alt+Right
- gesture swipe right 3 xdotool key Alt+Left
- # Pinch com 2 dedos para dentro/fora (zoom) - Experimental, depende do app
- # gesture pinch in 2 xdotool key Control+plus
- # gesture pinch out 2 xdotool key Control+minus
- # Para iniciar/parar e configurar auto-start:
- # libinput-gestures-setup start
- # libinput-gestures-setup stop
- # libinput-gestures-setup autostart toggle # Alterna auto-start on/off (ou use 'on'/'off')
- # libinput-gestures-setup status
- EOF
- echo "Arquivo de configuração de exemplo para libinput-gestures criado em ~/.config/libinput-gestures.conf"
- echo "⚠️ VOCÊ PRECISA personalizar este arquivo e depois executar os comandos abaixo APÓS REINICIAR/RELOGAR:"
- echo " libinput-gestures-setup autostart on"
- echo " libinput-gestures-setup start"
- # --- Otimizações do Sistema para 4GB RAM ---
- print_message "⚙️ Otimizando o sistema para 4GB de RAM..."
- # 1. Ajustar Swappiness
- SWAPPINESS_VAL=10
- print_message "Ajustando swappiness para $SWAPPINESS_VAL..."
- sudo sysctl vm.swappiness=$SWAPPINESS_VAL
- # Tornar permanente
- if ! grep -q "^vm.swappiness=$SWAPPINESS_VAL" /etc/sysctl.conf; then
- echo "vm.swappiness=$SWAPPINESS_VAL" | sudo tee -a /etc/sysctl.conf
- else
- sudo sed -i "s/^vm.swappiness=.*/vm.swappiness=$SWAPPINESS_VAL/" /etc/sysctl.conf
- fi
- # 2. Habilitar zRAM (RAM comprimida, atua como swap rápido)
- print_message "Instalando e habilitando zram..."
- sudo apt install -y zram-config
- # zram-config deve habilitá-lo automaticamente na instalação e no boot.
- # Para verificar: swapon -s ou zramctl
- # --- GNOME Shell Extensions Adicionais (Sugestão) ---
- print_message "🧩 Sugestão de Extensões GNOME adicionais:"
- echo "Considere instalar 'Extension Manager' para gerenciar extensões facilmente:"
- echo " sudo apt install gnome-shell-extension-manager"
- echo "Extensões populares para um look macOS:"
- echo " - 'Dash to Panel' (alternativa ao Plank/Dash to Dock, move o dash para o painel superior)"
- echo " - 'AppIndicator and KStatusNotifierItem Support' (para ícones da bandeja do sistema)"
- echo " - 'Blur my Shell' (para efeitos de desfoque no overview e painel)"
- echo " - 'Caffeine' (para desabilitar o screensaver/lock)"
- echo "Instale-as via Extension Manager ou extensions.gnome.org"
- # --- Finalização ---
- print_message "🎉 Instalação e configuração inicial concluídas!"
- echo ""
- echo "************************************ ❗ IMPORTANTE ❗ ************************************"
- echo "1. 🔄 REINICIE O COMPUTADOR para que todas as alterações tenham efeito,"
- echo " especialmente a adição ao grupo 'input' e as configurações de tema."
- echo "2. 🖋️ FONTES DO MACOS: Lembre-se de baixar e instalar as fontes (SF Pro, SF Mono, etc.)"
- echo " manualmente em '~/.local/share/fonts/' e depois execute 'fc-cache -fv'."
- echo " Ajuste as fontes no GNOME Tweaks."
- echo "3. 🖐️ GESTOS: Após reiniciar/relogar, edite '~/.config/libinput-gestures.conf' para"
- echo " personalizar os gestos. Depois execute:"
- echo " libinput-gestures-setup autostart on"
- echo " libinput-gestures-setup start"
- echo "4. 🎨 TEMA DO SHELL: Se o tema do GNOME Shell (painel superior, menus) não foi aplicado"
- echo " automaticamente, use o GNOME Tweaks para selecioná-lo (ex: WhiteSur-dark-blue)."
- echo " A extensão 'User Themes' deve estar habilitada."
- echo "5. ⚓ PLANK DOCK: Plank foi configurado para iniciar automaticamente. Você pode customizar"
- echo " seus temas e comportamento clicando com Ctrl + Botão Direito no dock -> Preferências."
- echo " Escolha um tema como 'WhiteSur-GTK' ou similar."
- echo "6. ⚙️ OTIMIZAÇÕES: As otimizações de swappiness e zRAM foram aplicadas."
- echo "7. ✨ REFINAMENTOS: Use o GNOME Tweaks para ajustar fontes, temas, extensões e"
- echo " comportamento das janelas para alcançar o visual desejado."
- echo "************************************************************************************"
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement