- Confirme que o app Termux:X11 está aberto antes do KDE terminar de iniciar.
- O primeiro carregamento do Plasma leva 1–2 min. Aguarde.
- Verifique se o pacote
termux-x11-nightlye o APK Termux:X11 são da mesma época. Se você atualizou um, atualize o outro. - Reinicie do zero:
lx stop lx start
- Se o
lx startinsistir em falhar, tente o método alternativo:Ele inicia o servidor X11 e o KDE juntos vialx stop lx start --alt
-xstartup, que alguns aparelhos acham mais estável. - Tela preta mesmo com o KDE rodando — é um problema de desenho do
Termux:X11, não do KDE. Use a flag oficial de contorno:
lx stop lx start --extra "-legacy-drawing"
Alguns aparelhos invertem a ordem dos canais de cor:
lx stop
lx start --extra "-force-bgra"- O servidor X11 não subiu. Confira se o
termux-x11 :0está rodando:pgrep -f termux-x11
- Garanta que dentro do Ubuntu o
DISPLAYestá como:0(olx startjá faz isso).
- É o compositor do KDE tentando usar GPU que não existe em proot.
- O
lx setupjá desativa o compositor. Se voltou a ativar, rode dentro do Ubuntu:proot-distro login ubuntu kwriteconfig5 --file kwinrc --group Compositing --key Enabled false exit
No Ubuntu 24.04 o comando é
kwriteconfig5(Plasma 5). Se a imagem do proot-distro for Ubuntu 25.x ou mais nova, o Plasma é 6 e o comando virakwriteconfig6. Cheque comkwriteconfig6 --helpse o 5 não existir. - Confirme que
LIBGL_ALWAYS_SOFTWARE=1está ativo — uselx start --gpu software.
Acontece no Ubuntu 26.04 ou mais novo, que traz o Plasma 6.
O Plasma 6 tirou a sessão X11 do pacote plasma-workspace — ele passou a
instalar só o startplasma-wayland. O binário que o lx start precisa
(startplasma-x11) mudou para um pacote separado:
lx shell
apt install -y plasma-session-x11 kwin-x11
exitOu simplesmente rode lx setup de novo — ele detecta e resolve sozinho.
Por que X11 e não Wayland? O Termux:X11 é um servidor X. Uma sessão Wayland não tem como desenhar nele.
O proot-distro sanitiza o ambiente, então a sessão nascia sem LANG. Programas
de terminal que desenham caixas e barras (btop, htop, fastfetch) recusam a
iniciar sem um locale UTF-8.
Corrigido — o lx start e o lx shell agora definem o locale. Basta atualizar:
cd ~/linux-android && git pull
lx stop && lx startContorno imediato, sem atualizar: btop --force-utf
Mesma causa: a variável SHELL chegava vazia na sessão, e o Konsole a usa para
saber qual shell abrir. Ele acertava sozinho no fim (caía no zsh), mas avisava a
cada aba nova.
Também corrigido pelo git pull acima — o lx start passou a exportar SHELL.
O componente de mídia do Plasma (kpipewire) procura o PipeWire, que não existe
em proot, e re-tenta para sempre — milhares de linhas idênticas.
Resolvido: a saída da sessão vai para um log, e esse ruído é filtrado antes de chegar lá. Basta atualizar:
cd ~/linux-android && git pull
lx stop && lx startNada é perdido — o áudio usa PulseAudio, não PipeWire. O que deixa de funcionar é só o widget de controle de mídia do Plasma, que já não funcionava.
Para ver o log da sessão:
lx log # resumo: linhas mais repetidas + o que é singular
lx start --verbose # ou acompanhe no terminal, sem log- O PulseAudio precisa estar rodando no Termux (o
lx startinicia). - Dentro do Ubuntu, teste:
PULSE_SERVER=127.0.0.1 pactl info
- Se falhar, reinicie o áudio no Termux:
pulseaudio --kill pulseaudio --start --exit-idle-time=-1 \ --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1"
Esta é a causa nº1 de instabilidade, e não gera mensagem de erro nenhuma: o Phantom Process Killer do Android 12+ limita a ~32 processos filhos por app e mata o excesso. O KDE passa disso com folga.
Solução: Opções de desenvolvedor → "Desativar restrições de processos filhos" → reiniciar o celular. Passo a passo em pré-requisitos.
Se o desktop cai sempre por volta do mesmo ponto (ex.: ao abrir o navegador), é quase certo que seja isso.
- Desative a otimização de bateria (veja pré-requisitos).
- O
lx startjá ativa o wake-lock automaticamente. Ele vem do pacotetermux-tools, que já é parte do Termux — não precisa do Termux:API. - Confira também a restrição de processos filhos, acima.
Funciona, mas o KDE reclama. Se quiser rodar como usuário comum, crie um dentro do Ubuntu:
lx shell
# (dentro do Ubuntu)
useradd -m -s /bin/bash linux
echo "linux:linux" | chpasswd
usermod -aG sudo linux
passwd linux # troque a senha
exitDepois é preciso ajustar o lx para logar como esse usuário: no cmd_start,
troque proot-distro login "$DISTRO" --shared-tmp por
proot-distro login "$DISTRO" --shared-tmp --user linux.
Nota: o
lxnão tem opção pronta para isso ainda. Rodar como root funciona e é o padrão do projeto — só gera avisos.
No Ubuntu, firefox, chromium e chromium-browser são todos pacotes de
transição para snap — e snap não roda em proot. A instalação termina sem erro
e o navegador simplesmente não abre.
Use:
lx browser # Firefox do repositório .deb oficial da Mozilla
lx browser falkon # Falkon (Qt/KDE), bem mais leve
firefox-esrnão existe no Ubuntu — é pacote do Debian. Se algum guia mandar instalar, vai falhar.
Detalhes em dicas de desempenho.
proot-distro remove ubuntu
lx setupNão achou seu problema? Abra uma issue no repositório descrevendo o erro e o que aparece no Termux.