web-dev-qa-db-fra.com

Comment puis-je garder l'ordinateur en veille, en fonction de l'activité?

J'aimerais pouvoir garder l'ordinateur en veille pendant certaines activités et des tâches plus longues, telles que le téléchargement de fichiers plus volumineux et la visualisation de vidéos en plein écran.

J'aime utiliser la caféine pour empêcher l'ordinateur de dormir en empêchant l'affichage de dormir. Cela a bien fonctionné pour moi sur mon mac, mais cela ne fonctionne pas dans Ubuntu.

Comment puis-je faire ceci?

5
Wes

Je ne sais pas pourquoi la caféine ne garde pas votre ordinateur en veille. Je suppose que c'est parce que le temps d'inactivité sur Ubuntu est équivalent à le temps pendant lequel aucune activité utilisateur n'est détectée via le clavier ou la souris.

Comment empêcher l'ordinateur de s'endormir

Si vous cherchez une solution pour garder votre ordinateur éveillé comme le fait la caféine (devrait le faire), la solution ci-dessous devrait fonctionner. Je l'ai testé le 14.04. Il existe deux petits scripts que vous devriez stocker ensemble dans un même dossier. Vous pouvez l'activer ou l'activer avec une combinaison de touches. Une fois que vous appuyez dessus, il affichera l'état actuel dans un message:

enter image description here ou: enter image description here

Il existe essentiellement un petit script en arrière-plan qui simule une action utilisateur mineure (touche Ctrl) si le temps d'inactivité dépasse un laps de temps défini, empêchant ainsi l'ordinateur de s'endormir ou de masquer l'écran. La pression de touche en elle-même n'a pas de sens et n'a aucun effet sur la lecture de vidéos en plein écran.

Comment utiliser

  • Vous devez avoir installé xprintidle et xdotool:

    Sudo apt-get install xprintidle xdotool
    

    (inotify-tools devrait être installé par défaut sur bunt, pourrait ne pas être le cas sur Xu- ou Lubuntu)

  • Le script ci-dessous consiste à activer/désactiver, copiez-le dans un fichier vide, enregistrez-le sous le nom insomnia.py (conservez le nom tel quel!) Et rendez-le exécutable (!)

#!/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..."])
  • Le script (principal) ci-dessous consiste à garder l'ordinateur allumé, à le copier dans un fichier vide, à l'enregistrer sous le nom caf.py (conserver le nom tel quel!) Et à le rendre exécutable (!)
#!/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)

Il est important de garder les deux scripts dans le même dossier!

  • Ajoutez maintenant un raccourci clavier pour activer et désactiver votre remplacement de caféine: "Paramètres système"> "Clavier"> "Raccourcis"> "Raccourcis personnalisés"

    Ajoutez la commande:

    /path/to/insomnia.py
    

    Pour une combinaison de touches de votre choix

C'est ça.

5
Jacob Vlijm

Vous pouvez également utiliser les quelques solutions de script ici qui, à mon avis, sont plus intelligentes car elles déterminent l'activité en fonction de l'activité du réseau ou de la modification de la taille d'un dossier.

Par exemple, si vous souhaitez garder l'ordinateur en veille pendant qu'un client de sauvegarde ou torrent fonctionne, utilisez la deuxième solution dans le lien par dhiya. Il vérifiera le trafic réseau et le gardera éveillé jusqu'à ce que le trafic s'arrête. Rappelez-vous simplement de remplacer "wlan0" par "eth0" dans le code si vous utilisez Ethernet et non le réseau local sans fil.

UPDATE 17/09/2015: J'ai modifié le code de dhiya à partir du lien situé en dessous pour que le système reste actif en fonction du trafic réseau ou de l'activité de l'utilisateur et pour forcer une suspension harmonieuse. si la session de bureau se termine dans l'écran de verrouillage/connexion sans trafic réseau. Le programme enregistre tout dans un fichier journal. Config a également été fourni pour gérer le fichier journal. J'ai nommé le programme "Keep Awake".

LINK: Y a-t-il un moyen de faire en sorte qu'Ubuntu ne suspende pas pendant qu'un téléchargement est en cours?

0
DanglingPointer

En utilisant le script très utile de Jacob Vlijm comme point de départ, je l'ai transformé en une application à part entière avec des options de configuration, une connaissance de la batterie, etc.

Vous pouvez prenez-le sur GitHub . Aucune installation n'est nécessaire. Juste:

  1. Téléchargez le .tar.gz et extrayez les fichiers (ou clonez la branche principale si vous êtes un utilisateur git) à l'endroit où vous souhaitez installer l'application. Le fait de l'avoir sur votre $PATH n'est pas nécessaire .
  2. Installez les dépendances:

    Sudo apt install xdotool xprintidle
    

    Si vous utilisez un ordinateur portable, vous voudrez également acpi.

  3. Dans le répertoire que vous avez installé, exécutez sleep_inhibit.
  4. Si vous souhaitez que l'application démarre automatiquement à chaque fois que vous vous connectez, ouvrez le menu de l'icône, sélectionnez Préférences et activez-la dans la fenêtre des préférences.
  5. Si vous décidez de le désinstaller, quittez Sleep Inhibit, puis exécutez cleanup.py, en vous assurant de répondre par l'affirmative à toutes les questions. Supprimez ensuite le répertoire et toutes les traces disparaîtront.
0
Scott Severance