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 Sat 21 Sep 2019, 17:17
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 36 of 49 [728 Posts]   Goto page: Previous 1, 2, 3, ..., 34, 35, 36, 37, 38, ..., 47, 48, 49 Next
Author Message
stemsee

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

PostPosted: Fri 18 Jan 2019, 09:40    Post subject:  

I am interested to know what other ways I can utilise exclusively (time slots) a yad dnd panel which is part of --notebook --paned gui.

So far I am using tee together with a variable which that yad dnd element is piped to. This gives two pipes out of the dnd. When I want only the tee output I redifine the variable to tap=/dev/null . It works. But I found that I can also define the output of the dnd by association, dndout=$(yad --dnd | tee /tmp/outdnd &>$tap &) &, and seems to work without affecting its function in the --notebook gui.

I want to know how many pipes I can feed to without using tee... is this possible in theory
Code:
dndout=$(yad --plug=$$ --tabnum=2  --dnd &>$tap &>$apt &>$pat &) &


currently
Code:
yad --listen --plug=$$ --tabnum=1 --item-separator=" " --form --cycle-read --columns=2 --field=A --field=0 --field=1 --field=2 --field=3 --field=4 --field=5 --field=6 --field=7 --field=8 --field=9 --field=10 <& 2 &
yad --plug=$$ --tabnum=2 --text="\t\t\t\t\t\t\tDnD panel\n\tClick a button\n\tThen Drag the mac address here!" --dnd | tee $pat 1>$tap &
yad --geometry=$(cat $camino/geometry/$WINDOWTITLE) --title="$WINDOWTITLE" --title=Bluetooth --window-icon=$pics/bluetooth-active.png --key=$$ --columns=2 --paned --height=220 --width=300 --tab=Found --tab=DnD --button="Command":"echo command" --button="Scan":"echo btscanfn" --button="Remove":"echo rmdev" --button="Connect":"echo btcon" --button="Disconnect":"echo btdisconfn" 1>/tmp/Wifi-TrayNet/btfn &
Back to top
View user's profile Send private message MSN Messenger 
misko_2083


Joined: 08 Nov 2016
Posts: 82

PostPosted: Sun 20 Jan 2019, 09:11    Post subject:  

stemsee wrote:
I am interested to know what other ways I can utilise exclusively (time slots) a yad dnd panel which is part of --notebook --paned gui.

So far I am using tee together with a variable which that yad dnd element is piped to. This gives two pipes out of the dnd. When I want only the tee output I redifine the variable to tap=/dev/null . It works. But I found that I can also define the output of the dnd by association, dndout=$(yad --dnd | tee /tmp/outdnd &>$tap &) &, and seems to work without affecting its function in the --notebook gui.

I want to know how many pipes I can feed to without using tee... is this possible in theory
Code:
dndout=$(yad --plug=$$ --tabnum=2  --dnd &>$tap &>$apt &>$pat &) &


currently
Code:
yad --listen --plug=$$ --tabnum=1 --item-separator=" " --form --cycle-read --columns=2 --field=A --field=0 --field=1 --field=2 --field=3 --field=4 --field=5 --field=6 --field=7 --field=8 --field=9 --field=10 <& 2 &
yad --plug=$$ --tabnum=2 --text="\t\t\t\t\t\t\tDnD panel\n\tClick a button\n\tThen Drag the mac address here!" --dnd | tee $pat 1>$tap &
yad --geometry=$(cat $camino/geometry/$WINDOWTITLE) --title="$WINDOWTITLE" --title=Bluetooth --window-icon=$pics/bluetooth-active.png --key=$$ --columns=2 --paned --height=220 --width=300 --tab=Found --tab=DnD --button="Command":"echo command" --button="Scan":"echo btscanfn" --button="Remove":"echo rmdev" --button="Connect":"echo btcon" --button="Disconnect":"echo btdisconfn" 1>/tmp/Wifi-TrayNet/btfn &

Hi there Stemsee, long time no chat Smile

Thinking that this kind of redirection &>$tap &>$apt &>$pat is possible only in zsh.

About the paned dialog, what is the purpose of the ten fields in the first tab?
Back to top
View user's profile Send private message 
step

Joined: 04 May 2012
Posts: 1197

PostPosted: Sun 20 Jan 2019, 13:41    Post subject:  

Hi stemsee, so you want to fan output to N taps using shell only? What about piping to a "while read; do" loop and echoing to as many files as you need inside the body of the loop? Something like:
Code:

dndout=$(yad --plug --tabnum=2 --dnd |
while read s; do
  echo "$s" >> $tap; echo "$s" >> $apt; echo "$s" >> $path; echo "$s"
done)

