Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Thu 27 Feb 2020, 23:20
All times are UTC - 4
 Forum index » Off-Topic Area » Programming
YAD - Tips
Post new topic   Reply to topic View previous topic :: View next topic
Page 56 of 56 [837 Posts]   Goto page: Previous 1, 2, 3, ..., 54, 55, 56
Author Message
fredx181


Joined: 11 Dec 2013
Posts: 4289
Location: holland

PostPosted: Mon 23 Dec 2019, 19:12    Post subject:  

Argolance wrote:
maybe the two versions will end up coming together, which would be the happiest ending!

If it comes to an ending EVER ! Laughing

Both versions updated ("yalarm" and Argolance's modified "yalrm") with added to the GUI a "Postpone" spin-button.
This way the exact amount of minutes to postpone can be pre-set from the main GUI.

Both versions have "gettext" for the text strings, but yalrm.mo translation file is not updated (in yalrm-0.6.1.pet).

Fred
yalrm.tar.gz
Description  Added postpone adjustment, extract and run yalarm from yalrm folder
gz

 Download 
Filename  yalrm.tar.gz 
Filesize  41.76 KB 
Downloaded  56 Time(s) 
yalrm-0.6.1.pet
Description  Modified from Argolance's version, added postpone adjustment
pet

 Download 
Filename  yalrm-0.6.1.pet 
Filesize  118.84 KB 
Downloaded  59 Time(s) 
2019-12-23-221435_739x369_scrot.png
 Description   yalrm v0.6.1, added postpone adjustment
 Filesize   77 KB
 Viewed   764 Time(s)

2019-12-23-221435_739x369_scrot.png

2019-12-23-215209_765x447_scrot.png
 Description   yalarm, added postpone adjustment
 Filesize   89.91 KB
 Viewed   765 Time(s)

2019-12-23-215209_765x447_scrot.png


_________________
Dog Linux website
Tinylinux blog by wiak
Back to top
View user's profile Send private message 
vovchik


Joined: 23 Oct 2006
Posts: 1515
Location: Ukraine

PostPosted: Wed 25 Dec 2019, 07:46    Post subject:  

Dear Fred,

Here are two svgs that could be placed inside the script (i.e. self-contained) in place of the pngs. Next, I have to use hexdump or od to create a variable for the ttf - which could also be placed inside the script and copied into to $HOME/.local/share/fonts if it doesn't exist already. A desktop file could also be produced in the same way and copied ito $HOME/.local/share/applications/yalarm.desktop.

Happy holidays to all...

With kind regards,
vovchik

PS. base64 will do the variable encode/decode work nicely, enabling the font to be embedded in the script.
yalarm-svg.tar.gz
Description 
gz

 Download 
Filename  yalarm-svg.tar.gz 
Filesize  2.43 KB 
Downloaded  51 Time(s) 
Back to top
View user's profile Send private message 
vovchik


Joined: 23 Oct 2006
Posts: 1515
Location: Ukraine

PostPosted: Wed 25 Dec 2019, 08:28    Post subject:  

Dear Fred,

Here is that ticker ttf within a script. I used base64. It works nicely.

With kind regards,
vovchik
ttfb64.tar.gz
Description 
gz

 Download 
Filename  ttfb64.tar.gz 
Filesize  19.76 KB 
Downloaded  48 Time(s) 
Back to top
View user's profile Send private message 
fredx181


Joined: 11 Dec 2013
Posts: 4289
Location: holland

PostPosted: Wed 25 Dec 2019, 16:18    Post subject:  

Ha ! Thanks very much vovchik !
Now... of course I couldn't resist putting together a completely self-contained Cool script (attached) which will create all icons (.svg) and the ticking.ttf font for the current time display.
Also (if yalarm is placed in PATH, e.g. in /usr/bin) it will create a .desktop launcher in $HOME/.local/share/applications/ (after first time running the script), so it should appear then in the menu under "Utility".

Merry Christmas to everyone !

Fred
yalarm.tar.gz
Description  Extract (recommended in PATH) and run yalarm, cheers vovchik :)
gz

 Download 
Filename  yalarm.tar.gz 
Filesize  26.68 KB 
Downloaded  50 Time(s) 

_________________
Dog Linux website
Tinylinux blog by wiak
Back to top
View user's profile Send private message 
vovchik


Joined: 23 Oct 2006
Posts: 1515
Location: Ukraine

PostPosted: Wed 25 Dec 2019, 17:33    Post subject:  

Dear Fred,

Thanks. Very nice work - installed and functions as it should - with the nice font display and all icons. I like the self-contained script idea. Everything is there, so, if you have the script, it will just work and even perform the installation of needed bits and pieces if they are missing, including a menu entry. I like it!

With kind regards,
vovchik
Back to top
View user's profile Send private message 
enrique

Joined: 09 Nov 2019
Posts: 262
Location: Planet Earth

PostPosted: Thu 26 Dec 2019, 03:40    Post subject:  

@fredx181 is this an update/improve of what you post me before?
Some time I do cook rice. And I am starting to use it to remind me of the next step while cooking. See put it in to use.
Back to top
View user's profile Send private message 
fredx181


Joined: 11 Dec 2013
Posts: 4289
Location: holland

PostPosted: Thu 26 Dec 2019, 08:11    Post subject:  

enrique wrote:
@fredx181 is this an update/improve of what you post me before?
Some time I do cook rice. And I am starting to use it to remind me of the next step while cooking. See put it in to use.


Yes, little bit improved with the postpone setting, here's a updated deb with the same changes:
https://github.com/doglinux/busterdog/raw/master/amd64/yalarm_0.0.2_all.deb

Fred

_________________
Dog Linux website
Tinylinux blog by wiak
Back to top
View user's profile Send private message 
enrique

Joined: 09 Nov 2019
Posts: 262
Location: Planet Earth

PostPosted: Fri 27 Dec 2019, 12:48    Post subject:  

Thanks I will try it. HEHEHE I just trip my smoke alarm doing Hamburgers. Se you later
Back to top
View user's profile Send private message 
stemsee

Joined: 27 Jun 2013
Posts: 2572
Location: In The Way

PostPosted: Thu 02 Jan 2020, 11:31    Post subject:  

I am not sure if others are aware of this, but concerning yad options; '--button' '--select-action' '--dclick-action' and '--form --field=:FBTN ""'
I have found that stringing multiple commands is reliable. Contrary to the yad manpage. I think misko does this, but anyway my findings are...

For example

Code:
 yad --form --field="Strung Functions:FBTN" "bash -c 'apulse firefox; bash -c geany; bash -c trans_tray'"

So when the extra code is within the single quotes they work as expected for all the above options. using & doesn't work. using && between executables does.

Calling functions proceeds through all calls. executtables may need closing before succeeding commands execute, but this depends wether or not there is already an open process....eg firefox and geany, new windows will open without waiting for exit code (i guess).

I tried some other syntactical options, but these above were reliable.

This also worked for yad --plug=$$ --list --select-action, in a yad --paned

Happy 2020, Visionary Year

stemsee
Back to top
View user's profile Send private message MSN Messenger 
step

Joined: 04 May 2012
Posts: 1244

PostPosted: Thu 02 Jan 2020, 15:25    Post subject:  

Thanks stemsee. Concerning BTN and FBTN this is what the yad manual page says:
Quote:

BTN - button field. ...
Initial value is a command which is running when but‐
ton is clicked. A special sympols %N in command are replaced by value of field N. If command starts with
@, the output of command will be parsed and lines started with number and colon will be treats as a new
field values.
vvvvvv
A quoting style for value when sh -c is used - a single quotes around command and double
quotes around -c argument
^^^^^
FBTN - same as button field, but with full relief of a button.

So, your quoting style doesn't match the prescribed quoting style. In my experience, the prescribed style is the only quoting style that consistently works when the -c argument includes complex quoted strings.

stemsee wrote:
Code:
yad --form --field="Strung Functions:FBTN" "bash -c 'apulse firefox; bash -c geany; bash -c trans_tray'"


depending on what you want to achieve, I think the above line could be shortened to (untested):
Code:

yad --form --field="Strung Functions:FBTN" 'bash -c "apulse firefox; geany; trans_tray"'

with much the same effect: starting with no firefox nor geany nor trans_tray running, run firefox, when that is closed run geany, when that is closed run trans_tray.
Note that I changed quoting to the prescribed style.

