Não sei se você pretende fazer isso sempre que estiver executando algo no terminal ou se seria apenas na execução de alguns programas específicos, mas creio que seja possível desabilitar a proteção de tela e o gerenciamento de energia com esses dois comandos:
:~$ xset s off; xset -dpms
Para habilitá-los novamente, utilizando as suas configurações, você executaria algo como:
:~$ xset s 300 300; xset dpms 300 300 300
Se quiser que isso aconteça antes e depois de cada comando executado no terminal, você pode definir no seu .bashrc
:
desliga_screensaver() { xset s off; xset -dpms; }
liga_screensaver() { xset s 300 300; xset dpms 300 300 300; }
export -f desliga_screensaver
PS0=$(desliga_screensaver)
PROMPT_COMMAND=liga_screensaver
A variável PS0
foi introduzida no Bash 4.4, se não me engano, e é executada depois da linha do comando ser lida e antes dela ser executada, enquanto a variável PROMPT_COMMAND
é executada após a finalização do comando e antes da exibição do prompt PS1
.
Como só podemos atribuir strings e expansões de saídas de comandos à variável PS0
, eu tive que exportar a função desliga...
e fazer a atribuição como uma substituição de comando. Já a variável PROMPT_COMMAND
, como o nome diz, só aceita receber comandos, daí uma função ser perfeita para ela.
Antes de testar com seu screensaver, seria uma boa ideia entender como as duas variáveis se comportam com o seguinte exemplo:
:~$ echo "Olá, mundo"; sleep 5
Olá, mundo
:~$ PS0="comecei\n"
:~$ PROMPT_COMMAND=date
comecei
sáb dez 19 09:25:47 -03 2020
:~$ echo "Olá, mundo"; sleep 5
comecei
Olá, mundo
sáb dez 19 09:25:56 -03 2020
:~$