Advertisement
Trojan182

Macbook air 2012 ubuntu config

May 26th, 2025
606
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 15.06 KB | Source Code | 0 0
  1. #!/bin/bash
  2.  
  3. # Bash Strict Mode: Sai em caso de erro, trata variáveis não definidas como erro,
  4. # e garante que o status de saída de um pipe seja o do último comando que falhou.
  5. set -euo pipefail
  6. IFS=$'\n\t'
  7.  
  8. # --- Função Auxiliar para Mensagens ---
  9. print_message() {
  10.     echo ""
  11.     echo "================================================================================"
  12.     echo "$1"
  13.     echo "================================================================================"
  14.     echo ""
  15. }
  16.  
  17. # --- Atualização Inicial do Sistema ---
  18. print_message "🔄 Atualizando e fazendo upgrade do sistema..."
  19. sudo apt update
  20. sudo apt upgrade -y
  21.  
  22. # --- Instalar Ferramentas Essenciais e para GNOME ---
  23. print_message "🛠️ Instalando ferramentas essenciais, gnome-tweaks e gnome-shell-extensions..."
  24. sudo apt install -y curl wget git software-properties-common apt-transport-https gnome-tweaks gnome-shell-extensions ca-certificates
  25.  
  26. # --- Instalar Python ---
  27. print_message "🐍 Instalando Python 3, pip e python-is-python3..."
  28. sudo apt install -y python3 python3-pip python-is-python3
  29. # 'pythonpy' não é um pacote padrão. Assumindo que o usuário quis dizer pip para python3.
  30.  
  31. # --- Instalar Node.js e NPM ---
  32. print_message "📦 Instalando Node.js (LTS) e NPM..."
  33. # Usando NodeSource para uma versão recente do Node.js
  34. if ! command -v node > /dev/null; then
  35.     # Baixar e executar o script de configuração do NodeSource para a versão LTS mais recente
  36.     # A URL abaixo busca a versão LTS atual dinamicamente.
  37.     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)
  38.     if [ -z "$NODE_MAJOR_VERSION" ]; then
  39.         echo "Não foi possível determinar a versão LTS do Node.js. Usando 20.x como padrão."
  40.         NODE_MAJOR_VERSION="20.x" # Fallback para uma LTS conhecida se a detecção falhar
  41.     else
  42.         NODE_MAJOR_VERSION="${NODE_MAJOR_VERSION/_/.}" # Converte lts_x para lts.x
  43.     fi
  44.     print_message "Usando Node.js versão: $NODE_MAJOR_VERSION"
  45.     curl -fsSL "https://deb.nodesource.com/setup_${NODE_MAJOR_VERSION}" | sudo -E bash -
  46.     sudo apt install -y nodejs
  47. else
  48.     echo "Node.js já está instalado: $(node -v)"
  49. fi
  50. # NPM geralmente vem com o pacote nodejs do NodeSource
  51.  
  52. # --- Instalar VS Code ---
  53. print_message "💻 Instalando Visual Studio Code..."
  54. if ! command -v code > /dev/null; then
  55.     wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
  56.     sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
  57.     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'
  58.     rm -f packages.microsoft.gpg
  59.     sudo apt update
  60.     sudo apt install -y code
  61. else
  62.     echo "VS Code já está instalado."
  63. fi
  64.  
  65. # --- Instalar Microsoft Edge ---
  66. print_message "🌐 Instalando Microsoft Edge (Estável)..."
  67. if ! command -v microsoft-edge-stable > /dev/null; then
  68.     wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
  69.     sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
  70.     sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" > /etc/apt/sources.list.d/microsoft-edge.list'
  71.     rm microsoft.gpg
  72.     sudo apt update
  73.     sudo apt install -y microsoft-edge-stable
  74. else
  75.     echo "Microsoft Edge já está instalado."
  76. fi
  77.  
  78. # --- Instalar Spotify ---
  79. print_message "🎵 Instalando Spotify..."
  80. if ! command -v spotify > /dev/null; then
  81.     curl -sS https://download.spotify.com/debian/pubkey_7A3A762FAFD4A51F.gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg
  82.     echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list
  83.     sudo apt update
  84.     sudo apt install -y spotify-client
  85. else
  86.     echo "Spotify já está instalado."
  87. fi
  88.  
  89. # --- Aparência macOS (Tema, Ícones, Cursores) ---
  90. print_message "🎨 Configurando aparência do macOS (Tema, Ícones, Cursores)..."
  91.  
  92. # Pré-requisitos para compilar alguns temas (como sassc)
  93. sudo apt install -y libglib2.0-dev-bin libxml2-utils
  94.  
  95. # Criar diretórios se não existirem
  96. mkdir -p ~/.themes
  97. mkdir -p ~/.icons
  98. mkdir -p ~/.local/share/fonts # Para fontes do usuário
  99.  
  100. # 1. Tema GTK WhiteSur
  101. print_message "Instalando WhiteSur GTK Theme..."
  102. if [ ! -d "$HOME/.themes/WhiteSur-dark" ] && [ ! -d "$HOME/.themes/WhiteSur-light" ]; then
  103.     cd /tmp
  104.     git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git --depth=1
  105.     cd WhiteSur-gtk-theme
  106.     # Instalar localmente para o usuário. Adicionar -p para temas do Plank.
  107.     # Use -c Dark ou -c Light para escolher um. -t para cor (e.g. blue, purple, pink, red, orange, yellow, green, grey)
  108.     ./install.sh -d "$HOME/.themes" -N mojave -p -c Dark -t blue --opacity normal --round
  109.     cd ..
  110.     rm -rf WhiteSur-gtk-theme
  111. else
  112.     echo "WhiteSur GTK Theme parece já estar instalado em ~/.themes."
  113. fi
  114.  
  115. # 2. Tema de Ícones WhiteSur
  116. print_message "Instalando WhiteSur Icon Theme..."
  117. if [ ! -d "$HOME/.icons/WhiteSur" ] && [ ! -d "$HOME/.icons/WhiteSur-dark" ]; then
  118.     cd /tmp
  119.     git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git --depth=1
  120.     cd WhiteSur-icon-theme
  121.     ./install.sh -d "$HOME/.icons" -t blue # -a para alternativos
  122.     cd ..
  123.     rm -rf WhiteSur-icon-theme
  124. else
  125.     echo "WhiteSur Icon Theme parece já estar instalado em ~/.icons."
  126. fi
  127.  
  128. # 3. Cursores macOS
  129. print_message "Instalando cursores estilo macOS (McMojave Cursors)..."
  130. if [ ! -d "$HOME/.icons/McMojave-cursors" ] && [ ! -d "/usr/share/icons/McMojave-cursors" ]; then
  131.     cd /tmp
  132.     git clone https://github.com/vinceliuice/McMojave-cursors.git --depth=1
  133.     cd McMojave-cursors
  134.     ./install.sh -d "$HOME/.icons"
  135.     cd ..
  136.     rm -rf McMojave-cursors
  137. else
  138.     echo "McMojave Cursors parecem já estar instalados."
  139. fi
  140.  
  141. # 4. Plank Dock
  142. print_message "⚓ Instalando e configurando Plank Dock..."
  143. sudo apt install -y plank
  144. # Criar entrada de inicialização automática para Plank
  145. mkdir -p ~/.config/autostart
  146. cat <<EOF > ~/.config/autostart/plank.desktop
  147. [Desktop Entry]
  148. Name=Plank
  149. Comment=Stupidly simple macOS-like dock
  150. Exec=plank
  151. Icon=plank
  152. Terminal=false
  153. Type=Application
  154. Categories=Utility;X-GNOME-Utilities;
  155. StartupNotify=true
  156. X-GNOME-Autostart-enabled=true
  157. EOF
  158. # Temas para o Plank foram instalados com o WhiteSur GTK Theme (-p)
  159. # Para configurar o tema do Plank: Ctrl + Botão Direito no dock -> Preferências -> Aparência. Escolha um tema como WhiteSur-GTK.
  160.  
  161. # --- Aplicar Temas usando gsettings (para GNOME) ---
  162. print_message "✨ Tentando aplicar temas e ícones (pode requerer logout/login)..."
  163. # Habilitar extensão User Themes (importante para temas do Shell)
  164. gnome-extensions list-installed | grep -q "[email protected]" && \
  165.     gnome-extensions enable user-theme@gnome-shell-extensions.gno.org || \
  166.     echo "Falha ao habilitar a extensão User Themes. Faça manualmente via GNOME Tweaks ou Extension Manager."
  167.  
  168. sleep 2 # Dar um tempo para as extensões carregarem
  169.  
  170. if command -v gsettings > /dev/null; then
  171.     # Tema GTK (Aplicações)
  172.     gsettings set org.gnome.desktop.interface gtk-theme 'WhiteSur-dark-blue' # Ajuste conforme o nome exato instalado
  173.     # Ícones
  174.     gsettings set org.gnome.desktop.interface icon-theme 'WhiteSur-dark' # Ajuste conforme o nome exato
  175.     # Tema do Cursor
  176.     gsettings set org.gnome.desktop.interface cursor-theme 'McMojave-cursors'
  177.     # Tema do Shell (requer extensão User Themes habilitada e tema do shell instalado)
  178.     # O instalador do WhiteSur geralmente coloca temas do shell com nomes como 'WhiteSur-dark' ou 'WhiteSur-dark-blue'
  179.     gsettings set org.gnome.shell.extensions.user-theme name "WhiteSur-dark-blue" # Ajuste se necessário
  180.  
  181.     # Layout dos botões da janela (estilo macOS: fechar, minimizar, maximizar à esquerda)
  182.     gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:'
  183. else
  184.     echo "gsettings não encontrado. Configure temas manualmente usando GNOME Tweaks."
  185. fi
  186. echo "Use o GNOME Tweaks para refinar a aparência (Fontes, Tema do Shell, Extensões)."
  187.  
  188. # --- Fontes macOS (Lembrete para Etapa Manual) ---
  189. print_message "🖋️ INSTALAÇÃO DE FONTES (ETAPA MANUAL RECOMENDADA)"
  190. echo "Para fontes do macOS como San Francisco (SF Pro, SF Mono), você precisará baixá-las manualmente"
  191. 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."
  192. echo "Após baixar (arquivos .otf ou .ttf), copie-os para ~/.local/share/fonts/"
  193. echo "Exemplo: mkdir -p ~/.local/share/fonts && cp Caminho/Para/Suas/Fontes/SF*.otf ~/.local/share/fonts/"
  194. echo "Depois, atualize o cache de fontes: fc-cache -fv"
  195. echo "Use o GNOME Tweaks para definir as fontes (Interface, Documento, Monospace, Títulos de Janela)."
  196.  
  197. # --- Gestos macOS (libinput-gestures) ---
  198. print_message "🖐️ Configurando gestos do touchpad estilo macOS com libinput-gestures..."
  199. sudo apt install -y libinput-tools xdotool wmctrl
  200. # Adicionar usuário ao grupo input (logout/login ou reinicialização obrigatória)
  201. if ! groups "$USER" | grep -q '\binput\b'; then
  202.     sudo gpasswd -a "$USER" input
  203.     echo "✅ Usuário $USER adicionado ao grupo 'input'. É NECESSÁRIO REINICIAR ou FAZER LOGOUT/LOGIN."
  204. else
  205.     echo "Usuário $USER já pertence ao grupo 'input'."
  206. fi
  207.  
  208.  
  209. # Clonar e instalar libinput-gestures
  210. if ! command -v libinput-gestures-setup > /dev/null; then
  211.     cd /tmp
  212.     git clone https://github.com/bulletmark/libinput-gestures.git --depth=1
  213.     cd libinput-gestures
  214.     sudo make install # ou ./libinput-gestures-setup install
  215.     cd ..
  216.     rm -rf libinput-gestures
  217.     echo "libinput-gestures instalado."
  218. else
  219.     echo "libinput-gestures parece já estar instalado."
  220. fi
  221.  
  222. # Criar um arquivo de configuração de exemplo
  223. mkdir -p ~/.config
  224. cat <<EOF > ~/.config/libinput-gestures.conf
  225. # Arquivo de configuração para libinput-gestures (~/.config/libinput-gestures.conf)
  226. # Mais informações: https://github.com/bulletmark/libinput-gestures
  227.  
  228. # Deslizar com 3 dedos para cima: Visão Geral das Atividades (Activities Overview)
  229. gesture swipe up 3 xdotool key super+s
  230.  
  231. # Deslizar com 3 dedos para baixo: Mostrar área de trabalho (GNOME) ou fechar overview
  232. # Se estiver no overview, Super+S o fecha. Se não, Super+D mostra a área de trabalho.
  233. # Você pode precisar de um script mais complexo para um comportamento exato como o do macOS.
  234. # gesture swipe down 3 xdotool key super+d # Para mostrar a área de trabalho
  235.  
  236. # Deslizar com 4 dedos para esquerda/direita: Mudar de área de trabalho
  237. gesture swipe left 4 xdotool key Control+Alt+Right # GNOME usa Right para ir para a área de trabalho "seguinte" (esquerda no visual)
  238. gesture swipe right 4 xdotool key Control+Alt+Left  # GNOME usa Left para ir para a área de trabalho "anterior" (direita no visual)
  239.  
  240. # Deslizar com 3 dedos para esquerda/direita: Navegar para trás/frente no navegador (e alguns apps)
  241. gesture swipe left 3 xdotool key Alt+Right
  242. gesture swipe right 3 xdotool key Alt+Left
  243.  
  244. # Pinch com 2 dedos para dentro/fora (zoom) - Experimental, depende do app
  245. # gesture pinch in 2 xdotool key Control+plus
  246. # gesture pinch out 2 xdotool key Control+minus
  247.  
  248. # Para iniciar/parar e configurar auto-start:
  249. # libinput-gestures-setup start
  250. # libinput-gestures-setup stop
  251. # libinput-gestures-setup autostart toggle # Alterna auto-start on/off (ou use 'on'/'off')
  252. # libinput-gestures-setup status
  253. EOF
  254. echo "Arquivo de configuração de exemplo para libinput-gestures criado em ~/.config/libinput-gestures.conf"
  255. echo "⚠️ VOCÊ PRECISA personalizar este arquivo e depois executar os comandos abaixo APÓS REINICIAR/RELOGAR:"
  256. echo "   libinput-gestures-setup autostart on"
  257. echo "   libinput-gestures-setup start"
  258.  
  259.  
  260. # --- Otimizações do Sistema para 4GB RAM ---
  261. print_message "⚙️ Otimizando o sistema para 4GB de RAM..."
  262.  
  263. # 1. Ajustar Swappiness
  264. SWAPPINESS_VAL=10
  265. print_message "Ajustando swappiness para $SWAPPINESS_VAL..."
  266. sudo sysctl vm.swappiness=$SWAPPINESS_VAL
  267. # Tornar permanente
  268. if ! grep -q "^vm.swappiness=$SWAPPINESS_VAL" /etc/sysctl.conf; then
  269.     echo "vm.swappiness=$SWAPPINESS_VAL" | sudo tee -a /etc/sysctl.conf
  270. else
  271.     sudo sed -i "s/^vm.swappiness=.*/vm.swappiness=$SWAPPINESS_VAL/" /etc/sysctl.conf
  272. fi
  273.  
  274. # 2. Habilitar zRAM (RAM comprimida, atua como swap rápido)
  275. print_message "Instalando e habilitando zram..."
  276. sudo apt install -y zram-config
  277. # zram-config deve habilitá-lo automaticamente na instalação e no boot.
  278. # Para verificar: swapon -s ou zramctl
  279.  
  280. # --- GNOME Shell Extensions Adicionais (Sugestão) ---
  281. print_message "🧩 Sugestão de Extensões GNOME adicionais:"
  282. echo "Considere instalar 'Extension Manager' para gerenciar extensões facilmente:"
  283. echo "  sudo apt install gnome-shell-extension-manager"
  284. echo "Extensões populares para um look macOS:"
  285. echo "  - 'Dash to Panel' (alternativa ao Plank/Dash to Dock, move o dash para o painel superior)"
  286. echo "  - 'AppIndicator and KStatusNotifierItem Support' (para ícones da bandeja do sistema)"
  287. echo "  - 'Blur my Shell' (para efeitos de desfoque no overview e painel)"
  288. echo "  - 'Caffeine' (para desabilitar o screensaver/lock)"
  289. echo "Instale-as via Extension Manager ou extensions.gnome.org"
  290.  
  291.  
  292. # --- Finalização ---
  293. print_message "🎉 Instalação e configuração inicial concluídas!"
  294. echo ""
  295. echo "************************************ ❗ IMPORTANTE ❗ ************************************"
  296. echo "1. 🔄 REINICIE O COMPUTADOR para que todas as alterações tenham efeito,"
  297. echo "   especialmente a adição ao grupo 'input' e as configurações de tema."
  298. echo "2. 🖋️ FONTES DO MACOS: Lembre-se de baixar e instalar as fontes (SF Pro, SF Mono, etc.)"
  299. echo "   manualmente em '~/.local/share/fonts/' e depois execute 'fc-cache -fv'."
  300. echo "   Ajuste as fontes no GNOME Tweaks."
  301. echo "3. 🖐️ GESTOS: Após reiniciar/relogar, edite '~/.config/libinput-gestures.conf' para"
  302. echo "   personalizar os gestos. Depois execute:"
  303. echo "     libinput-gestures-setup autostart on"
  304. echo "     libinput-gestures-setup start"
  305. echo "4. 🎨 TEMA DO SHELL: Se o tema do GNOME Shell (painel superior, menus) não foi aplicado"
  306. echo "   automaticamente, use o GNOME Tweaks para selecioná-lo (ex: WhiteSur-dark-blue)."
  307. echo "   A extensão 'User Themes' deve estar habilitada."
  308. echo "5. ⚓ PLANK DOCK: Plank foi configurado para iniciar automaticamente. Você pode customizar"
  309. echo "   seus temas e comportamento clicando com Ctrl + Botão Direito no dock -> Preferências."
  310. echo "   Escolha um tema como 'WhiteSur-GTK' ou similar."
  311. echo "6. ⚙️ OTIMIZAÇÕES: As otimizações de swappiness e zRAM foram aplicadas."
  312. echo "7. ✨ REFINAMENTOS: Use o GNOME Tweaks para ajustar fontes, temas, extensões e"
  313. echo "   comportamento das janelas para alcançar o visual desejado."
  314. echo "************************************************************************************"
  315.  
  316. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement