web-dev-qa-db-fra.com

Désactiver le mode veille à la fermeture de l'ordinateur portable uniquement si Ethernet est branché

Je sais que vous pouvez désactiver le mode veille lorsque vous fermez le couvercle de votre ordinateur portable , mais est-il possible de ne pas le faire passer en mode veille si Ethernet est branché?

Donc, fondamentalement, que ce soit sur batterie ou pas, j'en ai besoin pour fonctionner comme ceci:

If laptop Shell closed
    If ethernet not plugged in
        Go to standby
    Else
        Don't go to standby, ever

Y a-t-il un moyen d'y parvenir?

4
Josh I

Ok, avec quelques informations d'autres réponses, vous pouvez essayer cette méthode non testée:

De événements de fermeture et d'ouverture du couvercle de la capture

  • Le script que vous voulez appeler lorsque le couvercle s'ouvre ou se ferme doit être stocké
    dans /etc/acpi/lid.sh.

  • Ensuite, il faut créer le fichier correct /etc/acpi/events/lm_lid avec le contenu suivant:

    event=button/lid.*
    action=/etc/acpi/lid.sh
    
  • Redémarrez votre système pour que cela prenne effet. Ou peut-être suffit-il de redémarrer votre ACPI en utilisant

    Sudo /etc/init.d/acpid restart
    

De https://unix.stackexchange.com/questions/252002/help-testing-special-file-in-sys-class-net et comment puis-je suspendre/hibernate de la commande line? le script /etc/acpi/lid.sh ressemblera à ceci (changez votre nom de carte réseau pour votre nom de votre carte réseau. Utilisez ifconfig pour le trouver). Vous pouvez choisir entre suspendre ou hiberner.

#!/bin/bash
if [ "$(head -c1 /sys/class/net/yournetworkcardname/carrier)" -eq 0 ]; then
    systemctl suspend
fi

Testez le script avec bash -x /etc/acpi/lid.sh et assurez-vous qu'il fonctionne. Vous devrez peut-être ajouter les éléments suivants pour exécuter le script en tant que Sudo sans être invité à entrer un mot de passe, à partir de https://unix.stackexchange.com/questions/18830/how-to-run-a-specific-program -as-root-without-a-password-Prompt :

myusername ALL = (root) NOPASSWD: /etc/acpi/lid.sh

Peut-être devrez-vous également appeler le script dans l'action avec Sudo.

1
Katu