Blog Linux Avante

Suspendendo automaticamente aplicativos X11 inativos para reduzir o uso da CPU e da bateria com o XSuspender

21 de outubro de 2020

XSuspender

XSuspender é uma ferramenta para suspender aplicativos X11 quando eles estão inativos. Seu objetivo é reduzir o uso da CPU, o que, por sua vez, reduz o uso da bateria e diminui a temperatura da CPU e o ruído do ventilador.

A ferramenta usa SIGSTOP, que evita que o processo obtenha mais tempo de CPU, ou um script de shell personalizado que você pode especificar, para suspender um aplicativo depois que sua janela perder o foco. Quando a janela recupera o foco, ela é reiniciada imediatamente para que você possa continuar de onde parou.

Nem todos os aplicativos são suspensos quando o XSuspender está rodando. Esta ferramenta usa um arquivo de configuração onde você deve especificar quais aplicativos suspender, com o seguinte local: ~/.config/xsuspender.conf Ao instalar o XSuspender, este arquivo está vazio, mas você encontrará um arquivo de configuração de exemplo que vem pré-configurado para funcionar com softwares populares como o navegador Chromium, Firefox, JetBrains, qBittorrent, VirtualBox e muito mais. Este arquivo está localizado em /usr/share/doc/xsuspender/examples/xsuspender.conf e contém explicações para cada opção, próximo ao topo do arquivo, então leia antes de tentar configurar o XSuspender.

Para usar o arquivo de configuração de exemplo XSuspender como sua configuração, copie-o para ~/.config, assim:

Comandos para usar no terminal

cp /usr/share/doc/xsuspender/examples/xsuspender.conf ~/.config/

É importante notar que, por padrão, o arquivo de configuração de exemplo XSuspender vem com only_on_battery = yes, o que significa aplicar a regra apenas quando com energia da bateria. Portanto, você pode querer alterá-lo caso seu laptop esteja conectado a uma fonte de alimentação e você quiser tentar isso.

Agora você está pronto para experimentar o XSuspender. Abra um terminal e execute:

Comandos para usar no terminal

xsuspender

E tente um dos aplicativos pré-configurados no ~/.config/xsuspender.conf, como Chromium, Firefox, etc. Por exemplo, abra um vídeo do YouTube em um desses navegadores da web, clique em reproduzir e desfoque a janela do navegador. O vídeo deve pausar em cerca de 10 segundos. Foque a janela do navegador e o vídeo deve ser reproduzido novamente sem qualquer intervenção sua (além de focar a janela).

Você notará que no arquivo xsuspender.conf, para suspender uma janela, você deve especificar wm_class. Você pode encontrar a classe de uma janela (a janela que deseja suspender) usando este comando em um terminal:

Comandos para usar no terminal

xprop -notype WM_NAME WM_CLASS

Ao executar o comando, o cursor do mouse se transforma em um +. Agora você deve clicar na janela para a qual deseja descobrir a classe wm_class. Assim que a janela for clicada, o wm_class será mostrado no terminal onde você executou o comando, por exemplo:

$ xprop -notype WM_NAME WM_CLASS
WM_NAME = "XSUSPENDER - Chromium"
WM_CLASS = "chromium-browser", "Chromium-browser"

Quer adicioná-lo na inicialização? Instalar o XSuspender adiciona um arquivo chamado xsuspender.desktop aos aplicativos de inicialização (/etc/xdg/autostart/), mas ele é desativado para iniciar automaticamente por padrão. Portanto, para adicionar o XSuspender à inicialização, edite o arquivo /etc/xdg/autostart/xsuspender.desktop e altere Hidden = true para Hidden = false. Você pode fazer isso na linha de comando usando (este é um comando de linha única, então clique três vezes na linha para selecioná-lo):

Comandos para usar no terminal

sudo sed -i 's/Hidden=true/Hidden=false/' /etc/xdg/autostart/xsuspender.desktop

Também é importante notar que nem tudo vai funcionar bem com o XSuspender. Por exemplo, no caso de um programa estar baixando algo e não estiver focado, o download para. Além disso, a reprodução de mídia para aplicativos desfocados irá parar, o que pode ou não ser o que você deseja (embora isso seja evitável - apenas não configure o XSuspender para suspender esse aplicativo). Copiar e colar também não funcionará quando o processo de seleção da fonte for suspenso. E só funciona no X11. Você pode ver todos os problemas/peculiaridades conhecidos nesta seção na página do projeto XSuspender.

Baixando o XSuspender

Baixe XSuspender

O desenvolvedor oferece binários para distribuições Linux baseadas em Debian e Ubuntu (Linux Mint, Pop!_OS, Zorin OS, etc.), bem como instruções para instalar o XSuspender da fonte. Um pacote AUR para Arch Linux/Manjaro também está disponível.

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.