Page 1 sur 1

[xautolock + notify-send] notify-send ne fait rien (résolu)

Publié : mer. 23 déc. 2015, 22:10
par Piczel
Bonjour tout le monde, je voulais me faire un truc tout beau mon lock screen, mais j'ai quelques problèmes que voilà :

notify-send ne fait rien, enfin bizarrement, je vous montre ma commande :

Code : Tout sélectionner

xautolock -time 1 -locker /home/victor/.lock_screen/lock -notify 30 -notifier "notify-send --urgency=critical 'Lock' 'Locking in 30s' -i /home/victor/.lock_screen/lock.png" &
(normalement c'est 5 min, et lock est un script fait maison, et fonctionnel)

voilà le problème : lancé sur console, ça marche sans soucis, mais lancé avec .xinitrc, il lock effectivement après 1 min, mais n'affiche pas de notification (j'utilise Awesome).

(au cas où, voici comment je le lance avec .xinitrc)

Code : Tout sélectionner

#!/bin/zsh

if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

xset +fp /usr/share/fonts/local
xset fp rehash


[[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources


syndaemon -i 0.2 -d
urxvtd -q -o -f
numlockx &
xautolock -time 5 -locker /home/victor/.lock_screen/lock -notify 30 -notifier "notify-send --urgency=critical 'Screen locking' 'Screen will be locked in 30s' -i /home/victor/.lock_screen/lock.png" & 
exec dbus-launch awesome

J'ai donc essayé de le lancer avec Awesome, mais c'est plus compliqué qu'il n'y parait :
au début de mon rc.lua j'ai donc rajouté ça :

Code : Tout sélectionner

os.execute("xautolock -time 1 -locker /home/victor/.lock_screen/lock -notify 30 -notifier 'notify-send --urgency=critical 'Lock' 'Locking in 30s' -i /home/victor/.lock_screen/lock.png' &")
vous remarquez donc bien le problème de match des apostrophes, j'ai voulu y remédier en rajoutant deux variables, $titlelock, et $sublock définies dans .zshrc par

Code : Tout sélectionner

local titlelock = "Lock"
local sublock = "Locking in 30s"
ce qui transforme ma ligne awesome par :

Code : Tout sélectionner

os.execute("xautolock -time 1 -locker /home/victor/.lock_screen/lock -notify 30 -notifier 'notify-send --urgency=critical $titlelock $sublock -i /home/victor/.lock_screen/lock.png' &")
SAUF QUE! vous le voyez bien, notify-send est entre apostrophes (sinon ça ferme le truc principal), du coup, les variables ne sont pas remplacées, mais de toute façon, notify-send n'affiche déjà plus rien.

J'ai donc essayé en interchangeant les signes de ponctuation :

Code : Tout sélectionner

os.execute('xautolock -time 1 -locker /home/victor/.lock_screen/lock -notify 30 -notifier "notify-send --urgency=critical $titlelock $sublock -i /home/victor/.lock_screen/lock.png" &')

Et résultat.. ça ne marche toujours pas..

Bref en résumé, sur la console ça marche très bien, no souçaï, mais avec .xinitrc, et rc.lua, aucun des deux ne marche..
J'ai besoin de vous camarades archers!

Merci à tous et bonne soirée :)

Re: [xautolock + notify-send] notify-send ne fait rien

Publié : jeu. 24 déc. 2015, 09:58
par benjarobin
Bonjour,
Tu dois bien lancer après le dbus-launch et donc tu dois bien le faire dans le lua.
Sinon il suffit de n'utiliser que des " et de les échapper via \

Re: [xautolock + notify-send] notify-send ne fait rien

Publié : jeu. 24 déc. 2015, 12:51
par Piczel
Salut!

Aaah oui effectivement ! j'avais pas pensé à les échapper, j'essaye et eje te tiens au courant. merci !

EDIT : j'ai essayé ça

Code : Tout sélectionner

--lancer xautolock
os.execute("xautolock -time 1 -locker /home/victor/.lock_screen/lock -notify 30 -notifier \"notify-send --urgency=critical \"Screen lock\" \"Screen will be locked in 30s\" -i /home/victor/.lock_screen/lock.png\" &")
mais ça ne fait rien..
une idée ?

EDIT2 : j'ai mis l'intégralité du notify-send entre apostrophes, et ça marche, super ! merci à toi, je passe en résolu