[DICA] Como rodar o xorg/xlibre sem root no Artix, ou outra distro sem systemd

Existem duas maneiras de rodar o xorg sem root no seu sistema.

A primeira opção mais trivial é apenas rodando startx no seu tty, mas como isso é muito simples, não precisa de um tutorial para isso.

A outra maneira é usando um Display Manager, muito mais prático de se usar, e é essa que vou apresentar aqui.

Atualmente só o GDM e o SDDM suportam rodar a sessão sem precisar de root, mas como o GDM é considerávelmente mais pesado e puxa as dependências do Gnome, a única solução viável é o SDDM.

Apenas a partir da versão 0.20 o SDDM suporta rodar sem root, então em distros estáveis como o Devuan você terá que compilar uma versão mais recente.

Já estou assumindo que você instalou o SDDM e habilitou o serviço dele, agora vamos rodá-lo sem root.

Passo 1 - Siga a Wiki do Arch e crie o arquivo /etc/sddm.conf.d/rootless-x11.conf com o seguinte conteúdo:

[General]
DisplayServer=x11-user

Feito isso, aqui que está a charada, em distros normais é só reiniciar e sucesso, mas em algumas distros sem systemd, é preciso fazer mais uma configuração.

Por padrão, o SDDM rootless tenta ‘sequestrar’ o tty1, mas se o tty1 já estiver sendo iniciado pelo init, o SDDM não consegue ‘sequestrar’ com sucesso.

Então o próximo passo é apenas não subir o tty1 no boot, o processo varia de init para init.
Para fazer isso no OpenRC é como root: rc-update del agetty.tty1 default, adapte o comando de acordo com seu init system.

Feito isso, pronto, agora o SDDM terá o tty1 livre para subir sem precisar de root.

Detalhe que às vezes depois que logar no sistema, pode ser necessário apertar ctrl+alt+f7 para ir até o DE, pois pode ser que o SDDM não consiga te levar para o tty7 automaticamente, que geralmente é onde a DE sobe.

E agora para garantir que o Xorg está rodando sem root, no DE rode o comando:

ps -o user= -C Xorg

Caso o comando retornar o nome do seu usuário, é porque funcionou, caso retorne root é porque ainda está rodando como root.

1 curtida

Show! Aqui o comando é ps -o user= -C X porque o executável é /usr/bin/X

Eu uso o startx pra sessão X11, com o arquivo .xinitrc

export DESKTOP_SESSION=plasma
exec dbus-run-session startplasma-x11
exec /usr/bin/pipewire

Para iniciar Waylando, uso dbus-run-session startplasma-wayland

Tudo isso pra não precisar de nenhum gerenciador de login. Acho que complica mais que ajuda.

1 curtida