dzen2 is a notification utility of sorts. This command will make a notification that says "Hi" appear on the screen:
echo Hi | dzen2 -p
Debian's at is a utility that schedules events to occur in the future. This command will make the file "foo" appear in your user directory after 1 minute:
echo "touch ~/foo" | at now + 1 minute
So why is it that this command doesn't cause a dzen2 notification to appear after 1 minute?
echo "echo Hi | dzen2 -p" | at now + 1 minute
I have been investigating for hours and cannot seem to find a reason why this doesn't work! I have a hunch that it has to do with the shell that is invoked by at, but I just don't understand why it fails. As a counterpoint example, this command works just fine:
echo "notify-send Hi" | at now + 1 minute

at. someone else should chim in – llua May 10 '12 at 23:53