_________________
Fatdog64-810|+Packages|Kodi|gtkmenuplus
Back to top
View user's profile Send private message 
stemsee

Joined: 27 Jun 2013
Posts: 2572
Location: In The Way

PostPosted: Fri 03 Jan 2020, 09:04    Post subject:  

OK.....I should read the manpage ... finally! Rolling Eyes
Back to top
View user's profile Send private message MSN Messenger 
misko_2083


Joined: 08 Nov 2016
Posts: 101

PostPosted: Sun 19 Jan 2020, 18:55    Post subject:  

stemsee wrote:
OK.....I should read the manpage ... finally! Rolling Eyes

Noooo! Don't do it! If my calculations are correct, there is 89% chance you'll cause a blizzard via butterfly effect... Wink https://en.wikipedia.org/wiki/Butterfly_effect

here's a video of my fancy yad alarm with at command:
https://www.youtube.com/watch?v=KGNV2cLfF_I
It is designed for xfce since I use the fake window bar.
Nothing special with move/resize buttons: on click "xdotool key alt+F7" and alt+F8 respectively.
I'm not sure what keyboard combinations other window managers use to move windows.
However, Minimize, Maximize and Close should work with all wm's.
If not remove them and remove '--undecorate' option in the main dialog.

Since at command is used alarm will open after restart.

I borrowed a few lines from Fredx's script. Embarassed
Requires: at, xfce4, wmctrl, xdotool, yad 0.42 (with html dialog), mpv
So install what is needed.

You can choose between running the file in mpv or a custom command.
If you type in custom command, don't use "@" character. This is the limitation.
Custom command can be firefox "www.youtube.com" for example.
Leave the custom blank for mpv.
Ticking "Loop forever" overides "repeat".
Job can be listed and removed via "List at Job" button.

Any open child windows will be killed after the main window is closed.

I've (ab)used DOM2 events in JavaScript to create a link and emulate mouseclick on that link to make yad to print the output.

Code:

#!/bin/bash
# Fancy alarm Misko_2083 @ 2020
# Requires: at, xfce4, wmctrl, xdotool, yad 0.42 (with html dialog), mpv

#########################
# Begin User Interface  #
#########################

# JavaScript, HTML and CSS

YURI="$(cat << EOF
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">

<!--CSS for the page-->
<style>
.body, .html {
  overflow-y: hidden;
  cursor: default;
  background-color: #CECECE;
}

.tooltip {
  position: relative;
  display: inline-block;
}

.tooltip .tooltiptext {
  visibility: hidden;
  width: 120px;
  background-color: black;
  color: #fff;
  text-align: center;
  border-radius: 6px;
  padding: 5px 0;
  position: absolute;
  z-index: 1;
  top: 180%;
  left: 50%;
  margin-left: -60px;
  opacity: 0;
  transition: opacity 1s;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}

.tooltip .tooltiptext::after {
  content: "";
  position: absolute;
  bottom: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent black transparent;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
}

#jsalarmclock{
font-weight: bold;
font-size: 14px;
}

#jsalarmclock div{
margin-bottom: 0.8em;
}

#jsalarmclock div.leftcolumn{
float: left;
width: 150px;
font-size: 14px;
clear: left;
}

#jsalarmclock span{
 margin-right: 10px;
}

#jsalarmclock input[type=number]{
 width: 50px;
}

p {
 font-weight: bold;
 font-size: 11px;
}

.btn {
  border: 2px solid black;
  background-color: white;
  color: black;
  padding: 8px 16px;
  position: sticky;
  font-size: 12px;
  cursor: default;
}

/* Green */
.bar {
  border-color: #4CAF50;
  color: green;
  text-decoration: none;
}

.bar:hover {
  background-color: #4CAF50;
  color: white;
}

/* Blue */
.bl {
  border-color: #2196F3;
  color: dodgerblue;
  text-decoration: none;
}

.bl:hover {
  background: #2196F3;
  color: white;
  text-decoration: none;
}

/* Orange */
.bltop {
  border-color: #ff9800;
  color: orange;
  text-decoration: none;
}

