I've been experimenting with xlunch (or xluncher) and thought I'd share the way I've set it up.
There are 2 files to worry about. The script in /usr/local/bin that generates the menu and the other is the entries.dsv file which contains the menu items and which by default is generated and updated automatically.
There are some sample scripts /usr/local/bin/xluncher*
Here is one of them. /usr/local/bin/xluncher2 Note it references the entries.dsv that is automatically updated.
Code: Select all
#!/bin/bash
[ -f $HOME/.config/xlunch/entries.dsv ] && ENTRIES=$HOME/.config/xlunch/entries.dsv || ENTRIES=/etc/xlunch/entries.dsv
xlunch -i $ENTRIES -I 5 -T 5 -a --iconsize 16 --columns 4 --sideborder 2% --background /usr/share/wallpapers/wp.jpg --font FreeSans/11 --paddingswap --leastmargin 1 --border 3% --borderratio 30 --sideborderratio 20
Here is one that I modified. Type "xluncher --help" for a list of parameters. I changed the link to the entries.dsv file to one I manually created and doesn't get updated.
Code: Select all
#!/bin/bash
#there is no /etc/xlunch/entries.dsv, if this starts to fail, check if one was #created somehow and delete it
[ -f /root/xlunch/entries10feet.dsv ] && ENTRIES=$HOME/xlunch/entries10feet.dsv || ENTRIES=/etc/xlunch/entries10feet.dsv
xlunch -i $ENTRIES -x +10 -y +10 -w 1080 -h 1000 --dontquit -W --border 5% --sideborder 10% --borderratio 5 --sideborderratio 50 \
--background /root/milkywayphone.jpg --textcolor f59e42 --font FreeSans/22 \
-I 5 -T 5 -a --columns 2 \
--paddingswap --leastmargin 1 --iconsize 72 \
Then I took a copy of the automatically generated entries.dsv and copied it to /root/xlunch. Then I can run this script to generate a list of any new menu entries so I can paste them into the manually created entries10feet.dsv if I want to.
Code: Select all
#!/bin/sh
#Generates /root/Desktop/NewXLunchDiffs.txt by
# root@BusterLenovoDog:~# diff /root/xlunch/entries.dsv /root/.config/xlunch/entries.dsv > /root/Desktop/NewXLunchDiffs.txt
# Then, copy /root/.config/xlunch/entries.dsv to /root/entries.dsv for next time.
diff /root/xlunch/entries.dsv /root/.config/xlunch/entries.dsv > /root/Desktop/XLunchDiffs.txt
Which generates a file like this.
Code: Select all
0a1
> Freetube in DebianLinked;/usr/share/pixmaps/yt.png;/live/image/DebianLinked/FreeTube64-portable/LAUNCH_NL
139a142
> Vivaldi In Debian Linked;/live/image/DebianLinked/Vivaldi-portable/vivaldi/product_logo_256.png;/live/image/DebianLinked/Vivaldi-portable/LAUNCH_NL
which you can cut and paste to update your manually created files.
There is some sort of error checking. It won't let you edit the individual lines so that they don't match the .desktop files exactly. All the entries on the list above the bad entry will just not be there.
I've been using "Menumaker" to create new .desktop files for scripts that don't have them. I need to figure out a more sensible way, but I've been forcing the menu to manually refresh by reinstalling a small application in synaptic 2x.
I installed it from Fred's repo in Fossapup with peebee's lxde addon. It opened and the files seemed to all be in the right places, so ideally this will all work on Puppy too.
The other thing I've played around with is using "run-as-user" from root and sudo from puppy to run as a different user. Might be useful...