Arch Linux e Pantheon: Combinação Perfeita

Helder Bertoldo
10 min readJul 12, 2018

--

Neste artigo você irá aprender a configurar o Pantheon shell do elementary OS no sistema Arch Linux

Pantheon rodando no Arch Linux

É inegável que o sistema elementaryOS tem crescido em popularidade nos últimos anos. Seguindo uma filosofia que faz lembrar a gigante de Cupertino, que prioriza a qualidade visual e identidade dos seus produtos, o time de desenvolvimento do eOS tem conseguido atrair cada vez mais usuários pro seu sistema.

Pantheon: Menos é mais!

O sistema elementary é construido usando como base o Ubuntu em suas versões LTS (versões de longo tempo de suporte) e tendo o Pantheon como shell. Explicando de forma simplista o shell seria uma interface de usuário para acessar os recursos do sistema operacional.

O Pantheon é o core do sistema elementary OS, desenvolvido em Vala, linguagem padrão das aplicações elementary, é ele quem dá vida à todos os recursos criados pelos desenvolvedores do sistema. Atualmente muitos usuários o consideram como o mais bonito shell disponível para Linux.

Arch Linux: Uma galáxia não tão distante

Qualquer novo usuário de sistemas Linux, já deve ter ouvido inúmeras vezes os nomes do Ubuntu, Linux Mint e Debian, o que poucos sabem é que existem muitas outras famílias de sistemas Linux e que seguem filosofias diferentes das mencionadas. O Arch Linux se torna um dos postulantes à destaque dentre estes outros sistemas.

Enquanto o Ubuntu, sistema base escolhido pelo elementary OS é desenvolvido utilizando o padrão Fixed-Release, o Arch utiliza o padrão Rolling-Release.

Fixed-Release e Rolling-Release: Diferença entre os 2 padrões

A principal diferença consiste em ter versões de numeração fixa pro Fixed-Release, por exemplo, Ubuntu 14.04, Ubuntu 16.10, Ubuntu 18.04, que representam a atual versão do sistema e sendo necessário uma reinstalação ou um upgrade de versão (quando é possível) para receber as novas versões do sistema.

Em contrapartida, o sistema Rolling-Release, segue a filosofia de que seu sistema sempre receberá as atualizações mais recentes, desta forma, sempre ele estará atualizado, não existindo necessidade de reinstalações ou upgrades de versões para receber as novidades.

AUR: Mais do que um repositório

Outro ponto interessante do Arch Linux é possuir o maior e mais famoso repositório do ecossistema Linux, o AUR (Arch User Repository, ou Repositório dos Usuários Arch). Este repositório é mantido e gerenciado pela comunidade e possui a maior quantidade de programas, drivers e arquivos de configuração de sistemas Linux, tendo as instalação simplificadas por scripts pré-programados para realizar o que é necessário na instalação, sem maiores trabalhos por parte dos usuários. Uma mão na roda!

Diante destas facilidades muitos usuários optam pelo sistema Arch, que não tem uma Interface Gráfica padrão, abrindo essa possibilidade de escolha.

Juntando o melhor destes dois mundos, é possível ter o casamento do Arch Linux com o Pantheon Shell e as aplicações do sistema elementary.

Instalando o Pantheon Shell no Arch Linux

O primeiro passo necessário é adicionar o repositório alucryd à sua lista de repositórios do Arch. É o alucryd quem mantém atualizado os arquivos necessários para instalação completa e funcional do core do elementary.

  1. Insira os dados do repositório no final do arquivo /etc/pacman.conf com o seguinte comando:
echo -e "\n[extra-alucryd]\nServer = https://pkgbuild.com/~alucryd/\$repo/\$arch\n" | sudo tee -a /etc/pacman.conf

*O retorno deverá ser este:

[extra-alucryd]
Server = https://pkgbuild.com/~alucryd/$repo/$arch