_________________
Fatdog64-802|+Packages|Kodi|Findnrun|+forum|gtkmenuplus
Back to top
View user's profile Send private message 
lamplinux


Joined: 21 Jan 2019
Posts: 31

PostPosted: Mon 21 Jan 2019, 02:20    Post subject: Yad Launcher
Subject description: moving icon-name.desktop files to user home folder via chk box
 

Is it possible for yad to display all file names in a folder, i.e. /usr/share/applications... like firefox.desktop google-chrome.destop, etc. and have a chck box next to each listed file displayed in list.

Then user checks the box of each file they want to use in a home folder (directory).

Then upon button click - checked files are then copied from /usr/share/applications to /home/user/yadlauncher/applications ?
Back to top
View user's profile Send private message Visit poster's website 
step

Joined: 04 May 2012
Posts: 1197

PostPosted: Mon 21 Jan 2019, 03:18    Post subject: Re: Yad Launcher
Subject description: moving icon-name.desktop files to user home folder via chk box
 

lamplinux wrote:
Is it possible for yad to display all file names in a folder, i.e. /usr/share/applications... like firefox.desktop google-chrome.destop, etc. and have a chck box next to each listed file displayed in list.

Then user checks the box of each file they want to use in a home folder (directory).

Then upon button click - checked files are then copied from /usr/share/applications to /home/user/yadlauncher/applications ?

Yes. Here's a template you can elaborate on:
Code:

cd /usr/share/local/share/applications/ && ls *.desktop | yad --center --list --column= --checklist --column=file | cut -d'|' -f2 | xargs echo cp -t /dest/dir

This will print the copy command that would be executed. If that's OK delete "echo" from the command to get a working version. Of course change /dest/dir, absolute path to the destination directory, as you see fit.

If you then want to display an icon grid for the files in /dest/dir use:
Code:

yad --icons --read-dir=/dest/dir

_________________
Fatdog64-802|+Packages|Kodi|Findnrun|+forum|gtkmenuplus
Back to top
View user's profile Send private message 
lamplinux


Joined: 21 Jan 2019
Posts: 31

PostPosted: Mon 21 Jan 2019, 03:44    Post subject: RE: yad list help
Subject description: Thank You !
 

Step, Thank You Very much!! I will work on this tomorrow. I will sleep well tonight knowing it will be a productive day having received your help !
Back to top
View user's profile Send private message Visit poster's website 
MochiMoppel


Joined: 26 Jan 2011
Posts: 1903
Location: Japan

PostPosted: Mon 21 Jan 2019, 04:34    Post subject:  

@lamplinux As always step was one step ahead Laughing