.bltop:hover {
  background: #ff9800;
  color: white;
  text-decoration: none;
}

/* Red */
.restart{
  border-color: #f44336;
  color: red;
  text-decoration: none;
}

.restart:hover {
  background: #f44336;
  color: white;
}

/* Gray */
.default {
  border-color: #000000;
  color: black;
  text-decoration: none;
}

.default:hover {
  background: #000000;
  color: white;
  text-decoration: none;
}

.title {
 font-size: 10px
 cursor: default;
}
</style>

<!--Script to prevent right click menu-->
<script type="text/javascript">
    if (document.addEventListener) { // IE >= 9; other browsers
        document.addEventListener('contextmenu', function(e) {
            //here you do nothing
            e.preventDefault();
        }, false);
    } else { // IE < 9
        document.attachEvent('oncontextmenu', function() {
            alert("You've tried to open context menu");
            window.event.returnValue = false;
        });
    }
</script>


<script type="text/javascript">

/***********************************************

* JavaScript Alarm Clock- by JavaScript Kit (www.javascriptkit.com)
* This notice must stay intact for usage
* Visit JavaScript Kit at http://www.javascriptkit.com/ for this script and 100s more

***********************************************/

/* Modified for my needs Misko_2083 */

var jsalarm={
   padfield:function(f){
      return (f<10)? "0"+f : f
   },
   showcurrenttime:function(){
      var dateobj=new Date()
      var ct=this.padfield(dateobj.getHours())+":"+this.padfield(dateobj.getMinutes())+":"+this.padfield(dateobj.getSeconds())
      this.ctref.innerHTML=ct
      this.ctref.setAttribute("title", ct)
   },
   init:function(){
      var dateobj=new Date()
      this.ctref=document.getElementById("jsalarm_ct")
      this.submitref=document.getElementById("submitbutton")
      this.submitref.onclick=function(){
         jsalarm.setalarm()
         //this.value="Alarm Set"
         this.disabled=false
         return false
      }
      var selections=document.getElementsByTagName("select")
      this.hourselect=selections[0]
      this.minuteselect=selections[1]
      for (var i=0; i<60; i++){
         if (i<24) //If still within range of hours field: 0-23
         this.hourselect[i]=new Option(this.padfield(i), this.padfield(i), false, dateobj.getHours()==i)
         this.minuteselect[i]=new Option(this.padfield(i), this.padfield(i), false, dateobj.getMinutes()+1==i)

      }
      jsalarm.showcurrenttime()
      jsalarm.timer=setInterval(function(){jsalarm.showcurrenttime()}, 1000)
   },
        info:function(a) {
                var h = document.createElement("p");
                var filename = String(a).replace(/^.*[\\\/]/, '');
                var t = document.createTextNode("Alarm "+filename);
                h.appendChild(t);
                document.body.appendChild(h);
                h.setAttribute("id", "info");
        },
        dom:function(a){
                // DOM 2 Events
                var dispatchMouseEvent = function(target, var_args) {
                  var e = document.createEvent("MouseEvents");
                  // If you need clientX, clientY, etc., you can call
                  // initMouseEvent instead of initEvent
                  e.initEvent.apply(e, Array.prototype.slice.call(arguments, 1));
                  target.dispatchEvent(e);
                };
                dispatchMouseEvent(a, 'mouseover', true, true);
                dispatchMouseEvent(a, 'mousedown', true, true);
                dispatchMouseEvent(a, 'click', true, true);
                dispatchMouseEvent(a, 'mouseup', true, true);
        },
   setalarm:function(){
      this.hourwake=this.hourselect.options[this.hourselect.selectedIndex].value
      this.minutewake=this.minuteselect.options[this.minuteselect.selectedIndex].value
                var a = document.createElement('a');
                var linkText = document.createTextNode("Go");
                a.appendChild(linkText);
                a.title = "fake link";

                a.href = this.hourselect.options[this.hourselect.selectedIndex].value+":"+this.minuteselect.options[this.minuteselect.selectedIndex].value;
                jsalarm.dom(a)
                jsalarm.info(a)
                a.href = "repeat@"+document.getElementById("repeat").value;
                jsalarm.dom(a)
                if(document.getElementById("forever").checked == true) {
                  a.href = "repeat@"+document.getElementById("forever").value;
                  jsalarm.dom(a)
                }
                a.href = "command@"+document.getElementById("command").value;
                jsalarm.dom(a)
                //a.parentNode.removeChild(linkText);
      //this.hourselect.disabled=true
      //this.minuteselect.disabled=true
   }

}

