Rice é o apelido da comunidade Linux para customização visual pesada do desktop. A ideia aqui é trocar o KDE por um tiling window manager dirigido pelo teclado, muito mais leve e com um visual minimalista.
lx rice # instala e configura tudo
lx stop
lx start --de bspwm # inicia nesse ambiente
lx start --de kde # volta para o KDE quando quiserOs dois convivem — nada é desinstalado.
lx de bspwm # define o padrão
lx start # agora sobe o bspwm sozinho
lx de # mostra qual está ativo e o que já está instaladoA flag continua valendo para uma vez só, sem mexer no padrão:
lx start --de kde.
A precedência é: --de > $LX_DE > padrão salvo > kde.
É a primeira pergunta de quem vem do ricing moderno, e a resposta é estrutural:
O Hyprland é Wayland puro. O Termux:X11 é um servidor X. São protocolos diferentes; um não desenha no outro.
Em tese o wlroots (base do Hyprland) tem um backend X11 que permitiria rodar aninhado, mas ele precisa ser compilado explicitamente — e nenhum pacote de distribuição faz isso. Compilar o wlroots dentro de um proot em ARM é um projeto por si só, com chance alta de não valer o esforço.
O mesmo vale para o Waybar, que também é Wayland-only. Por isso a barra aqui é a Polybar.
Dá para chegar muito perto sem ele. O que caracteriza aqueles rices são três coisas, e todas existem no X11:
| Efeito | Como |
|---|---|
| Cantos arredondados | picom → corner-radius = 12 |
| Margens largas (gaps) | bspwm → window_gap 14 |
| Transparência | picom → inactive-opacity |
O que ficou de fora foi o blur — de propósito. É o efeito mais caro de todos e o único que realmente derruba o desempenho em proot. Os outros três são baratos e respondem por quase toda a estética.
| Componente | Papel |
|---|---|
| bspwm | tiling por árvore binária; tudo controlável por bspc |
| sxhkd | atalhos de teclado (arquivo separado) |
| polybar | barra de status |
| rofi | launcher de aplicativos |
| picom | compositor: cantos, sombras, transparência |
| kitty | terminal acelerado por GPU — faz sentido com a Adreno ativa |
| dunst | notificações |
| JetBrainsMono Nerd Font | fonte com os glifos de ícone da polybar |
Tudo em Catppuccin Mocha.
A
fonts-jetbrains-monodo apt não serve: é a fonte original, sem os glifos de ícone. Olx ricebaixa a versão patched do projeto nerd-fonts.
O DeX intercepta a tecla Super no nível do sistema — ela abre a gaveta de
apps e nunca chega ao Termux:X11. Os atalhos do DeX (Win+B navegador, Win+E
e-mail, Win+L bloquear...) são hard-coded: não há como desativá-los nem
remapeá-los.
Então, se você usa monitor externo via DeX:
lx rice --mod alt
lx stop && lx startA escolha fica guardada — um lx rice futuro mantém o alt.
| Opção | Quando usar |
|---|---|
--mod super |
padrão; só na tela do celular, fora do DeX |
--mod alt |
DeX — recomendado |
--mod ctrl-alt |
se o alt conflitar com algum programa |
Por que o
altfunciona: o DeX só reserva o Super e oAlt+Tab. Como osxhkdcaptura as teclas no servidor X, ele tem precedência sobre os programas de dentro da sessão — umalt + dvai para o bspwm, não para a barra de endereços do navegador.
Substitua super pelo modificador que você escolheu.
| Atalho | Ação |
|---|---|
super + Enter |
terminal (kitty) |
super + d |
launcher (rofi) |
super + b |
navegador |
super + shift + q |
fechar janela |
super + 1..5 |
trocar de área de trabalho |
super + shift + 1..5 |
mover a janela para outra área |
super + h/j/k/l |
mover o foco |
super + shift + h/j/k/l |
mover a janela |
super + control + h/j/k/l |
redimensionar |
super + f |
tela cheia |
super + space |
alternar flutuante |
super + m |
alternar layout (monocle) |
super + shift + r |
recarregar o bspwm |
super + shift + e |
encerrar a sessão |
⚠️ Sem teclado físico o bspwm é pouco usável. Ele é feito para ser dirigido pelo teclado — não há menu iniciar nem botão de fechar. Faz muito mais sentido no monitor externo com teclado e mouse. Na tela do celular, o KDE continua sendo a escolha prática.
Tudo em ~/.config dentro do Ubuntu (lx shell):
| Arquivo | Para quê |
|---|---|
bspwm/bspwmrc |
gaps, bordas, cores, regras de janela, o que abre no login |
sxhkd/sxhkdrc |
atalhos de teclado |
polybar/config.ini |
módulos e aparência da barra |
picom/picom.conf |
cantos, sombras, transparência |
rofi/config.rasi |
aparência do launcher |
kitty/kitty.conf |
fonte, cores e opacidade do terminal |
dunst/dunstrc |
notificações |
Depois de editar o bspwmrc ou o sxhkdrc: super + shift + r.
O padrão é uma cor sólida (#1e1e2e). Para usar uma imagem:
feh --bg-fill ~/wallpaper.pngE troque a linha do xsetroot no bspwmrc por esse comando, para valer sempre.
Provavelmente está funcionando. Um tiling WM sem janelas abertas mostra só uma cor sólida — não existe papel de parede, ícone de área de trabalho nem menu iniciar. Visualmente é idêntico a uma falha.
Como confirmar, no Termux:
pgrep -a bspwm # se aparecer, está rodandoPor isso o bspwmrc agora abre um terminal automaticamente na primeira
janela: assim fica óbvio que a sessão subiu.
Este é o ponto mais importante do bspwm no celular: não existe a tecla super
no teclado virtual do Android, então nenhum atalho funciona.
A barra tem dois botões clicáveis para isso:
| Botão | Ação |
|---|---|
☰ |
abre o launcher (rofi) |
❯ |
abre um terminal |
Fora deles, sem teclado você não consegue abrir nada. Para uso na tela do celular, o KDE continua sendo o prático.
Provável causa: sincronização vertical forçada. O padrão do projeto já vem corrigido — se você está atualizado, não deve mais acontecer.
O lx start exportava vblank_mode=3 ("sempre sincronizar com o vblank"),
escolha herdada de desktop comum. Mas aqui:
- o Termux:X11 é um servidor X aninhado — não existe vblank de hardware para sincronizar;
- num monitor via DeX o painel do aparelho é 120 Hz e a saída externa é 60 Hz, então o desenho tentava se acertar com um relógio que não é o da tela final;
- a cadência real quem faz é o SurfaceFlinger do Android, depois de nós.
O sintoma era travar por instantes e piscar rosa.
A evidência que fechou o diagnóstico: com --gpu software não havia piscar
nenhum — e o llvmpipe simplesmente não faz vsync.
lx start # vsync desligado (padrão)
lx start --vsync on # liga, se quiser compararSe ainda piscar, o próximo suspeito é o compositor:
lx stop && lx start --no-picomE o -force-bgra continua valendo para o caso específico de cores trocadas
(azul aparecendo como vermelho), que é problema diferente de piscar:
lx start --extra "-force-bgra"Tela preta com tudo rodando — era o caso mais comum, e a causa é o compositor com o backend glx.
O picom redireciona todas as janelas para buffers fora da tela e as recompõe.
Com glx sob o Termux:X11 a apresentação congela: bspwm, polybar e terminal
todos sobem, e a tela fica preta. É um problema conhecido do picom
(yshui/picom#1395), não específico
do Android.
O padrão agora é backend = "xrender", que não tem esse problema e também faz
cantos arredondados — não se perde nada no visual.
Para confirmar que o culpado é o compositor:
lx stop
lx start --no-picom # se a tela aparecer, era eleJanelas piscando ou com rastro — mesma coisa: xrender, ou desligue o picom.
Vale também testar vsync = true.
A barra não aparece — veja lx log, que agora inclui o passo a passo do
bspwmrc. Quase sempre é fonte faltando; confira com
fc-list | grep -i "JetBrainsMono Nerd".
Atualizei o lx mas nada mudou — os arquivos de configuração são escritos
pelo lx rice, não pelo git pull. Depois de atualizar, rode lx rice de
novo para regerá-los. O lx start avisa quando detecta configs antigos.
Ícones como quadradinhos — a Nerd Font não instalou. Rode lx rice de novo.
"o bspwm não foi instalado" — rode lx rice de novo. Ao final ele agora
lista exatamente quais binários faltaram e o que instalar. Se algum insistir:
lx shell
apt install -y <pacote>Quero voltar ao KDE — lx start --de kde. Nada foi removido.
linux-android — por Nicolas Arthur.