Este repositório antigamente era chamado de Pantheon, se você já tinha ele configurado na sua máquina, abra o arquivo `/etc/pacman.conf` e o atualize com os dados acima.

[pantheon]
SigLevel = Optional
Server = https://pkgbuild.com/~alucryd/$repo/$arch

2. Atualize a lista de repositórios e os pacotes do seu sistema:

sudo pacman -Syyu

3. Instale um gerenciador de pacotes do AUR, caso ainda não tenha.

Existem muitas opções disponíveis e você pode escolher a melhor por aqui: AUR Helpers

Para os exemplos, será usado o yay, por ele hoje ser um dos mais rápidos e completos.

Yay an AUR Helper
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
yay --sortby popularity --topdown --nodiffmenu --save

O Universo VALA (IMPORTANTE!)

O time elementary constrói suas aplicações, incluindo o Pantheon Shell, utilizando Vala uma nova e moderna linguagem de programação desenvolvida pelo time Gnome, inspirada por Java e C# e que transpila seu código no eficiente C. Tá mas e ai?

Neste processo de instalação você irá compilar os programas do Pantheon Shell utilizando o pacote vala. Por isso, é importante que a versão dele seja a mesma versão utilizada no Ubuntu em que o elementary é construído sobre.

O elementary OS Juno é construído baseado no Ubuntu 18.04 Bionic Beaver.

Para verificar a versão do pacote vala que o Ubuntu está utilizando, clique aqui.

No dia da publicação deste artigo, o Ubuntu 18.04 utilizava a versão 0.40.4–1 do pacote valac (No Arch este pacote se chama apenas vala).

Este pacote esta utilizando uma adaptação, de um famoso sistema de numeração conhecido como SEMVER:

Semantic Versioning 2.0.0

Mas e ai???

Olhando novamente para a versão atual 0.40.4–1 e analisando a versão mais recente disponível pro Arch Linux 0.42.3–2, percebe-se que se você tirar o 0 inicial, tem: 40.4.1 e 42.3.2, a diferença do primeiro número é chamada de Breaking Change, de forma simples, diz que a nova versão tem algumas mudanças que vão “quebrar” funcionalidades antigas. Dessa forma se o desenvolvedor usou em seu programa alguma destes recursos que mudou, seu programa não vai ser compilado utilizando esta nova versão.

E como resolver isso no Arch Linux?

Fácil! O Arch tem um programa chamado Downgrade, que permite escolher qual versão de um pacote você vai querer utilizar. Para instalar:

yay -S downgrade

Agora rode o comando:

downgrade vala

Vai aparecer algo assim:

Versões do pacote vala disponíveis

Escolha a versão local mais recente, que tem o mesmo primeiro número que a versão atual do Ubuntu. Na criação deste tutorial:

40.4.1 (Ubuntu) | 40.9.1 (Arch-Linux)

Será perguntado se deseja marcar este pacote para ser mantido nesta versão, informe que sim.

Mutter: O gerenciador de janelas

Faça esse mesmo processo de downgrade com um pacote que se chama mutter ele é um gerenciador de janelas e precisa estar na mesma versão disponível do repositório Ubuntu (3.28 na data de publicação).

downgrade mutter

No futuro quando o time do elementary atualizar as versões dessas 2 bibliotecas, você use o Downgrade pra atualiza-las no seu sistema. Viram que não é difícil, né?

Está quase lá! Mas antes você pode precisar saber…

