Accéder au contenu.
Menu Sympa

linux-31 - Re: crontab et script Python

Objet : Discussions sur le logiciel libre

Archives de la liste

Re: crontab et script Python


Chronologique Discussions  
  • From: peterpan31 <peterpan31 AT free.fr>
  • To: Joyce MARKOLL <joyce.markoll AT netc.eu>, linux-31 AT culte.org
  • Subject: Re: crontab et script Python
  • Date: Mon, 3 Jun 2024 00:58:24 +0200

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 AT 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




Archives gérées par MHonArc 2.6.19+.

Haut de le page