Skip to content

Latest commit

 

History

History
175 lines (136 loc) · 8.23 KB

File metadata and controls

175 lines (136 loc) · 8.23 KB

Linux com interface gráfica no Galaxy S23 (sem root)

Uma aplicação chamada LX - Linux X11

Guia completo e um script único para rodar um Ubuntu com desktop KDE Plasma dentro do Galaxy S23, usando Termux + proot-distro + Termux-X11 — sem root, com aceleração de GPU e opcionalmente num monitor externo.

Stack escolhida: Termux-X11 (display nativo, melhor desempenho) + Ubuntu (via proot-distro) + KDE Plasma (desktop completo) + Turnip/Mesa (GPU Adreno de verdade, sem root).

Dois modos de uso:

  1. Na tela do celular — funciona direto, sem hardware extra e sem DeX.
  2. Como computador de mesa — hub USB-C com HDMI + USB + carregador, virando um desktop Linux com monitor, teclado e mouse. Nesse caso o Samsung DeX é o caminho recomendado, por dar semântica nativa de mouse e não exigir opções de desenvolvedor: veja monitor externo.

✅ Status: validado em campo. Testado num Galaxy S23 (Snapdragon 8 Gen 2, Adreno 740) com Ubuntu 26.04 + Plasma 6 e aceleração de GPU ativa. O que ainda não foi testado é o uso em monitor externo — a parte de DeX/HDMI segue baseada em documentação. Encontrou um erro? Veja solução de problemas e/ou abra uma issue.


Como funciona (visão geral)

┌─────────────────────────────────────────────────┐
│  Android (Galaxy S23)                             │
│                                                   │
│  ┌─────────────┐        ┌──────────────────────┐ │
│  │  Termux      │        │  App Termux:X11      │ │
│  │  (ambiente)  │        │  (mostra a tela)     │ │
│  │              │        └──────────▲───────────┘ │
│  │  proot-distro│                   │ display :0  │
│  │   └─ Ubuntu  │───────────────────┘             │
│  │       └─ KDE Plasma (startplasma-x11)          │
│  └─────────────┘                                  │
└─────────────────────────────────────────────────┘
  • Termux roda o ambiente base (não é root, é um app normal).
  • proot-distro instala uma distro Linux completa (Ubuntu) dentro do Termux.
  • Termux:X11 é um app separado que funciona como "monitor" — o KDE desenha a tela nele.
  • PulseAudio leva o som do Linux para o Android.

Começando — um comando só

Tudo é feito pelo lx, o script único na raiz do repositório.

pkg install -y git
git clone https://github.com/NicolasArthurDev/linux-android.git
cd linux-android
./lx install     # deixa o comando 'lx' disponível de qualquer pasta
lx               # menu interativo

O ./lx install cria um symlink em $PREFIX/bin. A partir daí você digita apenas lx, de onde estiver — não precisa lembrar onde clonou o repositório.

Por que symlink e não um alias no .zshrc? Um alias só existe em shells interativos do shell onde foi definido: não funciona dentro de scripts, em sh -c, em subshells, nem se você trocar de zsh para bash. O symlink num diretório do PATH funciona em todos esses casos — é o que um gerenciador de pacotes faria. E, por ser symlink e não cópia, um git pull já atualiza o comando. Para remover: lx uninstall (o repositório fica intacto).

Sem argumento nenhum ele abre um menu interativo. Se preferir digitar:

Comando O que faz
./lx setup Instala tudo: Termux, Ubuntu, KDE e GPU. Pula o que já está feito — pode rodar de novo sem medo
./lx start Inicia o desktop (detecta a GPU sozinho)
./lx stop Encerra e libera memória
./lx dev Ambiente de desenvolvimento (zsh, NvChad, tmux, lazygit...)
./lx gpu Ativa a aceleração de GPU
./lx browser Instala um navegador que realmente roda em proot (o do apt é snap)
./lx vscode Instala o VS Code (repo oficial arm64) sem o sandbox do Electron
./lx rice Desktop "rice": bspwm + polybar + rofi + picom, tema Catppuccin Mocha. No DeX use --mod alt
./lx de bspwm Define o ambiente padrão do start (kde · bspwm · xfce)
./lx doctor Diagnostica o que está faltando — rode este quando algo der errado
./lx status Mostra quais etapas já foram concluídas
./lx shell Abre um terminal dentro do Ubuntu
./lx update Atualiza o repositório e os pacotes dos dois ambientes
./lx install Habilita o comando lx global · uninstall remove
./lx log Log da última sessão, com as linhas repetidas colapsadas
./lx version Versão e qual arquivo está sendo executado
./lx help Ajuda completa

⚠️ Antes do setup, leia os pré-requisitos. Há dois APKs e uma opção de desenvolvedor que precisam ser feitos à mão — o ./lx doctor avisa se algum ficou faltando, mas não consegue fazer por você.

Os scripts em scripts/ viraram atalhos que chamam o lx. Continuam funcionando, mas o caminho recomendado é o ./lx.


Ambiente de desenvolvimento

./lx dev              # nos dois: Termux e Ubuntu
./lx dev termux       # só no Termux
./lx dev --no-claude  # sem o Claude Code

Instala em ambos: zsh + Oh My Zsh (tema darkblood), NvChad, tmux, git, btop, bat, fzf, lazygit, fastfetch e Claude Code.

Dois detalhes que o script resolve por você:

  • O Neovim do apt pode ser antigo demais para o NvChad, que exige 0.10+ (o Ubuntu 24.04, por exemplo, traz o 0.9.5) — então ele é instalado do tarball oficial.
  • O Claude Code não roda no Termux nativo (é um binário glibc; o Android usa bionic libc). Ele é instalado dentro do Ubuntu, e o comando claude fica disponível no Termux através de um wrapper que executa lá — transparente.

Documentação

Doc Assunto
pré-requisitos apps e opções do Android — leia antes de tudo
instalação o passo a passo detalhado
uso diário iniciar, parar, arquivos, atalhos
solução de problemas quando algo dá errado
dicas de desempenho deixar mais leve, alternativas
monitor externo hub USB-C, HDMI, DeX — virar um computador
aceleração de GPU Turnip/Adreno, o maior ganho do projeto
dentro do desktop subiu o KDE, e agora? terminal, rede, deixar bonito
rice bspwm + Catppuccin Mocha, tiling e atalhos de teclado

Testes

./tests/run.sh              # toda a suite
./tests/run.sh rice         # só as suites que casam com "rice"

164 verificações que não instalam nada: carregam o lx com o main() removido e substituem os comandos externos por mocks que registram como foram chamados. Cobrem detecção de contexto, layouts do proot-distro, resolução de GPU e locale, quoting do comando enviado ao proot, tolerância a pacote inexistente e os arquivos de configuração gerados pelo rice.


Aviso

Tudo aqui roda sem root e em modo de usuário comum. O desempenho é bom no S23 — especialmente com a GPU ativada — mas o KDE Plasma em proot pode ter pequenos bugs (efeitos visuais, bloqueio de tela). A configuração já desativa o que costuma dar problema. Se quiser algo mais leve e estável, o XFCE é uma ótima alternativa (veja as dicas de desempenho).


Autor

Nicolas Arthur — @NicolasArthurDev

Projeto criado e validado num Galaxy S23. Se este guia te poupou tempo, deixe uma ⭐ no repositório.

Licença: MIT © 2026 Nicolas Arthur.