Quel est le moyen le plus rapide de désactiver rapidement la fonction de veille lors de la fermeture du couvercle? J'aime beaucoup ce comportement, mais surtout lorsque je joue de la musique, j'aimerais fermer le couvercle sans mettre ma machine en veille.
Cependant, je ne souhaite pas désactiver cette fonctionnalité de manière permanente, mais simplement l'éteindre temporairement jusqu'à ce que j'aie fini d'écouter de la musique, par exemple.
Peut-être existe-t-il un indicateur similaire à Caféine ?
Le script ci-dessous va basculer l'action "fermer le couvercle" entre "rien" et "suspendre":
#!/usr/bin/env python3
import subprocess
key = ["org.gnome.settings-daemon.plugins.power",
"lid-close-ac-action", "lid-close-battery-action"]
currstate = subprocess.check_output(["gsettings", "get",
key[0], key[1]]).decode("utf-8").strip()
if currstate == "'suspend'":
command = "'nothing'"
subprocess.Popen(["notify-send", "Lid closes with no action"])
else:
command = "'suspend'"
subprocess.Popen(["notify-send", "Suspend will be activated when lid closes"])
for k in [key[1], key[2]]:
subprocess.Popen(["gsettings", "set", key[0], k, command])
... Et notifier quel est l'état actuellement défini:
Simplement:
toggle_lid.py
Ajoutez-le à une touche de raccourci: choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez la commande:
python3 /path/to/toggle_lid.py
L’état actuel du paramètre d’action Close-lid peut être récupéré par la ou les commandes
gsettings get org.gnome.settings-daemon.plugins.power lid-close-ac-action
(sur le pouvoir), et
gsettings get org.gnome.settings-daemon.plugins.power lid-close-battery-action
(sur la batterie)
Le script lit l'état actuel et définit le contraire ('suspendre'/'rien') avec la commande:
gsettings get org.gnome.settings-daemon.plugins.power lid-close-ac-action '<action>'
En option/en plus, vous pouvez utiliser un indicateur en tant que détecteur pour indiquer l'état actuel du réglage du couvercle. Il montrera:
... dans le panneau, si la suspension sera empêchée lors de la fermeture du couvercle, elle en affichera une grise sinon.
#!/usr/bin/env python3
import subprocess
import os
import time
import signal
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('AppIndicator3', '0.1')
from gi.repository import Gtk, AppIndicator3, GObject
from threading import Thread
key = ["org.gnome.settings-daemon.plugins.power",
"lid-close-ac-action", "lid-close-battery-action"]
currpath = os.path.dirname(os.path.realpath(__file__))
def runs():
# The test True/False
return subprocess.check_output([
"gsettings", "get", key[0], key[1]
]).decode("utf-8").strip() == "'suspend'"
class Indicator():
def __init__(self):
self.app = 'show_proc'
iconpath = currpath+"/nocolor.png"
self.indicator = AppIndicator3.Indicator.new(
self.app, iconpath,
AppIndicator3.IndicatorCategory.OTHER)
self.indicator.set_status(AppIndicator3.IndicatorStatus.ACTIVE)
self.indicator.set_menu(self.create_menu())
self.update = Thread(target=self.check_runs)
# daemonize the thread to make the indicator stopable
self.update.setDaemon(True)
self.update.start()
def check_runs(self):
# the function (thread), checking for the process to run
runs1 = None
while True:
time.sleep(1)
runs2 = runs()
# if there is a change in state, update the icon
if runs1 != runs2:
if runs2:
# set the icon to show
GObject.idle_add(
self.indicator.set_icon,
currpath+"/nocolor.png",
priority=GObject.PRIORITY_DEFAULT
)
else:
# set the icon to hide
GObject.idle_add(
self.indicator.set_icon,
currpath+"/green.png",
priority=GObject.PRIORITY_DEFAULT
)
runs1 = runs2
def create_menu(self):
menu = Gtk.Menu()
# quit
item_quit = Gtk.MenuItem('Quit')
item_quit.connect('activate', self.stop)
menu.append(item_quit)
menu.show_all()
return menu
def stop(self, source):
Gtk.main_quit()
Indicator()
GObject.threads_init()
signal.signal(signal.SIGINT, signal.SIG_DFL)
Gtk.main()
show_state.py
Copiez les deux icônes ci-dessous (clic droit -> enregistrer sous) et sauvegardez-les dans un seul et même répertoire que show_proc.py
, et portant exactement le nom indiqué ci-dessous
green.png
nocolor.png
Maintenant, testez show_state.py
avec la commande:
python3 /path/to/show_state.py
et changez l’état actuel en appuyant sur le raccourci que vous définissez dans la première section de cette réponse.
Si tout fonctionne correctement, ajoutez ce qui suit aux applications de démarrage:
/bin/bash -c "sleep 15 && python3 /path/to/show_state.py"
Le détecteur-indicateur ci-dessus est une version éditée de cette réponse . En changeant simplement le test dans la fonction runs()
(et éventuellement les icônes du panneau correspondant), vous pouvez l'utiliser pour afficher l'état de tout ce qui est qui est True
ou False
.
Une autre option serait de passer de "Suspendre" à "Ne rien faire" dans Paramètres Ubuntu - Alimentation:
PS: Cela ne fournit pas d'indicateur dans la zone de notification mais est plus simple que de créer un script pour les nouveaux utilisateurs.
PPS: Dans cet instantané d'écran, l'onduleur est destiné au modem câble + Sony Android téléviseur, pas à l'ordinateur portable alimenté par la batterie ... HAHA.