Notificar-enviar não funciona no Cinnamon

3

Estou usando Linux Mint 17 .
Quero ser informado a cada 50 minutos, a cada hora para uma pequena pausa.

Aqui está trabalho do cron :

nazar@lelyak-desktop ~ $ crontab -l

DISPLAY=:0.0
XAUTHORITY=/home/matrix/.Xauthority

00 13 * * * /home/nazar/Documents/scripts/lunch_break_job.sh # JOB_ID_2
50 * * * * /home/nazar/Documents/scripts/pc_break.sh # JOB_ID_1
* * * * * /home/nazar/Documents/scripts/cron_job_test.sh # JOB_ID

Aqui está o script para /home/nazar/Documents/scripts/cron_job_test.sh :

#!/bin/bash

export DISPLAY=0.0
export XAUTHORITY=/home/matrix/.Xauthority

if [ -r "$HOME/.dbus/Xdbus" ]; then
  . "$HOME/.dbus/Xdbus"
fi

/usr/bin/notify-send -i "hello"

Este trecho de função:

if [ -r "$HOME/.dbus/Xdbus" ]; then
  . "$HOME/.dbus/Xdbus"
fi

Verifica DBUS_SESSION_BUS_ADDRESS e usa.

De acordo com essa resposta eu executei o script e agora meu Dbus é salvo em $HOME/.dbus/Xdbus :

nazar@lelyak-desktop ~ $ cat $HOME/.dbus/Xdbus
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-flm7sXd0I4,guid=df48c9c8d751d2785c5b31875661ebae
export DBUS_SESSION_BUS_ADDRESS

Tudo deve funcionar. Eu não consegui encontrar o que está faltando. Porque a notificação não funciona agora.

Do terminal funciona bem:

Comoresolveresteproblema?

SOLUÇÃO:

Agora,meucrontabéoseguinte:

DISPLAY=":0.0"
XAUTHORITY="/home/nazar/.Xauthority"
XDG_RUNTIME_DIR="/run/user/1000"
00 13 * * * /home/nazar/Documents/scripts/lunch_break_job.sh # JOB_ID_2
50 * * * * /home/nazar/Documents/scripts/pc_break.sh # JOB_ID_1
# * * * * * /home/nazar/Documents/scripts/cron_job_test.sh # JOB_ID

e cron_job_test.sh parecem agora:

#!/bin/bash

/usr/bin/notify-send -i /home/nazar/Pictures/icons/Mail.png "hello" "It is just cron test message"
    
por nazar_art 07.12.2015 / 10:17

1 resposta

4

Você precisa definir XDG_RUNTIME_DIR também. Mude seu crontab para isto:

DISPLAY=":0.0"
XAUTHORITY="/home/nazar/.Xauthority"
XDG_RUNTIME_DIR="/run/user/1001"
00 13 * * * /home/nazar/Documents/scripts/lunch_break_job.sh # JOB_ID_2
50 * * * * /home/nazar/Documents/scripts/pc_break.sh # JOB_ID_1
* * * * * /home/nazar/Documents/scripts/cron_job_test.sh # JOB_ID

Certifique-se de alterar nazar para qualquer nome de usuário e 1001 para seu UID real. Você pode obter seu UID executando id -u .

E tudo que você precisa no seu script é:

#!/bin/bash

/usr/bin/notify-send "hello" 

Eu apenas testei isso no Arch rodando Cinnamon e funcionou bem.

As variáveis estão sendo definidas no crontab, sem necessidade de exportar nada do script. Também não há sentido em fazê-lo, o script está sendo chamado pelo cron, não exportaria os valores que você precisa de qualquer maneira.

    
por 07.12.2015 / 11:06