Recurso

Seus apps Linux também

Os apps do Debian, GTK, Qt e os grandes navegadores abrem como janelas do LordOS, com a mesma moldura e o modo escuro.

Boa notícia: você não precisa deixar seus apps favoritos para trás! Eles falam Wayland, e eu também, então se mudam na hora, usam nossa moldura de janela e seguem o modo claro ou escuro.

Em poucas palavras#

O LordOS tem um desktop próprio, mas por baixo continua sendo Debian. As dezenas de milhares de programas do repositório do Debian estão disponíveis, e os apps gráficos feitos com GTK ou Qt, além de navegadores como Chromium e Firefox, abrem como janelas do LordOS, com a mesma moldura, o mesmo Dock e o mesmo modo claro ou escuro dos apps nativos.

O lançador de apps com os apps Linux instalados ao lado dos apps do LordOS, cada um com seu ícone.
O lançador de apps com os apps Linux instalados ao lado dos apps do LordOS, cada um com seu ícone.

O segredo é uma língua em comum. Os apps Linux falam Wayland, um protocolo para dizer "esta é a minha janela, estes são os meus pixels, me mande o mouse e o teclado". O servidor gráfico do LordOS também fala essa língua. Então um app que não sabe nada do LordOS ainda consegue viver no desktop dele, como um viajante que fala o idioma local e não precisa de guia.

De um clique a uma janela Linux

  1. VocêLançador de appsPassa só o id de um .desktop instalado
    depois id
  2. NossoLançador no lord-serverRelê o Exec, sem shell, sem argumentos extras
    depois posicionado pelo root
  3. KernelSeu próprio escopo de cgroupDo root; usado pelo firewall, por suas restrições e pelo Monitor
    depois execve
  4. ReutilizadoGTK / Qt / navegadorRoda como você; sem sandbox por padrão
    depois socket Wayland
  5. NossoCompositor Wayland do LordOSMostra só as superfícies dele, dentro da moldura do tema

Legenda: VocêNossoKernelReutilizado

Apps Linux se conectam direto ao compositor; ganham a moldura, o Dock, o firewall e as restrições que você definir, mas não o sandbox de apps.

Como instalar#

  • A Loja mostra os apps do Debian por categoria, com busca, e mostra um plano (o que será instalado ou removido) antes de fazer qualquer coisa. Ela também instala os apps .lpk do próprio LordOS e arquivos .deb locais.
  • O motor de pacotes próprio do LordOS lê suas fontes do apt, verifica os índices assinados com código OpenPGP próprio, resolve as dependências e confere cada arquivo baixado contra o SHA-256 do índice assinado. Só então o dpkg, a ferramenta do próprio Debian, desempacota e configura o pacote. O banco de dados do dpkg continua sendo escrito só pelo dpkg, então apt e dpkg seguem funcionando normalmente no Terminal.
  • O Terminal funciona como em qualquer sistema Debian. Cada aba já vem com as variáveis do Wayland definidas, então iniciar um programa GTK ou Qt por ele simplesmente funciona.
A Loja navegando pelos apps do Debian por categoria.
A Loja navegando pelos apps do Debian por categoria.

Como abrir#

Os apps com um arquivo .desktop aparecem no lançador de apps, no menu iniciar do tema Clássico e na Busca, com seus ícones. Clicar num deles passa por uma porta propositalmente estreita no lord-server:

  1. A interface só pode passar o id de um arquivo .desktop já instalado em /usr/share/applications ou ~/.local/share/applications, nunca um comando.
  2. O lord-server relê esse arquivo, confere que é um aplicativo de verdade, visível e que não roda em terminal, e monta o comando a partir da linha Exec seguindo a especificação, sem shell e sem argumentos de quem chamou. O "Abrir com" do Arquivos pode acrescentar exatamente um arquivo, só se o app declarar os tipos de arquivo que trata e o arquivo estiver na sua pasta pessoal ou num disco que você montou.
  3. O app é iniciado no seu próprio cgroup, app-lordos-<id>.scope, criado pelo root, para que o Monitor, o firewall por app e suas restrições saibam a qual app pertence cada processo. Se você restringiu os seus arquivos para o app, é aqui também que ele recebe a própria visão: namespaces próprios, uma pasta pessoal vazia só com as pastas dele, e Landlock.

O JavaScript do LordOS não consegue escrever arquivos .desktop, então a interface não tem como inventar um comando: ela só pode escolher um app que já está instalado.

