Page 1 of 1
Countdown to Action - GUI timer
Posted: Mon 20 Jun 2011, 16:33
by stu90
[Admin note: the posts in this thread were moved from this thread.]
Hi L18L,
Sorry for not replying sooner
I got side tracked with another little yad project 'Countdown to Action' (circumstance permitting your input would be greatly appreciated)
No biggie with the font selection - your original fc-list update has been working ok for me. - i think urxvtset has turned out pretty sweet considering it was only a few input boxes to start with.
thanks for help.
Countdown to Action
Posted: Mon 20 Jun 2011, 18:21
by L18L
Hi stu90
you wrote:I got side tracked with another little yad project 'Countdown to Action' (circumstance permitting your input would be greatly appreciated)
I have installed 'Countdown to Action' and at first run I had some problems.
Code: Select all
# ./cou*
Countdown: 0,000000 minutes
Execute: urxvt
rxvt: unable to calculate font width for 'Dingbats:style=Regular:pixelsize=16:minspace=True', ignoring.
rxvt: unable to load base fontset, please specify a valid one using -fn, aborting.
#
Having changed the font to Fixed Bold it was OK.
So I am thinking there is a bug with Dingbats.
Or why is it rxvt instead of urxvt???
What input are you expecting?
-Date?
-Drag and drop for Execute?
-Editable Combobox ?
-Passing the task to cronjob?
Everything seems to be possible.
Cheers
Countdown to Action
Posted: Mon 20 Jun 2011, 19:40
by L18L
v 0.2
Code: Select all
#!/bin/bash
TITLE="Countdown To Action"
VERSION="0.2"
ICON="/usr/share/pixmaps/yad.png"
TEXT="<b>Enter Time \nto countdown\nbefore Action. </b> "
TIME=`date +%H:%M`
DATE=`date +%Y-%m-%d`
### GUI countdown - action ###
COUNTDOWN=$(yad --title="$TITLE $VERSION" --text="$TEXT" --image=/usr/share/pixmaps/away.png \
--form --separator=" " \
--field="Minutes":NUM "0!0..59" \
--field="Hours":NUM "0!0..23" \
--field="Action" "urxvt" )
echo $COUNTDOWN
if [ "$COUNTDOWN" = "" ];then
echo "Exiting" && exit
else
## get minutes ##
MINS=`echo $COUNTDOWN | cut -d" " -f1 | cut -d "." -f1 | cut -d "," -f1`
echo "Countdown: $MINS minutes"
## get hours ##
HOURS=`echo $COUNTDOWN | cut -d" " -f2 | cut -d "." -f1 | cut -d "," -f1`
echo "Countdown: $HOURS hours"
## get new action ##
# SETACTION=`echo $COUNTDOWN | cut -d" " -f2-`
SETACTION=`echo $COUNTDOWN | cut -d" " -f 3`
[[ ! "$SETACTION" ]] && yad --title="$TITLE Info" --text=" Make sure to add an Action to perform " && echo "Exiting" && exit
echo "Execute: $SETACTION "
TIMER=`echo $(($MINS*60))`
ASTART=`date | cut -d" " -f-4`
exec 3> >(yad --notification --image="$ICON" --listen)
echo tooltip: "Countdown action will be performed in $MINS minutes time from <b>$ASTART</b> " >&3
sleep $TIMER
exec 3>&-
### 10 seconds to cancel action ###
(
echo "99" ; sleep 1
echo "90" ; sleep 1
echo "80" ; sleep 1
echo "70" ; sleep 1
echo "60" ; sleep 1
echo "50" ; sleep 1
echo "40" ; sleep 1
echo "30" ; sleep 1
echo "20" ; sleep 1
echo "10" ; sleep 1 ) |
# yad --progress --title="$TITLE $VERSION" --text=" Your action will executed in 10 seconds.\n <b>To abort click cancel!</b> " \
# --percentage=0 --auto-close --auto-kill
yad --progress --title="$TITLE $VERSION" --text=" Your action will executed in 10 seconds.\n To abort click cancel! " \
--percentage=0 --auto-close --auto-kill
if [ "$?" = -1 ] ; then
yad --error --text=" Aborted by user! "
fi
### action to execute ###
echo $SETACTION startet.
time eval $SETACTION
fi
exit
Re: Countdown to Action
Posted: Tue 21 Jun 2011, 11:26
by stu90
L18L wrote:v 0.2
Hi L18L,
Great update on Countdown to Action - perhaps we should start a new thread for this application?
My own need for it is to turn off my laptop when downloading torrents so as not to use up all my internet allowance.
I already though of another idea though as a PC/internet timer for parents - probably won't fool any of the older more savy kids who could kill its process but should work ok for younger kids with timedown progress window set to no buttons and borderless to stop them from canceling it.
thanks.
Re: Countdown to Action
Posted: Tue 21 Jun 2011, 12:42
by L18L
Hi stu90,
you wrote:My own need for it is to turn off my laptop when downloading torrents so as not to use up all my internet allowance.
I already though of another idea though as a PC/internet timer for parents - probably won't fool any of the older more savy kids who could kill its process but should work ok for younger kids with timedown progress window set to no buttons and borderless to stop them from canceling it.
why not just
timer,
there is /usr/local/pschedule
parents,
kid should use wary112 (unprivileged user fido)
Sorry, I do not see a reason to reinvent these wheels at the moment.
Re: Countdown to Action
Posted: Tue 21 Jun 2011, 13:16
by stu90
L18L wrote:Hi stu90,
you wrote:My own need for it is to turn off my laptop when downloading torrents so as not to use up all my internet allowance.
I already though of another idea though as a PC/internet timer for parents - probably won't fool any of the older more savy kids who could kill its process but should work ok for younger kids with timedown progress window set to no buttons and borderless to stop them from canceling it.
why not just
timer,
there is /usr/local/pschedule
parents,
kid should use wary112 (unprivileged user fido)
Sorry, I do not see a reason to reinvent these wheels at the moment.
You can use wget to download torrent files - i was unaware of this
Yes running as fido would be best to stop any mishaps but Lucid puppy and most all the earlier puppies do not have this option
Sure most things have been done before - but i don't see it as reinventing the wheel - merely more choice, with the added bonus of of having some fun and hopefully learning something along the way
cheers.
Re: Countdown to Action
Posted: Tue 21 Jun 2011, 14:24
by L18L
stu90 wrote: added bonus of of having some fun and hopefully learning something along the way
.
Bingo
If you start a new thread I will join
Countdown to Action
Posted: Thu 23 Jun 2011, 20:45
by vovchik
Dear L18L,
Countdown to Action is a great little utility. I would only make one slight change to line 32. As written, the input field does not accept arguments. In order for parameters to be passed, line 32 should look like this:
Code: Select all
SETACTION=`echo $COUNTDOWN | cut -d" " -f 3-`
I just added a "-" after 'cut -d" " -f ', which means cut takes all fields starting with f3. Thanks for the utility.
With kind regards,
vovchik
Re: Countdown to Action
Posted: Thu 23 Jun 2011, 21:06
by L18L
vovchik wrote:...
I just added a "-" after 'cut -d" " -f ', which means cut takes all fields starting with f3. Thanks for the utility.
...
Learning from each other is fun.
Thank you very much for the - (Minus)
The credits go to
stu90.
I have just added the field HOUR and ranges for the numeric fields.
Posted: Fri 24 Jun 2011, 02:42
by stu90
This is a little Yad application to perform a simple countdown for x minutes or hours then perform a user defined action or string of actions, such as shutdown puppy (wmpoweroff) or play a media file etc.
When you set a countdown action there will be an icon in the system tray as a reminder - 10 second before the countdown action is performed a little gui window will open alerting you an action is to be performed in 10 seconds and giving the option to cancel the action if you wish.
urxvt in the action field is not needed to run an action, it is just there as an example.
Dependencies:
Countdown to Action requires Yad-0.12.2 to be installed - download is available on this link:
http://www.murga-linux.com/puppy/viewto ... 533#536533
Tested on Lucid Puppy.
Thanks.
c2a
Posted: Fri 24 Jun 2011, 11:06
by vovchik
Sorry Stu,
I guess my thanks should have been addressed mainly to you
In any case, the utility is useful, and collaboration is always nice to see. To make this app even more complete, you might consider adding a launch at hh:mm and a file select button for the action that would update the input box.
With kind regards,
vovchik
PS. I use this icon for the GUI. It's a bit big, but I like it.
Countdown
Posted: Fri 24 Jun 2011, 20:43
by L18L
An additional combobox for choosing from /usr/share/applications.
The checkbox decides where to take the action from.
The input field which I have renamed to "Command" has to be at last position because it can contain more than 1 string.
Writing this down I have got the idea taking another separator than blank that this condition would exist no more.
Code: Select all
#!/bin/bash
## Stu90 ## L18L ##
## Countdown to Action ##
## editable command or combobox v3a
TITLE="Countdown To Action"
VERSION="0.3a"
ICON="/usr/share/pixmaps/c2a.png"
TEXT="<b>Enter Time to countdown \nbefore\nAction or Command. </b> "
TIME=`date +%H:%M.%P`
DATE=`date +%d-%m-%Y`
### GUI countdown - action ###
COUNTDOWN=$( yad --title="$TITLE $VERSION" --text="$TEXT" --form --separator=" " --image="$ICON" \
--field="Minutes":NUM "0!0..59" \
--field="Hours":NUM "0!0..23" \
--field="Action":CB "`ls /usr/share/applications | tr '\n' '!' | sed s/.desktop//g `" \
--field="Ignore Command":CHK TRUE \
--field="Command" "urxvt" \
)
echo $COUNTDOWN
if [ "$COUNTDOWN" = "" ];then
echo "Exiting" && exit
else
## get minutes ##
MINS=`echo $COUNTDOWN | cut -d" " -f1 | cut -d "." -f1 | cut -d "," -f1`
echo "Countdown: $MINS minutes"
## countdown minutes ##
TIMERM=`echo $(($MINS))`'m'
## get hours ##
HOURS=`echo $COUNTDOWN | cut -d" " -f2 | cut -d "." -f1 | cut -d "," -f1`
echo "Countdown: $HOURS hours"
## coundown hours ##
TIMERH=`echo $(($HOURS))`'h'
## get new action ##
IGNORE_COMMAND=`echo $COUNTDOWN | cut -d" " -f4`
if [ "$IGNORE_COMMAND" = "TRUE" ] ; then
SETACTION=`echo $COUNTDOWN | cut -d" " -f 3`
SETACTION=`cat /usr/share/applications/${SETACTION}.desktop | grep Exec= | cut -d "=" -f 2 `
else
# must be the last input because number of parameters is unknown
SETACTION=`echo $COUNTDOWN | cut -d" " -f 5-`
[[ ! "$SETACTION" ]] && yad --title="$TITLE Info" --text=" Make sure to add an Action to perform " && echo "Exiting" && exit
fi
echo "Execute: $SETACTION "
## tray notification ##
exec 3> >(yad --notification --image="$ICON" --listen)
echo tooltip: "Countdown action will be performed \n in <b>$HOURS</b> hours and <b>$MINS</b> minutes time from \n <b>$TIME $DATE</b> " >&3
## sleep for x hours + x minutes ##
sleep $TIMERH | sleep $TIMERM
exec 3>&-
### 10 seconds / cancel notification ###
(
echo "99" ; sleep 1
echo "90" ; sleep 1
echo "80" ; sleep 1
echo "70" ; sleep 1
echo "60" ; sleep 1
echo "50" ; sleep 1
echo "40" ; sleep 1
echo "30" ; sleep 1
echo "20" ; sleep 1
echo "10" ; sleep 1 ) |
yad --progress --title="$TITLE $VERSION" --text=" Your action will be executed in 10 seconds. " \
--percentage=0 --auto-close --auto-kill
if [ "$?" = -1 ] ; then
yad --error --text=" Aborted by user! "
fi
### action to execute ###
echo $SETACTION startet.
time eval $SETACTION
fi
exit
Posted: Fri 04 Nov 2011, 04:30
by RSH
Hello,
i have downloaded and installed the pet, but it won't run.
Error Message:
Code: Select all
sh-3.00# /root/my-applications/bin/countdown
/root/my-applications/bin/countdown: line 17: yad: command not found
Exiting
sh-3.00#
What does it mean and what can i do, to get this tool running? I'm using Puppy Studio 3.3 and Lucid 525 (528).
RSH
Edit:
Sorry, but i must have been blind. Found the yadxxx.pet, downloaded it, and now it works.
Posted: Fri 04 Nov 2011, 04:36
by DPUP5520
You are missing
yad
http://www.murga-linux.com/puppy/viewtopic.php?p=438811
you can find it in the first post of the above link
Posted: Fri 04 Nov 2011, 04:38
by DPUP5520
wtf thats weird, anyway you need yad which can be found here
http://www.murga-linux.com/puppy/viewtopic.php?p=438811
Posted: Fri 04 Nov 2011, 05:32
by RSH
Got still another Question: what is yad? Is it something like gtkdialog?
RSH
Posted: Fri 04 Nov 2011, 12:49
by stu90
RSH wrote:Got still another Question: what is yad? Is it something like gtkdialog?
RSH
Hello RSH,
Yes - it allows you to add GUI's to bash scripts.
You can type
yad--help-all in the terminal for a full list of options.
Posted: Tue 29 Nov 2011, 23:22
by puppyto
Why countdown, does not works with poweroff?? the system (lucid puppy 5.2.8 on usb, frugal) becomes stopped, like a photo, and I must remove from electricity ( battery) to reboot again.