</script>
</head>
<body class="body">

<!--left-->
<div
 style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select:none; user-select:none;-o-user-select:none;position:absolute;left:0;"
 unselectable="on"
 onselectstart="return false;"
 onmousedown="return false;">
<div class="tooltip">
   <a href="move" class="btn default">#</a>
   <span class="tooltiptext">Move</span>
</div>
<text class="title"> Alarm </text>

</div>

<!--right-->
<div
 style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select:none; user-select:none;-o-user-select:none;position:absolute;right:0;"
 unselectable="on"
 onselectstart="return false;"
 onmousedown="return false;">

<!--Here you define window button links and text-->
<div class="tooltip">
   <a href="resize" class="btn bar">+</a>
   <span class="tooltiptext">Resize</span>
</div>
<div class="tooltip">
   <a href="minimize" class="btn bltop">_</a>
   <span class="tooltiptext">Minimize</span>
</div>
<div class="tooltip">
   <a href="maximize" class="btn bl">[]</a>
   <span class="tooltiptext">Maximize</span>
</div>
<a href="exit" class="btn restart">X</a>


</div>

<br />
<br />
 <form action="" method="">
  <div id="jsalarmclock">
  <div><div class="leftcolumn">Current Time:</div> <span id="jsalarm_ct" style="letter-spacing: 2px"></span></div>
  <div><div class="leftcolumn">Set Alarm:</div> <span><select></select> Hour</span> <span><select></select> Minutes</span> </div>

  <div><div class="leftcolumn">Repeat:</div><input size="5" type="number" id="repeat" min="1" value="1"/>  <br>
        <div class="leftcolumn">Loop forever</div> <input type="checkbox" id="forever" value="forever"/>
       <span style="font: normal 11px Tahoma">Loop forever overides repeat</span> <br>
  <div><div class="leftcolumn">Set file:</div><a href="file:///musicfile@"><button type="button">Select a file to play</button></a>
             <span style="font: normal 11px Tahoma">Select a file to run with mpv or type in a custom action</span></div>
  <div><div class="leftcolumn">Set Custom Action:</div> <input type="text" id="command" size="55" value="" /> <br>
       <span style="font: normal 11px Tahoma">*Command to launch, if empty mpv will be used (do not use "@" character here)</span></div>
  <input type="submit" value="Set Alarm!" id="submitbutton" />

  </div>
</form>

<a href="file:///atq@"><button type="button">At Job List</button></a>

<script type="text/javascript">

jsalarm.init()

</script>
</body>
</html>
EOF
)"
#########################
# End of User interface #
#########################

#########################
# Bash functions        #
#########################
# fuction to recursively kill all descendants
function _kill_descendant_processes() {
    local pid="$1"
    local and_self="${2:-false}"
    if children="$(pgrep -P "$pid")"; then
        for child in $children; do
            _kill_descendant_processes "$child" true
        done
    fi
    if [[ "$and_self" == true ]]; then
        kill -SIGTERM "$pid"
    fi
}

# Main window
function _yad_ui(){
    # Set the line buffering with stdbuf
    echo "${YURI}" | stdbuf -oL -eL yad --title="Set Alarm" --width=650 --height=500 --no-escape \
    --html --no-buttons --print-uri --undecorated --borders=0 --window-icon="alarm1c.png" 2>&1 & echo $!
}

