Example script error.sh
:
#! /bin/bash
zenity --error --text='Something very bad has happened!'
My incron-config
:
~/Documents IN_MOVED_TO ~/scripts/error.sh
If I run error.sh
in terminal GUI dialog pops, but not in above incron scenario.
How can I make zenity to pop that dialog when I move file in Documents folder?
Found answer here. Add to
~/.bashrc
:and then use zenity in script evoked by cron like this:
adding
--display=:0.0
is what's importantTo run a GUI command on cron, you'll have to tell cron what display the program should use. For that you use:export DISPLAY=:0
For a zenity notification each 30 minutes, edit with
crontab -e
and set a job like:Detailed how to: link
There's another possible solution if you want it to work regardless of username, by finding the active user of the X display, using ConsoleKit (the command
ck-list-sessions
). Assuming the below script is run as root, it will show a zenity message to the current active user on your computer:The little awk script is just for parsing ck-list-sessions and outputting the username and display of the user that is active (could also require that it's a local connection if you want to exclude ssh -X users, if you want).
(I use this in a backup script that runs on plugging in a USB drive.)