Normally the --file dialog is used for such task. That's what it is made for:
Code:
TARGET="/home/user/yadlauncher/applications"
CHECKED=$(yad --title="Please select (multiple) files" --file --geometry=700x500 --button="Copy to $TARGET":0 --button=Cancel:1 --file-filter=*.desktop --multiple --filename=/usr/share/applications/* )
(($?)) && exit
IFS=TMP IFS='|'
cp -t "$TARGET" $CHECKED
IFS=$TMP


The --list dialog with checkboxes is a bit more complicated. I used the sed command to add default values for the checkbox column (without it the dialog would display only every 2nd file of the source directory):
Code:
IFS=TMP IFS=$'\n'
TARGET="/home/user/yadlauncher/applications"
SOURCE=/usr/share/applications
cd "$SOURCE"
SOURCE=$(ls *.desktop | sed 's/^/FALSE\n/')
CHECKED=$(yad  --title="Please select (multiple) files" --list --print-column=2 --separator=$IFS --checklist --geometry=400x600 --column="" --column=Name --button="Copy to $TARGET":0 --button="gtk-cancel":1 $SOURCE)
(($?)) && exit
cp -t "$TARGET" $CHECKED
IFS=$TMP


If it hasn't to be yad you should also consider Xdialog. The beauty here is that you can click anywhere in the line and don't have to target a tiny checkbox:
Code:
IFS=TMP IFS=$'\n'
TARGET="/home/user/yadlauncher/applications"
SOURCE=/usr/share/applications
cd "$SOURCE"
SOURCE=$(ls *.desktop | sed 's/.*/&\n&\nno/')
CHECKED=$(Xdialog  --title="Please select (multiple)files" --ok-label=Copy --stdout --no-tags  --separate-output --checklist  "Copy selected file to\n $TARGET" 400x600 0 $SOURCE )
(($?)) && exit
cp -t "$TARGET" $CHECKED
IFS=$TMP
Back to top
View user's profile Send private message 
lamplinux


Joined: 21 Jan 2019
Posts: 31

PostPosted: Mon 21 Jan 2019, 18:07    Post subject: RE: yad list select
Subject description: Thank You.
 

@MochiMoppel

Thank You. I will use your code tonight and see what it does. I've been using yad for some years now but, I lack experience with bash.

Thank You for code help.
Back to top
View user's profile Send private message Visit poster's website 
lamplinux


Joined: 21 Jan 2019
Posts: 31

PostPosted: Mon 21 Jan 2019, 20:21    Post subject: RE: Adding a couple more options.
Subject description: Expanding on just coping selected .desktop files.
 

Thank you @Step & @MochiMoppel for yad + bash code help.

I would like to expand on this to do the following. Now that I have a starting point I know I can eventually get to what I want to offer to others. (I'm just very slow at it)

Expanding Yad Favorite app launching:

1. Check mark shown for all .desktop files present in base directory.

2. Option for user to remove 1 or more .desktop file from base directory. (If check mark remove, its .desktop file is remove from base directory),

3. Display icon next checkbox for all possible /usr/share/applications/*.desktop files.. (For Example, Reading 3rd line, 5th character and all characters to the right of 5th character to end of line of each icon.desktop file. --- 5th line - "icon=internet_icon).

4. Dropdown or I guess, DND, to allow user to assign each .ldesktop file to specific folders. For example, Internet, Network, Personal, Sparky, Yad, etc.

Does my mod concept sound useful.. What else could this yad script offer to users for each launching of apps, websites, settings, bash commands like "sudo apt update", etc ?
Back to top
View user's profile Send private message Visit poster's website 
oldaolgeezer

Joined: 03 Dec 2006
Posts: 56

PostPosted: Mon 21 Jan 2019, 20:42    Post subject: YAD - Tips
Subject description: a YAD grocery shopping list script
 

It possible for yad to display all grocery item names
and have a check box next to each item displayed in list.
Then the user checks the box of each item they want to buy.
Then upon button click - checked files are then copied to a file

it uses Anthony Tekatch's shopping list.txt file (which can be edited
with your local grocery store's aisle numbers or name with Puppy's Geany editor)
License: GPL
http://unihedron.com/projects/grocget/downloads/grocget-0.6.tar.gz
http://freshmeat.sourceforge.net/projects/grocget
Anthony's original program needs Python, and some Gnome modules but just his list.txt file
(which has two fields: the aisle number followed by the grocery item's name)
can be used from his tar file in this yad script example (to save some initial typing)

and a little editing of MochiMoppel's original Xdialog script from:
http://www.murga-linux.com/puppy/viewtopic.php?p=1016071&sid=4fe9401fedc62e90f7be909e80b63231#1016071

the final resultant file: todaysgroceryshoppinglist.txt can be printed out
or emailed or USB'ed to a smart phone for use in the local grocery store so you
only walk on aisles that have what you are buying.

Thank you: Anthony Tekatch and MochiMoppel

Code:

#!/bin/bash

# It possible for yad to display all grocery names
#     and have a check box next to each listed item displayed in list.
#Then the user checks the box of each item they want to buy.
#Then upon button click - checked files are then copied to a file

# it uses Anthony Tekatch's shopping list.txt file (which can be edited
#     with your local grocery store's aisle numbers or name with Puppy's Geany editor)
#    License: GPL
#    http://unihedron.com/projects/grocget/downloads/grocget-0.6.tar.gz
#    http://freshmeat.sourceforge.net/projects/grocget
#  Anthony's original program needs Python, and some Gnome modules but just his list.txt file
#   (which has two fields: the aisle number followed by the grocery item's name)
#      can be used from his tar file in this yad script example (to save some initial typing)

#  and a little editing of MochiMoppel's original Xdialog script from:
#  http://www.murga-linux.com/puppy/viewtopic.php?p=1016071&sid=4fe9401fedc62e90f7be909e80b63231#1016071

#   the final resultant file: todaysgroceryshoppinglist.txt can be printed out
#        or emailed or USB'ed to a smart phone for use in the local grocery store so you
#             only walk on aisles that have what you are buying.

#  The default value of IFS is a space, a tab, and a newline
IFS=TMP IFS=$'\n'

#  current working directory to be the directory that the script is located in
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"

SOURCE=$(cat list.txt | sed 's/.*/&\n&\nno/')

CHECKED=$(Xdialog  --title="Please select (multiple) items" --ok-label=Select --stdout --no-tags  --separate-output --checklist  "Copy selected item to\n shopping list" 400x600 0 $SOURCE ) 

(($?)) && exit

echo   -e   "$CHECKED"

echo   -e   "$CHECKED"  >   todaysgroceryshoppinglist.txt

IFS=$TMP
Back to top
View user's profile Send private message 
MochiMoppel


Joined: 26 Jan 2011
Posts: 1903
Location: Japan

PostPosted: Mon 21 Jan 2019, 23:58    Post subject: Re: RE: Adding a couple more options.
Subject description: Expanding on just coping selected .desktop files.
 

@lamplinux: Yad may pose some problems. Placing icons next to the checkmarks may be one of them. Earlier in this thread I posted a demo for an icon finder. For this particular use case it is nice to show the icons in their original size, but in your case you might want to have them automatically resized to fit the row height. AFAIK yad can't do that.
Back to top
View user's profile Send private message 
lamplinux


Joined: 21 Jan 2019
Posts: 31

PostPosted: Tue 22 Jan 2019, 03:36    Post subject: Re: RE: Adding a couple more options.
Subject description: Expanding on just coping selected .desktop files.
 

@MochiMoppel - all my desktop icons could be copied and resized automatically to say 16px. Then use the reduced size icons. Would that work ?

Also, I am using Your's and @Step code to also select music files too but, with one issue. I'm using mpg123 (in the background). I stop the play with a killall mpg123 command. The files display in Yad list but, fail to copy to base directory because of blank spaces.

How could I handle blank spaces in Awk so the selected files copy to the target directory ?

Thanks for your help.
Back to top
View user's profile Send private message Visit poster's website 
step

Joined: 04 May 2012
Posts: 1197

PostPosted: Tue 22 Jan 2019, 04:03    Post subject: Re: RE: Adding a couple more options.
Subject description: Expanding on just coping selected .desktop files.
 

lamplinux wrote:
@MochiMoppel - all my desktop icons could be copied and resized automatically to say 16px. Then use the reduced size icons. Would that work ?

Also, I am using Your's and @Step code to also select music files too but, with one issue. I'm using mpg123 (in the background). I stop the play with a killall mpg123 command. The files display in Yad list but, fail to copy to base directory because of blank spaces.

How could I handle blank spaces in Awk so the selected files copy to the target directory ?

Thanks for your help.

if you're using something like
Code:
ls *.mp3 | xargs cp -t /dest/dir

change that to
Code:
printf "%s\0" *.mp3 | xargs -0 cp -t /dest/dir

This will take care of filepaths with spaces in them

_________________
Fatdog64-802|+Packages|Kodi|Findnrun|+forum|gtkmenuplus
Back to top
View user's profile Send private message 
MochiMoppel


Joined: 26 Jan 2011
Posts: 1903
Location: Japan

PostPosted: Tue 22 Jan 2019, 04:39    Post subject: Re: RE: Adding a couple more options.
Subject description: Expanding on just coping selected .desktop files.
 

lamplinux wrote:
@MochiMoppel - all my desktop icons could be copied and resized automatically to say 16px. Then use the reduced size icons. Would that work ?
Depends. I'm not sure what you mean by "copied and resized automatically". If you manage to find the full paths of the .desktop icons, copy and resize those icons and then reference them in your yad list it should work.

Quote:
Also, I am using Your's and @Step code to also select music files too but, with one issue. I'm using mpg123 (in the background). I stop the play with a killall mpg123 command. The files display in Yad list but, fail to copy to base directory because of blank spaces.
If you refer to my code please explain which of the 3 demos fail. They would fail if SOURCE path contains spaces (in which case you would have to put the path - like TARGET - in quotes, e.g SOURCE="/my/music folder").Since files display in the list as you wrote, this can't be the reason

Quote:
How could I handle blank spaces in Awk so the selected files copy to the target directory ?.
Awk? Where does awk come into play?
Back to top
View user's profile Send private message 
fredx181


Joined: 11 Dec 2013
Posts: 4091
Location: holland

PostPosted: Tue 22 Jan 2019, 12:42    Post subject:  

MochiMoppel wrote:
For this particular use case it is nice to show the icons in their original size, but in your case you might want to have them automatically resized to fit the row height. AFAIK yad can't do that.


yad can scale the icons with list display, but only if you specify the name of the icon only, without extension (instead of full path) and should be in icon search path (e.g. /usr/share/pixmaps), so then instead of e.g.
Code:
 /usr/share/pixmaps/browser.png

Just:
Code:
browser

But probably not very useful info for what @lamplinux wants, In case of listing .desktop files, on puppy the "Icon=...." has mostly the full path specified, so icons may show with different sizes then.

Fred

_________________
Dog Linux website
Tinylinux blog by wiak
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 36 of 49 [728 Posts]   Goto page: Previous 1, 2, 3, ..., 34, 35, 36, 37, 38, ..., 47, 48, 49 Next
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.1604s ][ Queries: 13 (0.0939s) ][ GZIP on ]