Well, the prize goes to Wes--adding <sudo -u household> before the wnctrl -k commands worked. Now when the script is launched by anacron the zenity test command minimizes all open windows and presents its dialog window. When that window closes, either due to a user response or time out for that window, the windows are restored. Great. This means that a notification to the user that something went wrong or that some action is required will not be hidden behind open windows. Now that I am assured that the zenity notification method works, I can get rid of the zenity test command at line 14.
In summary, I have a script which anacron runs every day. That script checks whether it is time to run a weekly backup. If so, it instructs the user to click "yes" and turn on the backup drive. If "no" or timeout is reached the script closes to be run the next day. If "yes" the backup script is launched. If backup is successful the date file is updated and a notification to turn off the drive is launched. If the backup is not successful for any reason, various error notification windows are launched. If I had put the backup script among the weekly anacron scripts, there would be no way to postpone the backup for one day. Not running the backup would postpone the backup for a full week. Thanks to all who responded with ideas and suggestions. -Denis On Tue, Feb 6, 2018 at 1:27 PM, Denis Heidtmann <[email protected]> wrote: > I have a script which runs daily via anacron. I want the script to launch > a zenity window to notify the user, so I issue the command wmctrl -k on > before zenity and wmctrl - off after. This is supposed to minimize all > open windows to ensure that the zenity window will be visible. I have a > test script to show that it works. Both scripts are owned by root, but > editable by me. I have run the test script from a command line login > using sudo, as well as from a Gnome terminal. The test script behaves as > intended--the desktop is cleared of all open windows. I inserted a test > zenity window at the beginning of the real script to verity that when > launched by anacron it would behave the same way. It does not! It does > not minimize open windows, but the zenity window does appear on top of the > open windows. > > What is different about the anacron launch? I have been monkeying with > this thing for quite a while. I tried wmctrl -R but that did not behave as > I had hoped. wmctrl -k does what I want except when anacron is doing the > launching. > > Ideas? > > -Denis > > Test script: > > #!/bin/bash > # test to get zenity to work when script is not called from an X window > # change to a non-X login (^ alt F2), call this w/sudo, then go back to X > (^ alt F7) > # to see if a zenity window shows up. > # feb 5 2018 the above worked--all open windows minimized. > > > Notification () { > # pass title, text of notice, and timeout as 3 parameters > TITLE=$1; MSG=$2; TIMOUT=$3 > wmctrl -k on > sudo -u household zenity --question --title="$TITLE" --text="$MSG" > --timeout="$TIMOUT" > RETRNCODE=$? > wmctrl -k off > return $RETRNCODE # return codes: 0 = YES, 1 = cancel, 5 = timeout > } > > sleep 30 > > export DISPLAY=:0 > # test of launch of zenity > Notification "Test of zenity (backup_checksh)" "This should minimize all > open windows." 20 > # remove when satisfied that launch works. > > Top of real script: > > #!/bin/bash > > Notification () { > # pass title, text of notice, and timeout as 3 parameters > TITLE=$1; MSG=$2; TIMOUT=$3 > wmctrl -k on > sudo -u household zenity --question --title="$TITLE" --text="$MSG" > --timeout="$TIMOUT" > RETRNCODE=$? > wmctrl -k off > return $RETRNCODE # return codes: 0 = YES, 1 = cancel, 5 = timeout > } > export DISPLAY=:0 > # test of launch of zenity > Notification "Test of zenity (backup_checksh)" "This should minimize all > open windows." 5 > # remove when satisfied that launch works. > MAX_TIME=$((7 * 24 * 3600)) > > _______________________________________________ PLUG mailing list [email protected] http://lists.pdxlinux.org/mailman/listinfo/plug