Feita a configuração necessária, chegou a hora de realmente instalar o Pantheon no Arch Linux. Antes de ir para a instalação, é importante que saiba o que representa os principais pacotes, por quê durante a instalação algum deles pode ter uma dependência que ainda não foi atualizada, sendo dispensável naquele instante. Caso aconteça e ele não for essêncial pro sistema, você poderá retirar ele da lista e reportar o erro em alucryd suporte, para que haja correção.

  • Cerbere: É um serviço de monitoramento, ele reinicia os componentes principais se eles falharem.
  • Gala: Gerenciador de janela e composição
  • Wingpanel: Painel superior (mantém o lançador, o relógio e os indicadores)
  • Pantheon Applications Menu: É o lançador de aplicativos do sistema
  • Plank: Dock inferior
  • Switchboard: Gerenciador das configurações do sistema, também chamado de Painel de Controle
  • Pantheon Default Sessions: Define as configurações padrões do elementary como ícones, tema, fontes e outras configurações mais internas do sistema
  • Gnome Settings Daemon Elementary: É um gerenciador dos dados de uma sessão do usuário, neste caso, um patch do Gnome Settings Daemon do Ubuntu
  • Pantheon Polkit Agent: É o serviço de confirmação de senhas para autenticação em serviços que exijam permissões
  • Elementary Icon Theme: Pacote de ícones padrão do elementary OS
  • Gtk Theme Elementary: Tema de janelas (GTK) padrão
  • Lightdm: É o gerenciador gráfico de login

Bom agora que já tem noção do que representa os principais componentes do Pantheon Shell, caso tenha problema com alguma das suas dependências adicionais vai ficar mais fácil resolver.

Pacote x Pacote-git: Entenda a diferença

Ao buscar pelos pacotes da instalação, quase todos terão duas versões pacotee pacote-git: Os pacotes sem a extensão -git buscam a última versão considerada estável de um pacote, enquanto os pacotes com final -git são gerados através do último commit na branch master do repositório do pacote, ou seja, a última versão de desenvolvimento.

Em fases pré-lançamento é recomendável usar as versões de desenvolvimento os pacotes-git. Já em fases pós-lançamento, a versão adequada são os pacotes estáveis, pacotes, sem o -git.

Instalando!

Para instalar o core do Pantheon e suas principais aplicações temos 3 opções:

Opção 1: Instalar o grupo completo usando as versões estáveis dos pacotes (Recomendado). Durante a instalação será perguntado sobre qual versão prefere: Escolha sempre as opções padrões, ou seja, as que não terminam com -git.

yay -S pantheon-stable

Opção 2: Instalar o grupo completo usando as versões instáveis dos pacotes

yay -S pantheon-git-meta

Opção 3: Instalar individualmente. Essa opção é útil quando algum dos programas não está compilando corretamente.

Você pode remove-lo da lista e instalá-lo mais tarde. Não deixe de contribuir reportando o problema ao mantenedor dos pacotes no repositório do Arch Linux, através deste link.

yay -S cerbere contractor elementary-icon-theme elementary-wallpapers epiphany file-roller gala geary gnome-settings-daemon-elementary granite gtk-theme-elementary lightdm lightdm-pantheon-greeter networkmanager pantheon-applications-menu pantheon-calculator pantheon-calendar pantheon-camera pantheon-code pantheon-default-settings pantheon-dpms-helper pantheon-files gvfs pantheon-geoclue2-agent pantheon-music pantheon-photos pantheon-polkit-agent pantheon-print pantheon-screenshot pantheon-session pantheon-shortcut-overlay pantheon-terminal pantheon-videos plank sound-theme-elementary-git switchboard switchboard-plug-a11y switchboard-plug-about switchboard-plug-bluetooth switchboard-plug-datetime switchboard-plug-desktop switchboard-plug-display switchboard-plug-elementary-tweaks switchboard-plug-applications switchboard-plug-keyboard switchboard-plug-locale switchboard-plug-mouse-touchpad switchboard-plug-network switchboard-plug-notifications switchboard-plug-parental-controls switchboard-plug-power switchboard-plug-printers switchboard-plug-security-privacy switchboard-plug-sharing switchboard-plug-sound switchboard-plug-user-accounts otf-raleway ttf-dejavu ttf-droid ttf-liberation ttf-opensans wingpanel wingpanel-indicator-bluetooth wingpanel-indicator-datetime wingpanel-indicator-keyboard wingpanel-indicator-network wingpanel-indicator-nightlight wingpanel-indicator-notifications wingpanel-indicator-power wingpanel-indicator-privacy-stable-git wingpanel-indicator-session wingpanel-indicator-sound