Como eles ficam e se comportam#

  • A moldura. Os apps que pedem ao compositor para desenhar sua moldura (apps Qt, foot, Chromium com a barra de título do sistema) recebem a moldura do tema. Os apps GTK 3, como o Firefox, a recebem por um segundo protocolo de decoração que o LordOS também fala. Os apps GTK 4 que desenham a própria barra a mantêm, e o LordOS apara a sombra deles.
  • Claro e escuro, ao vivo. O próprio LordOS serve o portal de desktop "Settings" no barramento da sessão, então os apps GTK 4 e libadwaita seguem o modo, a cor de destaque e a ordem dos botões. Os apps GTK 3 seguem pelo keyfile do GSettings, e o LordOS traz um tema GTK combinando. Os dois mudam ao vivo quando você troca de modo.
  • Uma só área de transferência. Um texto copiado num app Linux cola no LordOS e vice-versa; as imagens continuam disponíveis depois que o app de origem fecha e aparecem no histórico da área de transferência (❖V).
  • Nítido em qualquer escala. Cada tela é um wl_output separado, e a escala fracionária deixa GTK 4, Qt 6 e Chromium renderizarem com nitidez de 125 a 175 %.
  • Gestos do touchpad. O driver de touchpad próprio do LordOS repassa os gestos de pinça, deslizar e segurar aos apps Linux, então o zoom com pinça funciona nos navegadores.
  • Jogos e apps de GPU. Com uma GPU, os apps podem entregar buffers de GPU direto ao LordOS (linux-dmabuf), usar tela cheia de verdade, prender o ponteiro e receber o movimento bruto do mouse.
  • As notificações dos apps Linux chegam pelo serviço de notificações padrão, que o lord-server fornece, e podem ser configuradas por app em Ajustes.
  • Senhas: o Secret Service padrão é servido pelo chaveiro do LordOS, então os navegadores podem guardar seus segredos ali sem outro daemon de chaveiro.
Um navegador Linux com a moldura de janela do LordOS, no modo escuro.
Um navegador Linux com a moldura de janela do LordOS, no modo escuro.
Um editor GTK 3 e uma calculadora GTK 4 seguindo o modo escuro e a cor de destaque.
Um editor GTK 3 e uma calculadora GTK 4 seguindo o modo escuro e a cor de destaque.

Quais protocolos Wayland existem#

wl_compositor, wl_subcompositor, wl_shm, wl_output (um por tela), xdg_wm_base com popups, wl_seat (ponteiro, teclado, toque), wl_data_device_manager (área de transferência), zxdg_decoration_manager_v1, o protocolo de decoração no servidor do KDE, zxdg_output_manager_v1, wp_fractional_scale_v1, wp_viewporter, zwp_linux_dmabuf_v1, wp_presentation, zwp_relative_pointer_manager_v1, zwp_pointer_constraints_v1, zwp_pointer_gestures_v1 e wp_cursor_shape_manager_v1.

Ausente de propósito: qualquer protocolo que permita a um app capturar a tela ou as janelas de outros apps.

Um editor Qt 6 aberto pelo Terminal, com a moldura do tema.
Um editor Qt 6 aberto pelo Terminal, com a moldura do tema.

As perguntas do leitor cético#

Os apps Linux ficam em sandbox? Não por padrão. Isso é importante: eles rodam como o seu usuário, como em qualquer sistema Debian, e podem ler sua pasta pessoal. O que o LordOS acrescenta é um cgroup por app, a atribuição no Monitor, o firewall por app aplicado pelo kernel (permitir, negar, só LAN, sem conexões de entrada, regras por domínio ou endereço) e restrições que você pode definir por app: sem câmera, sem USB e sem sockets Bluetooth (no kernel), sem microfone (o guarda do PipeWire do LordOS mais os nós de captura da placa de som), sem notificações e "sem acesso aos seus arquivos", aplicada a partir da próxima abertura. Elas não cobrem a área de transferência, o Bluetooth através do BlueZ no barramento do sistema nem programas iniciados fora do lançador de apps. Só os apps .lpk do próprio LordOS recebem o sandbox completo.

Um app Linux consegue ver outras janelas ou gravar a tela? Não pelo LordOS. O compositor só entrega a um app as superfícies dele mesmo e não oferece nenhum protocolo de captura de tela, não há servidor X nem portal de captura de tela, e um app restrito também tem o dispositivo de framebuffer negado, então janelas protegidas como a de Senhas também ficam privadas para eles.

E os apps que só falam X11? Ainda não rodam: o Xwayland não faz parte do LordOS 0.8.0 Beta. Ele está planejado antes da 1.0, com os apps X11 ganhando a mesma identidade por app, o mesmo firewall e as mesmas restrições. Os apps GTK e Qt atuais falam Wayland, e o jogo SDL testado também.

E o Flatpak? O LordOS não o usa nem o integra, e ele não foi testado.

Por que os pacotes vêm por HTTP? O motor de pacotes do LordOS não tem TLS próprio, então as fontes https:// são baixadas por http://. A segurança vem das assinaturas e dos hashes: todo índice precisa ter uma assinatura válida de uma chave confiável, não pode estar expirado nem ser mais antigo que o já guardado, e cada arquivo é conferido contra seu SHA-256 antes de ser usado. Alguém na rede consegue ver quais pacotes você baixa, mas não consegue alterá-los.

Limites honestos#

  • Ainda sem Xwayland (planejado antes da 1.0), então nada de apps só X11.
  • Ainda não: arrastar e soltar entre apps, a seleção primária do clique do meio, os métodos de entrada do LordOS (coreano, japonês, chinês) dentro dos apps Linux e os pedidos de ativação de apps.
  • Ícones só em SVG: o LordOS ainda não desenha SVG. Ele usa os ícones PNG que o Debian publica para a maioria dos apps, ou a inicial.
  • Apps de terminal com arquivo .desktop não aparecem no lançador de apps; inicie-os pelo Terminal.
  • Os apps GTK 3 mantêm o próprio destaque azul; a leitura do esquema de cores pelo portal no Qt 6 não foi testada.

Leia o código

O código por trás deste recurso, no GitHub.

·