O Elementary OS Loki, apesar de ser uma distribuição Linux robusta, pode apresentar um problema incômodo ao usar drivers proprietários da Nvidia: um bug ao sair do modo de suspensão. Essa falha, que persiste no Elementary OS Loki, tem levado a comunidade de usuários a buscar soluções e entender suas causas.
A solução que apresentamos para contornar esse problema de retomada da Nvidia não é infalível. Mesmo após sua implementação, o problema pode ocorrer. A correção envolve o uso do sistema init systemd no Elementary OS para reiniciar o gerenciador de janelas.
É possível que o gerenciador de janelas Gala não seja reiniciado corretamente. Se o serviço apresentar falhas, pode ser necessário excluir os arquivos e tentar novamente, ou executá-lo manualmente através do iniciador de aplicativos Wingpanel com o seguinte comando:
gala --replace
A utilização desta correção é por sua conta e risco.
Criando o Script
Para configurar um gancho de suspensão no systemd, é preciso criar um script, já que comandos não podem ser inseridos diretamente no arquivo de serviço. Para isso, abra o terminal no Elementary OS e obtenha acesso root com o comando sudo -s
.
No terminal root, utilize o editor de texto nano para criar um novo arquivo:
nano /usr/bin/pantheon-wm-refresh.sh
Este comando criará um arquivo SH no diretório /usr/bin/
. Insira o seguinte código na primeira linha deste arquivo, pois ele define o ambiente de execução do script, sem o qual ele falhará:
#!/bin/bash
Com essa linha inicial, o interpretador poderá ler o arquivo SH. Agora, adicionaremos os demais argumentos. Primeiramente, especificaremos o display padrão para garantir que o gerenciador de janelas seja atualizado na tela correta:
export DISPLAY=:0
Logo após, adicionaremos o comando que forçará o ambiente de desktop Pantheon a reiniciar o gerenciador de janelas ao sair da suspensão. Este comando instruirá o gerenciador de janelas do Elementary OS (Gala) a se substituir:
gala --replace
Com o script completo, salve-o usando Ctrl + O
no nano. Em seguida, atualize as permissões do arquivo para torná-lo executável:
chmod +x /usr/bin/pantheon-wm-refresh.sh
Configurando um Serviço Systemd
O próximo passo é criar um “gancho de sono”, um serviço que o systemd executa quando o sistema é retomado da suspensão. Novamente, utilizaremos o editor nano, e o terminal deve estar com acesso root. Caso contrário, use sudo -s
para obter acesso root e criar um novo arquivo:
nano /etc/systemd/system/[email protected]
Dentro do arquivo “[email protected]”, cole o seguinte:
[Unit] Description=User resume actions After=suspend.target [Service] User=%I Type=simple ExecStart=/usr/bin/pantheon-wm-refresh.sh [Install] WantedBy=suspend.target
Salve o arquivo systemd com Ctrl + O
e utilize o comando systemctl para ativar esse novo serviço no sistema init:
systemctl enable [email protected]
e
systemctl start [email protected]
Com isso, o gerenciador de janelas Pantheon será reiniciado sempre que o computador sair da suspensão, evitando o problema de tela com falhas que ocorre em alguns drivers de GPU proprietários da Nvidia no Elementary OS.
Soluções Adicionais
Atualização de Drivers
Caso a solução acima não resolva o problema, considere atualizar os drivers proprietários da Nvidia para a versão mais recente. O primeiro passo é instalar o software que permite o uso de PPAs:
sudo apt install software-properties-common
Em seguida, adicione o PPA de drivers atualizados:
sudo add-apt-repository ppa:graphics-drivers/ppa
Abra a central de software do Elementary OS, procure por “drivers adicionais”, clique em instalar e execute-o (caso já não esteja instalado). Desmarque a versão atual do driver proprietário da Nvidia e instale a versão mais recente. Isso pode resolver o problema.
Reversão de Drivers
Se atualizar para a versão mais recente não resolver, considere reverter para os drivers Open Source Noveau. Embora menos eficazes que os drivers da Nvidia, eles não apresentarão o problema de retomada.
Substituição do Gerenciador de Janelas
Se você optar por usar os drivers proprietários no Elementary OS, considere substituir o gerenciador de janelas padrão por outra opção, como o Mutter.
Mutter é um gerenciador de janelas leve e com efeitos visuais semelhantes. Instale-o com o comando:
sudo apt install mutter
Em seguida, vá para as configurações do sistema (ou procure por “inicialização”) e adicione o comando: mutter --replace
. Na inicialização, o Gala será automaticamente substituído pelo Mutter. É uma solução alternativa, mas eficaz.