Bonsoir Joyce,Le script .py réaffecte la touche Super_L (ici lance le whiskermenu mais Mélanie lancera probablement son menu simplifié).
J'ai copié les script .sh et .py dans /usr/local/bin et appartiennent à aciah:aciah.
Tous deux ont les droits 755. Le .desktop est bien dans /etc/xdg/autostart avec les droits 644. Il appartient à aciah:aciah. Eh bien, rien n'y fait.Le .py fonctionne bien dans une console mais au login d'une session il ne semble jamais exécuté (et rien dans le log.txt).
Si tu comprends mes bourdes, dis-le moi stp. Merci pierre Le 02/06/2024 à 01:10, Joyce MARKOLL (via linux-31 Mailing List) a écrit :
On Sun, 2 Jun 2024 00:42:44 +0200 "peterpan31" (via linux-31 Mailing List) <linux-31@culte.org> wrote:S'il y a une solution plus simple je prendrais volontiers.C'est peut-être possible. Admettons que ton script Python soit installé sous /usr/local/bin (qui est dans le "$PATH$", donc dans le chemin des exécutables), et en supposant que ton système soit doté d'une session graphique, avec un gestionnaire de bureau. Tu peux créer un fichier *.desktop sous /etc/xdg/autostart (droits 644, donc rw-r--r--) pour lancer ton script python sans avoir besoin d'un cron (pourquoi un cron au juste ? Est-ce absolument nécessaire pour faire tourner ton programme ?) Le fichier au format .desktop est un simple fichier texte qui suit les spécifications de freedesktop.org. Par exemple, en voici un qui peut servir de modèle: ***** [Desktop Entry] Name=Network Comment=Manage your network connections Icon=nm-device-wireless Exec=nm-applet Terminal=false Type=Application NoDisplay=true NotShowIn=KDE;GNOME; X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=NetworkManager X-GNOME-Bugzilla-Component=nm-applet X-GNOME-UsesNotifications=true X-Ubuntu-Gettext-Domain=nm-applet **** Tu peux trouver d'autres exemples dans le même répertoire, et sur le site freedesktop.org. https://www.freedesktop.org/wiki/Howto_desktop_files/
#!/usr/bin/python3
"""
Exécute une commande lors de l'appui de la touche Super_L (touche Windows)
"""
from subprocess import run, PIPE, Popen, check_output, STDOUT, DEVNULL
from pyxhook import HookManager
def exec(cmd):
return check_output(cmd.split()).decode("ascii")
def onKeyDown(event):
global keys
global count
keys.append(event.Key)
count = len(keys)
def onKeyUp(event):
global keys
global count
keys.remove(event.Key)
if event.Key == "Super_L" and count == 1:
exec(cmd)
if __name__ == '__main__':
keys = ["Return"]
count = 0
cmd = "xfce4-popup-whiskermenu"
hm = HookManager()
hm.HookKeyboard()
hm.KeyDown = onKeyDown
hm.KeyUp = onKeyUp
hm.start()
Attachment:
whiskermenu.py.desktop
Description: application/desktop
Attachment:
whiskermenu.sh
Description: application/shellscript