Se já tiver algum outro desktop instalado, na finalização da instalação, será informado que alguns dos novos pacotes estão em conflito com versões antigas. Confirme a substituição de todos.

LightDM: Configurando o gerenciador de Login

LightDM

O gerenciador de login após ter sido instalado, necessita de um pequeno ajuste, que é o de adicionar o Greeter (tema) padrão do elementary. Para isso certifique-se de que tenha instalado o lightdm(sem a extenção -git) e o lightdm-pantheon-greeter-git .

  • Verificando os greeters disponíveis
ls -1 /usr/share/xgreeters
Greteers Disponíveis

O greeter do elementary deve aparecer listado como io.elementary.greeter, caso ele não esteja, reinstale o pacote lightdm-pantheon-greeter-git

  • Alterando o tema padrão do Lightdm
  1. Abra o arquivo /etc/lightdm/lightdm.conf
sudo nano /etc/lightdm/lightdm.conf

2. Localize a linha #greeter-session=localizado na sessão [Seat:*] (próximo da linha 108)

Observação: Só irá funcionar se alterar exatamente o greeter-session da sessão Seat!

3. Descomente a linha, removendo o caractere # e atribua o greeter elementary como padrão.

[Seat:*]
...
greeter-session=io.elementary.greeter
...

4. Salve e feche o editor.

Comando ctrl + x e confirme com S ou Y (dependendo da linguagem do seu sistema)

Obs: Você pode editar as configurações do tema, como papel de parede, comportamento da tecla num-lock, entre outros, através do arquivo /etc/lightdm/io.elementary.greeter.conf

IMPORTANTE: Defina o Lightdm como gerenciador de login padrão:

systemctl start lightdm && systemctl enable lightdm

Não esqueça de desabilitar o antigo gerenciador, por exemplo, caso esteja usando Gnome e tenha o GDM ativado:

systemctl disable gdm

Extra: Em busca da harmonia perfeita!

O tema de ícones do elementary certamente é um show a parte, um dos mais bonitos sem dúvidas, porém ele só se aplica aos ícones de programas que acompanham o sistema. Aplicações de terceiros como Firefox, Chrome, Skype, Telegram entre outros permanecem com seus ícones originais, contrastando com o tema. Um desperdício!

Para corrigir este problema foi criado o Urutau-Icons que nada mais é do que um complemento do tema original, deixando os ícones destas aplicações com o mesmo estilo do elementary, o que deixa o sistema com uma maior harmonia.

Urutau Icons

Instalá-lo é bem fácil, basta rodar os comandos abaixo:

yay -S urutau-icons-git
gsettings set org.gnome.desktop.interface icon-theme "urutau-icons"

E foram felizes para sempre!

Se fez todos os passos corretamente, já pode reiniciar seu sistema e desfrutar do casamento entre o Arch e o Pantheon Shell experimentando do melhor destes dois mundos.

Muitas das aplicações desenvolvidas exclusivamente para o elementary OS podem ser encontradas neste link basta ir até seus repositórios e compilá-las para o Arch, algumas já estão disponíveis no próprio AUR.

Você também pode contribuir com o desenvolvimento do projeto e deixando ele melhor para todos. Seja reportando ou corrigindo bugs, desenvolvendo novas funcionalidades, ou até mesmo ajudando nas traduções das aplicações. Veja essas e outras possibilidades por aqui.

Não esqueça de deixar um feedback nos comentários dizendo sua experiência durante a instalação e o que achou deste tutorial.

--

--

Helder Bertoldo
Helder Bertoldo

Written by Helder Bertoldo

Software Engineer in Bridi Tech.

Responses (7)