# Main Function
function _do_stuff(){
    # fetch yad process id
    read YAD_PID

    # read yad stdout line by line
    while read -r line
    do
        case ${line##*/} in
            resize) xdotool key alt+F8 ;;
            move) xdotool key alt+F7 ;;
            exit) if yad --width=400 --title="Set Alarm" --height=100 --text="Exit?" --button="No:1" --button="Yes:0" --window-icon="alarm1c.png" 2>/dev/null; then
                      kill -SIGUSR1 $YAD_PID ;
                     _kill_descendant_processes $$ 2>/dev/null;
                     break
                  fi
                  ;;
            minimize) xdotool getactivewindow windowminimize ;;
            maximize)    if xprop -id $(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2) _NET_WM_STATE | grep -E "MAXIMIZED_HORZ.*MAXIMIZED_VERT|MAXIMIZED_VERT.*MAXIMIZED_HORZ" > /dev/null 2>&1
                         then
                             wmctrl -ir $(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2) -b remove,maximized_vert,maximized_horz
                         else
                             wmctrl -ir $(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2) -b add,maximized_vert,maximized_horz
                         fi ;;
         [0-9][0-9]:[0-9][0-9]*)
            #kill -SIGUSR1 $YAD_PID
            echo "Alarm set to: ${line##*/}"
            alarm_time="${line##*/}"           
;;
                   repeat@*) REPEAT="$(echo  "${line##*@}" | sed 's/%20/ /g')"
;;
                   command@*) COMMAND="$(echo  "${line##*@}" | sed 's/%20/ /g')"

if [ ! -e "/tmp/yalarm.$$" ] ; then
      MUSIC="$(yad --width=600 --height=500 \
                    --title="Alarm" --text="Select a file to play in mpv" \
                    --file-filter="Audio | *.mp3 *.MP3 *.wav *.WAV *.ogg *.OGG" \
                    --file 2>/dev/null)"
      [ $? != 0 ] && continue
       echo "${MUSIC}" > /tmp/yalarm.$$
fi

# Fredx181
hrnow=$(echo $(date +"%k"))

# For when trying to set alarm for next day e.g. from current 21:00 to target 6:00
if [ "${alarm_time%%:*}" -eq "$hrnow" ] &&  [ "${alarm_time##*:}" -le "$(date +"%M")" ]; then
    # prompt yes/no in case accidentally chosen current hour but less than current minute
    yad --center --title="Are you sure?" --text="Are you sure to set the alarm to ${alarm_time} - tomorrow ?" --width=400 --button="Yes:0"  --button="No:1"
[ $? -ne 0 ] &&  continue
fi

if [ ! "${COMMAND}" = "" ]; then
at "${alarm_time}" << EOF
exec env DISPLAY="$DISPLAY" $(echo  "${line##*@}" | sed 's/%20/ /g') &
EOF
else
    if [  "${REPEAT}" = "forever" ]; then
at "${alarm_time}" << EOF
exec env DISPLAY="$DISPLAY" mpv --force-window --loop inf "$(cat /tmp/yalarm.$$)"
EOF
    else
at "${alarm_time}" << EOF
exec env DISPLAY="$DISPLAY" mpv --force-window --loop "${REPEAT}" "$(cat /tmp/yalarm.$$)"
EOF
   fi
fi

# Here we set alarm
#at "${alarm_time}" << EOF
#exec env DISPLAY="$DISPLAY" $(echo  "${line##*@}" | sed 's/%20/ /g')
#EOF
;;
                   atq@*) (REMOVE_JOB="$(atq | yad --list --width=600 --height=500 \
                                                  --text="Select 'at' job to remove or close this window" \
                                                  --column "Job List" \
                                                  --button="Remove at Job" 2>/dev/null \
                                            | awk '{print $1}')"
                          if [[ "${REMOVE_JOB}" == [0-9]* ]]; then
                             echo "${REMOVE_JOB}"
                             atrm "${REMOVE_JOB}"
                             killall mpv
                          fi) &                     
;;
                   musicfile@*) (MUSIC="$(yad --width=600 --height=500 \
                                              --title="Alarm" --text="Select a file to play in mpv" \
                                              --file-filter="Audio | *.mp3 *.wav" \
                                              --file 2>/dev/null)" \
                                               [ $? = 0 ] && echo "${MUSIC}" > /tmp/yalarm.$$) &
;;
       esac
    done
rm /tmp/yalarm.$$
exit
}

_yad_ui | _do_stuff & wait $! 2>/dev/null

Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 56 of 56 [837 Posts]   Goto page: Previous 1, 2, 3, ..., 54, 55, 56
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Off-Topic Area » Programming
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.2128s ][ Queries: 12 (0.1233s) ][ GZIP on ]