- O Sxmo é um ambiente minimalista que combina programas simples e scripts de shell em celulares Linux e outros dispositivos móveis para criar uma UI alinhada à filosofia Unix
- Usa uma interface baseada em menus junto com um gerenciador de janelas lado a lado e, sobre configurações como sway, oferece suporte tanto a Wayland quanto ao Xorg legado
- Oferece operação por toque, gestos e botões de hardware, e compensa a usabilidade em telas pequenas com menus de contexto que mudam conforme o app ativo é CLI ou GUI
- Inclui recursos móveis como modem, chamadas, mensagens de texto, leitura de notificações e otimizações para dispositivos a bateria; também permite acessar menus e enviar mensagens via SSH
- Chamadas, mensagens, gestos e botões físicos podem ser ligados a scripts do usuário, ficando mais próximo do uso ao estilo Linux, em que você modifica diretamente, do que de um ecossistema de apps fechado
O ambiente Linux móvel que o Sxmo busca oferecer
- Sxmo é um ambiente minimalista para dispositivos móveis Linux e se apresenta como “minimal, mobile, hackable”
- Celulares ou tablets Android antigos também podem funcionar com alguma configuração, e os exemplos de dispositivos incluem OnePlus 6 e Poco F1
- Informações sobre suporte a dispositivos podem ser consultadas em device profile, e usuários iniciantes podem consultar o getting started guide
Forma de operação e customização
- A UI usa uma interface baseada em menus simples junto com um gerenciador de janelas lado a lado
- Como exemplo, é possível usar sway
- As ferramentas buscam ser interoperáveis e fáceis de substituir
- Há suporte tanto a Wayland quanto ao Xorg legado
- O método de entrada móvel parte do pressuposto de uso em telas pequenas e com botões físicos
- Há suporte a toque e gestos
- É possível controlar menus com botões de hardware
- Os menus de contexto mantidos pela comunidade mudam conforme o aplicativo ativo é CLI ou GUI
- Os recursos de Linux móvel incluem até modem, chamadas, mensagens de texto e notificações
- É possível ler notificações e mensagens de texto
- Inclui otimizações para dispositivos alimentados por bateria e telas pequenas
- O SSH é suportado como forma central de uso, e todos os menus podem ser acessados via SSH
- É possível enviar mensagens de texto via SSH usando editores de texto como vis, emacs e vim
- Para possibilitar hacking, várias ações podem ser ligadas a scripts de shell
- É possível executar scripts personalizados em eventos de chamadas ou mensagens
- Com lisgd, é possível vincular scripts a gestos
- É possível associar scripts a cliques simples, duplos e triplos nos botões físicos do dispositivo
- Logs do modem, lista de contatos e textos de SMS são armazenados como texto simples
- O ecossistema de apps não é fechado, e apps FOSS usados no desktop também podem ser usados no mobile
- Funciona em distribuições Linux otimizadas para mobile, como Alpine Linux e postmarketOS
- É possível usar aplicativos baseados em terminal em um smartphone
1 comentários
Opiniões do Hacker News
Entre as interfaces que testei no PinePhone, sxmo foi de longe a melhor
Não costumo usar muito coisas da família suckless e, embora eu respeite esse tipo de software, sou mais atraído por opções cheias de recursos como Emacs ou KDE. Ainda assim, o sxmo é muito mais responsivo que KDE ou Phosh e, depois que você supera a barreira da descobribilidade, ele é bem funcional e intuitivo. Acho que havia também uma boa folha de dicas feita pelo megi
Mas, como o KDE decidiu refazer seus apps principais em um framework mais amigável a mobile, não sei o quanto ele será viável como plataforma de apps. No momento não há muito no que se aprofundar, e é bem provável que continue assim pelos próximos anos. Pela recomendação, pretendo experimentar o sxmo também
Também testei outros ambientes de desktop, mas acabei ficando no sxmo/swmo; gostei da filosofia de poder compor e controlar os componentes por conta própria, e o fato de poder mexer no telefone via SSH a partir do notebook pesou bastante. Eu já estava acostumado ao Sway e, na época em que comecei, Phosh e KDE tinham problemas bem graves
Dito isso, o sxmo sempre teve bugs sérios. Há muitas condições de corrida que quebram tudo até reiniciar, e o comportamento varia conforme o estado de suspensão e a ação anterior: para desbloquear, às vezes é preciso apertar o botão de energia uma, duas ou três vezes, ou segurar e depois apertar de novo. Mudanças de estado ou modo também levam quase 1 segundo para aparecer na tela, o que acaba sendo surpreendentemente estressante
Quando algum estado de mutex se embaralhava, novos processos tentando controlar o piscar do LED continuavam se acumulando e, no fim, às vezes nem segurar o botão de energia funcionava, sendo necessário remover a bateria
Nas discussões de que Rust é melhor que C, costuma-se dizer que a segurança de memória e um modelo de dados melhor eliminam certas categorias de bugs, mas boa parte do sxmo é implementada em scripts de shell e, do ponto de vista de projeto em larga escala, isso é muito pior que C. Há menos componentes básicos adequados, e essas limitações ficam evidentes
O sistema inteiro parece mais um amontoado de pedaços que fingem não ver a existência uns dos outros; se eles cooperassem entre si, provavelmente o resultado seria muito mais estável. À primeira vista pode parecer bom, mas há partes que não foram implementadas de forma totalmente correta e, às vezes, o próprio design é complexo demais e mal definido
Não acho que tenha mudado muito nos últimos 6 meses, então quero lançar um desafio aos usuários do sxmo. Tentem descobrir como alterar a exibição do relógio na bandeja do sistema e como fazer com que ele atualize no horário exato, em vez de poder atualizar com até 55 segundos de atraso. Nesse processo, vocês passarão por vários sistemas diferentes, como um timer de 55 segundos que define um valor em cache e a barra de status que busca esse valor, e acabarão vasculhando pelo menos uns três lugares no disco. Vocês provavelmente precisarão de uma ferramenta como
ripgrepe, no fim, vão se perguntar se não bastava colocardate +'%H:%M'no comando da barra de status e trocar pordate +'%-I:%M %P'Em termos de recursos, também há coisas que simplesmente funcionariam no Android, mas não funcionam de jeito nenhum, ou coisas que funcionam no Phosh mas não rodam de forma suave. Em compensação, depois que você descobre como fazer algo funcionar, dá para scriptar muito melhor. Tornei meu fluxo de trabalho pessoal mais confortável do que em qualquer outro sistema operacional, mas escrevi muitos scripts para isso
Com o tempo, alguns problemas foram corrigidos e outros surgiram, mas a qualidade real geral continua baixa. Mesmo assim, continuo usando, então talvez eu seja masoquista
Em resumo, não consigo pensar em uma única pessoa a quem eu realmente recomendaria sxmo/swmo. Mas, se houver um perfil para o qual eu recomendaria, provavelmente seria alguém que já usa um gerenciador de janelas em mosaico no desktop e não se importa muito com o telefone em si
Se a página inicial tivesse um vídeo de demonstração de 1 a 2 minutos em vez de uma apresentação de 45 minutos, acho que conseguiria transmitir o conceito com muito mais clareza
Gostei. Tudo é conectado por scripts de shell, então vai depender do gosto de cada um, mas gosto da possibilidade de mexer rapidamente na UI do telefone
Escrevi um script de despertador no próprio PinePhone durante o trajeto para o trabalho, e preciso publicá-lo. Ele acorda do estado de suspensão profunda pouco antes do alarme e toca o alarme
Ainda faltam muitas coisas, como um despertador que configure o despertar pelo RTC, mas, no geral, é um sistema legal e pretendo voltar a usá-lo e hackeá-lo num futuro próximo
Se você vai à FOSDEM e tem interesse em Linux em telefones, vale conferir a programação da sala de desenvolvedores [0] e os estandes relacionados [1]
[0]: https://fosdem.org/2024/schedule/track/foss-on-mobile-device...
[1]: https://fosdem.org/2024/stands/
É difícil concordar com a afirmação de que “o kernel que roda em dispositivos Android foi modificado a tal ponto que a comunidade não consegue mantê-lo”
Android também funciona com o kernel Linux mainline. Se a comunidade já consegue manter o kernel mainline, a série de 210 patches incluída no Android Common Kernel não deveria ser algo impossível de lidar. Descartar todo o valor do Android por causa disso é como queimar a casa para se livrar dos percevejos
Como o Android tem suporte a múltiplas janelas, também parece razoável que alguém implemente um gerenciador de janelas em mosaico para Android
Fico curioso se dá para rodar isso em um servidor Intel/AMD comum e usar via sessão xrdp/nx
Preciso de compatibilidade social e de uma boa câmera. Já usei i3, mas era difícil usar sem teclado físico
pinephone-sway-poc: https://github.com/Dejvino/pinephone-sway-poc#components
O rpm-ostree agora oferece suporte a usar imagens de contêiner OCI como imagens do host, o que torna as atualizações do sistema operacional fáceis e mais resilientes a erros. É possível selecionar outro item no menu de boot para voltar ao estado anterior, ou seja, kernel + overlay de
/etc+ partição raiz + pacotes"Using OSTree Native Containers as Node Base Images" (2023) https://www.opensourcerers.org/2023/06/16/using-ostree-nativ...
Se você quiser mudar o estilo do SXMO sobre o Sway — por exemplo, deixar os itens de menu maiores para facilitar o toque com o dedo, trocar para uma fonte estreita para caber mais texto em uma linha, ou ajustar a aparência — este guia é útil: https://porkyofthepine.org/blog/rice_sxmo_sway.html
Acho que seria muito melhor se existisse um gerenciador de display que realmente funcionasse bem no telefone, e isso pode ajudar a avançar nessa direção
Tudo que vi sobre o SXMO me passa a impressão de ser para hackers barbados que valorizam mais a liberdade à la Stallman do que estética ou usabilidade
É bom não precisar necessariamente rodar apps do Google
Ainda assim, seria realmente útil poder acessar alguns apps necessários, mesmo que eu não goste muito deles, como certos apps essenciais de banco ou de automação residencial
Apesar do nome, o Sxmo pode rodar em Wayland em vez de X, então oferece suporte ao Waydroid
Pessoalmente, não consegui fazer o Waydroid funcionar, e o download grande exigido na configuração inicial dificultou ainda mais. Mesmo assim, não tentei com tanto afinco, e há vídeos online de pessoas que conseguiram
[1]: https://waydro.id/
[2]: https://tilvids.com/w/2b2f3a24-ae23-458e-a0fd-2f24a185a11b
Parece que o PmOS tem duas variantes do SXMO
sxmo-de-dwm: ambiente móvel Simple Mobile baseado no SXMO e executado no dwmsxmo-de-sway: ambiente móvel Simple Mobile baseado no SXMO e executado no swayFico curioso sobre o que há de novo no SXMO
Não acompanho desde 2021, e queria saber se agora existe algum telefone em que ele rode de forma estável
Vi algumas pessoas usando nele, e em threads recentes sobre o PinePhone ele também foi mencionado várias vezes como uma boa alternativa ao Plasma padrão