Como posso manter o computador acordado, dependendo da atividade?

5

Gostaria de poder manter o computador ativo durante determinadas atividades e tarefas mais longas, como baixar arquivos maiores e assistir a vídeos em tela cheia.

Eu gosto de usar cafeína para evitar que o computador adormeça, impedindo que a tela durma. Isso funcionou bem para mim no meu mac, mas isso não funciona no Ubuntu.

Como posso fazer isso?

    
por Wes 15.09.2014 / 18:52

3 respostas

5

Não sei por que a cafeína não mantém seu computador acordado. Eu suspeito que é porque o tempo ocioso no Ubuntu é equivalente a o tempo que não há atividade do usuário detectada via teclado ou mouse .

Como evitar que o computador adormeça

Se você está procurando uma solução para manter seu computador acordado como a cafeína (deve fazer), a solução abaixo deve funcionar; Eu testei em 14.04. Existe dois pequenos scripts que você deve armazenar juntos em uma e na mesma pasta. Você pode alternar ou ativar (alternar) com uma combinação de teclas. Depois de pressioná-lo, ele mostrará o estado atual em uma mensagem:

ou:

Existe basicamente um pequeno script de segundo plano que simula uma pequena ação do usuário (pressionamento de tecla Ctrl ) se o tempo inativo exceder um período de tempo definido, evitando que o computador durma ou anule a tela. O pressionamento de tecla em si não tem sentido e não tem efeito em reproduzir vídeo em tela cheia.

Como usar

  • Você precisará ter xprintidle e xdotool instalado:

    sudo apt-get install xprintidle xdotool
    

    ( inotify-tools deve ser instalado por padrão no Ubuntu , pode não ser o caso de Xu- ou Lubuntu)

  • O script abaixo é para ativar / desativar, copiar em um arquivo vazio, salvá-lo como insomnia.py (manter o nome como está!) e torná-lo executável (!)

#!/usr/bin/env python3
import os
import subprocess

script_dir = os.path.dirname(os.path.abspath(__file__))
try:
    pid = subprocess.check_output(["pgrep", "-f", "caf.py"]).decode("utf-8").strip()
    subprocess.Popen(["kill", pid])
    subprocess.Popen(["notify-send", "Computer doesn't stay awake..."])
except:
    subprocess.Popen(["/bin/bash", "-c", script_dir+"/"+"caf.py"])
    subprocess.Popen(["notify-send", "Computer stays awake..."])
  • O script (principal) abaixo é para manter o computador acordado, copiar o script em um arquivo vazio, salvá-lo como caf.py (mantenha o nome como está!) e torná-lo executável (!)
#!/usr/bin/env python3

import subprocess
import time

seconds = 120 # number of seconds to start preventing blank screen / suspend

while True:
    curr_idle = subprocess.check_output(["xprintidle"]).decode("utf-8").strip()
    if int(curr_idle) > seconds*1000:
        subprocess.call(["xdotool", "key", "Control_L"])
    time.sleep(10)

É importante que você mantenha ambos os scripts na mesma pasta!

  • Agora, adicione um atalho de teclado para ativar e desativar o substituto de cafeína: "Configurações do sistema" > "Teclado" > "Atalhos" > "Atalhos personalizados"

    Adicione o comando:

    /path/to/insomnia.py
    

    Para uma combinação de teclas de sua escolha

É isso aí.

    
por Jacob Vlijm 16.09.2014 / 20:25
0

Você também pode usar as duas soluções de script que, na minha opinião, são mais inteligentes, pois determinam a atividade com base na atividade de rede ou no tamanho da pasta.

Por exemplo, se você quiser manter o computador acordado enquanto um cliente de backup ou de torrent estiver funcionando, use a segunda solução no link por dhiya. Ele verificará o tráfego da rede e o manterá ativo até que o tráfego seja interrompido. Apenas lembre-se de mudar 'wlan0' para 'eth0' no código se você estiver usando ethernet e não lan sem fio.

ATUALIZAÇÃO 17/09/2015: Modifiquei o código do dhiya no link abaixo para manter um sistema ativo com base no tráfego de rede ou na atividade do usuário e para forçar uma suspensão elegante se a sessão da área de trabalho acabar no bloqueio / tela de login sem tráfego de rede. O programa registra tudo em um arquivo de log. Config também foi fornecido para gerenciar o arquivo de log. Eu nomeei o programa "Keep Awake".

LINK : Existe alguma maneira de fazer o Ubuntu não suspender enquanto um download está em andamento?

    
por DanglingPointer 22.08.2015 / 07:03
0

Usando o script realmente útil de Jacob Vlijm como ponto de partida, eu o transformei em um aplicativo completo com opções de configuração, reconhecimento de bateria, etc.

Você pode pegá-lo no GitHub . Nenhuma instalação é necessária. Apenas:

  1. Faça o download do .tar.gz e extraia os arquivos (ou clone a ramificação principal, se você for um usuário do git) para onde quer que o aplicativo seja usado. Não é necessário tê-lo no seu $PATH .
  2. Instale as dependências:

    sudo apt install xdotool xprintidle
    

    Se você estiver usando um laptop, também vai querer acpi .

  3. No diretório que você instalou, execute sleep_inhibit .
  4. Se você quiser que o aplicativo seja iniciado automaticamente toda vez que fizer login, abra o menu do ícone, selecione Preferências e ative-o na janela de preferências.
  5. Se você decidir desinstalá-lo, feche a Inibição de suspensão e execute cleanup.py , certificando-se de responder sim a todas as perguntas. Em seguida, exclua o diretório e todos os rastreamentos desaparecerão.
por Scott Severance 13.05.2016 / 04:20