April 2017

Last month was quite a large issue and I don't plan on making every edition as big. Having said that, it will depend on articles I receive during the month.

This month I have included a short BIO on jamesbond. Jamesbond is a shy man but one with very highly developed computer skills.

Last month I asked for volunteers to write an article about Steam, the games platform. Bark_bark_bark has answered the call and his article is included in this months edition.

Lately my interest in kodi has been reinvigorated. Kodi is a Multi Media Control Centre application. It really is a slick package and seems to work on most versions and flavours of Puppy. In the past I only used one or two add-ons. I have now discovered kodi builds. These are collections of add-ons. If you install a kodi build called wookie for example, you get over 200 add-ons. I'm sure you will hear more about kodi in future editions. Forum link to kodi-16.1 for tahrpup 64. Maybe some of you kodi experts out there can write an article or two.

If you frequent the Puppy Linux Forums you may have noticed the Puppy Newsletter topic/thread has now been locked. I have created a new topic called Puppy Linux Newsletter. The reason was to give me access to the first post which I can edit when necessary. It's not possible to change posts made by other people, not even Flash as a moderator can do this.

I generally keep a close eye on the forums as it's my daily newspaper. I must admit I have been taking an interest in forum member Labbe5. He is a prolific poster of new and interesting information. How to do it.

I received advice from kerl that Apple devices could not view images within the newsletter. I'm surprised it took three editions to discover this. Anyway I have solved this problem and it shouldn't be an issue for future editions.

The anonymous author from last month turned out to be Mike Walsh, thanks Mike.


The Puppy Linux Forums is the main source for a lot of the information repeated here. Where appropriate, links will be provided so you can read first hand about the distros development. This section will likely just provide highlights as a starting point.

A review of LaZY_FReD-2.0.0 by oldyeller.

A second look at Debian Dog by 6502coder.

There's a couple of new pups that caught my eye this month:

MX 16 experimental by zagreb999. What stood out to me was it's size, 1.3GB, Wow.

The other distro that looks interesting is Slacko5.7-2017B and eeePC 2017 "B". The latest release 10 March 2017. I gave it a quick spin in Qemu and it was very fast.


Written by oldyeller

Hello Puppy World/Kennel,

This review is on RSH's LaZY FReD the Free Repository Downloader.

This is a very simple program that you can download SFS-Modules, pet files and iso's from servers.
This does work on a lot of different puppies, so you should give it a try, OK let us take a look at this
awesome program.

The very first thing that opens up is the Preferences. Here is where you can choose where you want
what you have chosen to be downloaded to and what server you want to use.

The icons circled in red allow you to choose where you want to download your stuff, and the one in blue
allows you to choose the server you want. Once you are done and press ok it takes you to the main
program that does it all.

This is the muscle of the program. You can edit the server list - add or subtract - that button has a blue
circle around it. The drop down list has a red circle. With this list you choose who on that server you want to
download from. In this picture I have it set for fluxpup since it is the only way to get stuff from the
server that I am on.

As you can see it shows what is in /mnt/home/ and what is on the server, for example SFS and Pets. It also has
tabs for other services, like the iso's that may be on the server or /mnt/home/.

As you can see this is a great program that RSH has done for us to use, I have it installed in FluxPup
and it is worth having in your puppy as well. RSH/LaZY Puppy has a really great talent to see and
upgrade programs that he finds in the kennel.

This is one program that should be in everyone's puppy to get the goodies they want to have.

Thanks RSH/LaZY Puppy

A Second Look at Debian Dog

Written by 6502coder

Last month I described my initial experiences with the Rox-Jwm version of Debian Dog Jessie ("DDJ"). This time we'll take a look at the OpenBox-Xfce version. As a reminder, the Debian Dogs are not Puppies. They are fairly Puppy-like in look and feel, and share Puppy's anti-bloat philosophy, but structurally they are Debian systems.

To be clear, the OpenBox-Xfce version of DDJ does not implement a full Xfce desktop environment. As developer fredx181 himself has put it, " fact this DebianDog default WM setup is basically Openbox. Just added xfce-desktop, xfce4-panel (and thunar) to it ..." For more details about what's in this version of DDJ, see the web site:


Last month I installed the Rox-Jwm version of DDJ to a flash drive using the LiveBoot-3 method for persistence. For the OpenBox-Xfce version I chose to do a frugal install to the hard-drive using the Porteus method for persistence. The Porteus method offers a lot of flexibility in controlling how and when changes are saved, similar to the options available for frugal installs in recent Puppies.

After using GParted to set up a fresh 10 GB ext3 partition on the hard drive, I booted the DDJ OpenBox LiveCD, and clicked on the installer's desktop icon. The DDJ portion of my menu.lst looks like this:

title DebianDog Jessie (Porteus, SaveOnExit) on sda2
root (hd0,1)
kernel /live/vmlinuz1 noauto from=/ changes=EXIT:/live/ forcepae -- forcepae
initrd /live/initrd1.xz

The "changes=EXIT:/" bit arranges things so that no changes are saved until you shut down, at which point you are given a choice of saving or not. It's also possible to do a save "on demand" during a session. I've always used ordinary Puppy frugal installs, so this was an interesting change of pace. The setup I chose saves changes to a folder instead of a file, although using a file is also an option.

Even though DDJ OpenBox-Xfce is compiled for PAE, the "forcepae -- forcepae" at the end of the kernel line coerces my nominally "noPAE" Celeron M processor into accepting it.


The Github web site for DDJ has a list of "changes or fixes found after 16.10.2016", which is to say, after this ISO was released. A full update via apt-get took care of most of these, and the rest I installed individually using Synaptic or apt-get.

As I mentioned last time, one of the nice features of the Debian Dogs is the kernel upgrade utility. You cannot simply grab new kernels from the Debian repos because the kernels have to be tweaked to work with Debian Dog. However, with DDJ's kernel upgrade utility, updating the kernel is a snap.

The next thing I tried was a remaster, using the Quick-Remaster GUI. This too was very simple.

Impressions of DDJ OpenBox-Xfce

Having updated everything and safely preserved my basic configuration settings, I started test-driving. All the basic apps worked without problems, and in particular I was pleasantly surprised to find the media player working straightaway. Getting wireless Internet to work required just finding and installing the correct firmware package, and for this mcewanw's thread on the Murga forum was a very helpful guide.

Overall, the OpenBox-Xfce version of DDJ is less Puppy-like than the Rox-Jwm version. This was my first experience with Xfce, so it was both interesting and a little frustrating to work with something new. As with the Rox-Jwm version, it's nice having the support of the Debian repos and timely access to security fixes. I also welcomed the "opportunity" to learn more about the innards of Debian, although obviously this won't be everyone's cup of tea.

Lastly, and sadly, I feel obliged to mention that the Debian Dog project is currently in a state of some upheaval, and its future seems unclear. So I can't in good conscience recommend it except to the adventurous, with the warning that they might abruptly find themselves on their own.


In a review of DDJ OpenBox-Xfce for Linux Insider dated 25 Feb 2017, writer Jack Germain raises a few issues which I would like to address.

Germain describes the desktop environment as "disorganized" and particularly criticizes the main menu as "a mash up." I think the main menu is okay, but then I don't mind doing a certain amount of hunting around to find what I want.

Germain calls the documentation "sparse." Actually, there is a fair amount of documentation but it is certainly scattered around. Before beginning my tests of DDJ, I read through everything I could find on the Murga forum and the DDJ Github site -- twice -- making notes as I tried to sort out the scattered and sometimes contradictory information. This preparation made things considerably easier for me than they otherwise would have been.

Germain says he sometimes had trouble setting up persistence and the DDJ version of personal save files. I did too, as the documentation on the various boot and persistence options and how to implement them could use a good re-write. I didn't run into any installation problems that couldn't be solved with the application of some common sense -- meaning "Ignore the documentation when it is obviously wrong." -- and a little experimentation, but it's definitely not as simple as a typical Puppy installation and not something everyone would tolerate. As I said, Debian Dog is for the adventurous.


A review of Steam by bark_bark_bark.

Written by bark_bark_bark

Steam on Puppy Linux

If you're a gamer you might know about a thing called Steam and wonder if you can run it.

First off what is steam?

Steam is a digital media distribution that sells games. But Steam isn't just a platform for buying games, it's also a very social platform as well. When you buy a game on steam, you get to keep it for ever even if the developer pulls the game off the store. There also is no limit to how much you can download and install games you bought. (Although I wouldn't recommend doing it on several different computers though.)

As for the social aspects, well you can add people to your friends list and there are many groups on Steam. I myself am a member of quite a few groups on the platform and I've made a few friends in many games I play. Now for the next question, how can I install and run Steam on linux?

Well there is a native Steam client available for linux and Ubuntu-compatible pups can install it easily from Ubuntu's package repository. I can't comment how you can install Steam on non-Ubuntu compatible pups, but there should be a way. Steam is compatible with both 32-bit and 64-bit linux so that shouldn't be an issue for users of either 32-bit and 64-bit pups. Once you install the package you can launch Steam by clicking on the icon in the Puppy's Start Menu, and it will download the full package on its first start.

If you have an existing account, you will need to check your phone or email since Steam Guard needs to verify it is YOU logging in. If you create a new account, this will be enabled by default as well. For new users, you can get games in the Store. There are some games on the Steam store available for free, but most games require payment. You can filter the store to only show games compatible with Linux, so you don't buy a game that only runs on Windows.

What games will run? There are many games that will run on the Linux for Steam, but there are too many to list here so I won't. I would say a great place to start is with classics like Valve's Half-Life (1998) and Half-Life 2 (2004). If you are looking to get into something more competitive, Counter-Strike: Global Offensive also runs on Linux. Maybe you don't like shooters, well puzzle games like Portal have native linux versions and the Portal games are pretty fun. What about Skyrim? Sadly Bethesda refuses to support Linux period, even with old Dos classics like Doom. Skyrim will run under WINE though, but that means you'll have to manage two Steam installations at the same time.


This month, a brief look at jamesbond.


Written by jamesbond

I have been a tinkerer for as long as I can remember.
I cracked toys open just to find out how they worked,
to the annoyance of my parents.

Linux however was not love at first sight; it was FreeBSD.
FreeBSD was about stability. Linux was about features.
FreeBSD was tidy. Linux was messy.

I found DSL. It was spectacular for its size and its functionality.
But its kernel did not support my PC. Odd screen resolution and no sound.
DSL led me to Puppy. All the goodness that DSL was, and some more.
An OS I can tinker with, without fear of breakage (pfix=ram fixes everything).

More importantly, Puppy has this "tinkerer's club" called Murga forum.
Great support, great folks, great ideas, and most importantly, great attitude.

Like many others, I graduated from "just a user" to "user-contributor".
I wrote PSIP (Puppy SIP Phone) as a way to give back to the community.
I also wrote Xannotate (desktop annotation tool) and a screenshoot tool.
I also maintain some "dead" projects which is core to Puppy (and Fatdog).

My involvement with Fatdog started with me being a user of Fatdog 110.
A puplet based on Puppy Dingo (4.0) with SMP kernel and Openbox.
When Fatdog became Fatdog64 (first 64-bit puplet in 2009); I was asked to join forces.
I helped to grow Fatdog64 into independence; and expanded its territory with FatdogArm.

My blog:
My wiki (less often updated):
My projects:

My "mission" before Fatdog and Puppy: (first entry).
The spelling was wrong but it was me all right.
You can get the full package here:


This is a good section to discuss how to compile software. Compiling is not everyone's cup of tea but the more people that can manage it, the longer life Puppy will have.

The hardest part of compiling is the build recipe as there are so many options. Let's include proven recipes here.

Psip (PuppyPhone)

Written by jamesbond and smokey01

I've just had a quick look to see what versions of Psip are being used on some of the later pups. It appears not all are using the latest version, 1.41. I recommend upgrading as 1.41 is able to use multiple accounts although only one at a time but it's easy to switch between them.

This is where jamesbond keeps the Psip source. Type User ID as anonymous and enter the large password as displayed.

Now click on Files then click on the file name inside the square brackets. Currently it's called 0c3150ce6d.
This will take you to another page where you can choose to download a tarball or zip file.

Psip requires two additional dependencies. The main engine behind Psip is pjsua which can be obtained here. Originally jamesbond used version 1.10 of pjsua. Things have progressed quite a bit from there and the current version is 2.6. The 1.x series was voice only and video was introduced in the 2.x series. Having said that video has not been implemented in Psip.

The other dependency is osxcart and it can be obtained here.

The build instructions.

Psip is built as a single binary. To upgrade all you have to do is replace your existing binary with the new one. If I remember correctly I think Psip 1.41 will read the old config file but older versions of Psip cannot read the newer config file as additional fields have been included. It might pay to make a copy of your old config file before you run the new binary. The config file is located in /root/.psip.conf


Written by smokey01

A generic shell script compiler. Shc takes a script, which is specified on the command line and produces C source code. The generated source code is then compiled and linked to produce a stripped binary executable.

Read about it online.

Download it from here:

You don't even have to compile it as the binaries are small and have been included in the package.

The normal commands are used to compile shc:

./configure --prefix=/usr
make install

To compile the testvortex script discussed here, type the following into a terminal:

shc -r -o vortex -f testvortex

Now you should have a redistributable binary called vortex alongside your testvortext script.

Scripts & Code

There are some clever people that use Puppy Linux. This is a good place to share some of their useful scripts.


Written by smokey01

DropBox is an application where files are synchronised between all of your applications. This is quite nice but it can consume a lot of bandwidth. For many this is not an issue but for some it is.

Some time ago I needed a way of sharing files with some of my friends with a minimum of fuss, so CatDude and myself with a little help from 01micko developed what we call the Vortex.
Most people don't have problems downloading files from the internet. It can be done with a browser, wget or many other methods. The problem is putting the files up on the internet. It's not difficult but I have spent many hours explaining how to use a FTP (File Transfer Protocol) client like gFTP or FileZilla.

The Vortex is a simple script that uploads files using curl. The script can either sit on the desktop or in a folder. You can even make the script look fancy by assigning an icon to it. Just drag and drop file(s) onto the script and they will disappear into the vortex.

Below is a vortex script that will upload files to a test area on my server. To see if the upload was successful click on this link.


for i in "$@"; do
case "${i}" in
curl -T "${i}" -u $USER:$PASS &
curl -T "${i}" -u $USER:$PASS &

As you can see from the above script, you can segregate files according to their filename and place them in different folders.

Now this is all very nice but what if you don't want to disclose your logon credentials? This is where shc comes in handy. Shc is a script compiler and allows you to turn the testvortex script or any other script for that matter into a binary.

Learn more about
shc here.

Tips & Tricks

Tip & Tricks are simple little actions you can take to make your life easier when using Puppy. You will probably know most of the tips but there are always new users that don't.
Tab Browsing

Written by smokey01

Over the years I have had quite a few people ask me what Tab Browsing is all about. I think it's safe to say most modern browsers these days have Tab Browsing.

It simply means you can have more than one web site or page open at a time on a different tab. Here's an example of two tabs open, one at the forums and the other at my site,

Now to switch between the different sites all you do is click on the tab. You can have many tabs open at the same time. It's normally only restricted by available memory however, too many tabs will reduce performance.

In your browser settings you can configure the browser so it only uses a single tab. In other words each time you navigate to a different site it is loaded in the same tab. This means a lot of Back and Forward button clicking. Many people like single tabs as it's less cluttered but there are times when opening a second or third tab is useful. This can be done by clicking on a hyperlink and pressing the Ctrl key at the same time. It is also possible to configure the browser so each time a hyperlink is clicked, a new tab opens.

To close the tab but not the browser, click on the little red square with the white x, on the tab. If your browser doesn't have this facility then right click on the tab and select Close Tab.

My Browser of choice is Seamonkey and the red tab closing facility is an additional plug-in called SeaTab X 2.

Follow a forum member

Written by smokey01

If you want to follow someone in the forums, follow these steps:
(It's probably a good idea to login as some topics require this)

1. On the Forum index page, click on Memberlist,
2. In Find a username type the user you are looking for,
3. In the search results, click on the username
4. Now click on Find all posts by username (whoever you searched for)

You will be provided with all posts by the user you searched for with the latest posts at the top.

Now you can be a post stalker and I take no responsibility for bad behaviour.


Written by smokey01

SFS or Squashed File System files are a very under utilised resource.

Basically an SFS is a stand alone file system that can be merged into your existing file system. This is possible because Puppy uses a file layering methodology. This will explain it better than me.

There are two main reasons I like to use SFS files:

1. If I'm unfamiliar with a package that I would like to try, I usually extract it then convert it to an SFS. There are a few utilities around that will help you do this but most pups have a script called dir2sfs. Just run this script in a terminal at the same directory level as the extracted package. Load the SFS and try it out. When you're finished, simply unload the SFS. This method does not install packages to your savefile or save directory so it keeps things small, neat and tidy.

2. The other reason I use SFS files is to make a collection of my favourite software. For example I might have an SFS that contains all of my favourite music software and another for photography. These are SFS that I would not use daily so they just sit there waiting to be loaded. When I need them, I load them.

Over the years there have been some great utilities developed to help you make these SFS files. New users probably don't know they exist unless they've been rooting through old posts on the Puppy Linux Forums. The two methods below allow you to combine multiple .pets into a single SFS file.

This method by jpeps.

Here is another way using PaDS by RSH.

If you search for pet2sfs with you should receive plenty of hits.

How not to delete a desktop drive icon

Written By Bigpup

Ever delete a desktop drive icon, by right clicking on icon?

All you wanted to do was access the right click menu.

It is very easy to have the right click menu open and accidentally hit "remove item".
Because that is what the mouse pointer usually is over, "remove item".

What works for me is to right click on the name, under the drive icon.
sda1, sda2, sdb1, etc...

That will put the mouse point over the menu item "backdrop".
If you accidentally select that, all it will do is open a window, you can easily close.


Tutorials this month:

Convert video to GIF by jamesbond.
fields.awk by smokey01
Modifying the JWM Menu by RSH / LazY Puppy

Convert video to GIF

Written by jamesbond

Convert video to GIF

The following are ways to convert video to GIF, using ffmpeg **only** (no other tool required).
Requires recent enough ffmpeg (one from 2014 onwards).

A. Quick method:
1. Open terminal
2. Run "ffmpeg -i /path/to/your/source/video /path/to/your/output.gif"

That will give you a GIF file for your video. The quality won't be spectacular, but you'll have it.
Please note that usually (that is, 99% of the time) your GIF file will be 10-100 times
larger than your original video.

B. How to make it smaller:
1. Using video editor, remove unused portions of the video, keep only what you want to show.
2. Using your video tool, resize/scale the video to a smaller dimension.

You can actually do both 1 & 2 with ffmpeg as well, but:
a) Doing 1 is very difficult unless done visually.
b) Doing 2 requires you to remember arcane command line.

C. Automated means
1. Copy the following code to a script file (called it "").
2. Run it like this: /path/to/script /path/to/your/source/video /path/to/output.gif "horz-res" "quality"

"horz-res" is the horizontal resolution you want the GIF to have. Your original source will be scaled
to this resolution. Vertical resolution is automatically determined, based on aspect ratio of the original
source. If you don't specify this, it is assumed to be "300".

"quality" is the quality settings. There are 4 settings:
a) "low" - reasonable quality, small output file
b) "lower" - lower quality than "low". Not much difference from "low", but smaller file size.
Same quality as section (A) above.
c) "high" - better quality, larger file size. About 3-5 times larger.
d) "high2" - better quality than "high" if the source video has lots of movements. Same file size as "high".

The default quality settings if you don't specify it, is "low".

D. Tips
Make sure you start with a good video quality. If you record your desktop using screen recorder,
make sure to set the record to produce best video quality.
The better the quality you have from the source video, the smaller the GIF output file will be.

Start of Code

if [ -z $IN ]; then
cat << EOF
Usage: ${0##*/} input [out] [horz-res] [quality]
- out is the output filename, default is "$OUT"
- horz-res is the horizontal resolution, default is "$SCALE"
- quality is image quality of conversion, you can choose between
"low", "lower", "high", or "high2". Higher quality = bigger file.
Default is "$QUALITY".
exit 1


case $QUALITY in
ffmpeg -i $IN -vf $filters -y $OUT

ffmpeg -i $IN -vf $filters_lower -y $OUT

ffmpeg -i $IN -vf "$filters,palettegen" -y $palette
ffmpeg -i $IN -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y $OUT

ffmpeg -i $IN -vf "$filters,palettegen=stats_mode=diff" -y $palette
ffmpeg -i $IN -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y $OUT
End of Code

E. References
1. Original article on improving gif conversion, by author of ffmpeg filters:
2. List of ffmpeg filters:
3. ffmpeg filtergraph:


Written by smokey01

I’ve probably stolen a bit of musher0 thunder here by writing about fields.awk but I’ve just discovered how good it is. It’s not all that intuitive but it becomes quite familiar after a little use. The menu options (R)ead and (W)rite didn’t make a lot of sense, to me anyway, so I’ve hacked the code to make it more conventional. For a text editor I prefer Geany over Vim so I made Geany the default. You can choose a different one if you like by selecting (C) Change Editor.

I've made a couple of packages. They are both noarch which means they should work in any Linux OS, 32 or 64bit. One is a .pet and the other is a .txz or slackware package. Both packages have the same contents.

Let’s take it for a spin, jump in, shut the door and buckle up, yes it’s that fast.

Once you’ve installed your preferred package you will find a menu entry called fields.awk under Calculate. Click on it and you will see this:

Before you can do anything with a database you either have to create or load one. I have included an example database created by 6502coder which I've called pln.txt.

To load pln.txt, press the O key. A choice of databases will be displayed. At this point you only have one. Type pln and press [enter]. If you were observant you would have noticed you didn’t need to type the .txt extension. It assumes all files have an extension of .txt. This doesn’t mean you can’t type it or another extension if you wish, it will work providing the database file has the correct formatting.

So before we progress, let’s have a quick look at the file format. Press the E key and the database file will be loaded into geany. Take note of the very first line:

A few moments ago we (O)pened the database/datafile called pln.txt and this is what your terminal should look like now:

It’s showing where your database files are located, the currently loaded database file, the field structure and some other details in the menu system. Simple but nice.

Now that we have a database loaded we can search it, add records to it or modify existing records. Let’s look at the search function first.
Press the S key.
You are presented with a prompt: “Want the search output saved to file?”
If you press enter it defaults to N or No. If you press Y you will be prompted for a filename. Type the full pathname to where you want the file to be saved. If you just type the filename it will be saved in /root. The .txt will be added by default. I changed this location as it was saving to /root/Desktop folder.

Back to searching. This time just press [Enter]. Now it asks if you want to do a case sensitive search, the default is No so just press [Enter] again. Now you have to enter a search string. Type smokey and you will be presented with all records that have a field that contains smokey. To get back to the Main Menu press Q.

The third option is to Add or Modify a record. Press A, N and [Enter] to add a new record. After entering a value for each field you will be returned to the Main Menu. To modify this same record, press A, M [Enter]. It now asks for a way to identify the record. Type something unique or it will want to change more than one record.

If you press E from the Main Menu the entire database will be loaded into geany. Here you can add or delete records if you wish. Just make sure you stick to the file format: @@@fieldname::fieldname::fieldname::etc::

The next option is (C)hange Editor. I don't think I need to explain this one.

Option six is (N)ew Data File (database). You will be asked for a name of the database. Then the number of fields. Then you will provide a name for each field.

(H)elp should be obvious.

(Q)uit is every bit as obvious as Help.

A folder called DB_FILES was created in /root when you installed the package. It doesn't have to be in /root. You can place it anywhere you like with a different name if you wish. To change this location and name, navigate to /root and click on the eye in Rox to show hidden files. Look for a file called .db_folder. Change the contents of this file to suit your new name and location.


Modifying the JWM Menu

Modifying the JWM Menu

written by RSH / LazY Puppy

JWM's menu is pretty easy to modify to have e.g. a Quickstart-Menu available for favourite applications and/or files or even a menu dependent on the contents of specified directories at the boot drive etc.pp.

I'm starting with the Quickstart-Menu but first a useful overview about The Menu's Files.

The Menu's Files

The Menu's Files

The files used to create the JWM menu in /root/.jwmrc are stored at different locations inside the Puppy's file system.

These locations are:

- /usr/share/applications
- /usr/share/desktop-directories
- /etc/xdg/menus
- /etc/xdg/templates

Location /usr/share/applications contains .desktop files. A program offering a menu entry after installation usually stores its .desktop file in /usr/share/applications. There are two more locations that may probably containing .desktop files, though they aren't needed here.

Location /usr/share/desktop-directories contains .directory files. These files are used to define menu categories and sub-categories of the resulting JWM menus.

Location /etc/xdg/menus contains .menu files. These files are used to define the contents of a specific menu category and/or sub-category.

Location /etc/xdg/templates contains the template JWM menu file. This file defines the resulting structure of the JWM menu in /root/.jwmrc.

The command to create the JWM menu in /root/.jwmrc is: fixmenus.

When running fixmenus from e.g. terminal the JWM menu is created based on the files at above listed locations. Installing .pet packages and/or loading .sfs modules will usually call fixmenus to make sure to have the new menu entries based on the .desktop files present at their dedicated menu categories. All changes made manually to /root/.jwmrc will be lost after the next call of fixmenus.

To create a simple Quickstart-Menu we'll just need to edit the file in /etc/xdg/templates which is /etc/xdg/templates/_root_.jwmrc. It just needs a single line of XML code added to /etc/xdg/templates/_root_.jwmrc to be able to have a simple favourite Quickstart-Menu.

A simple Quickstart-Menu

A simple Quickstart-Menu

The single line of XML code added to /etc/xdg/templates/_root_.jwmrc:

<!-- A favourite QuickStart-Menu placed in root of /mnt/home -->

Ok, it's two lines including the comment... ;)

Of course it could look like this as well:

<!-- A favourite QuickStart-Menu placed in a sub-directory of /mnt/home -->
my-menus/quickstartmenu.xml</Include> load the QuickStart-Menu file from a sub-directory of /mnt/home.

Just open file /etc/xdg/templates/_root_.jwmrc in a text editor like Geany or Nicoedit etc. Copy and paste both lines (the commented line and the <input> line) near to the top of /etc/xdg/templates/_root_.jwmrc - somewhere in between of line <JWM> and line <RootMenu label=... ... ...onroot="3">.

Save the file /etc/xdg/templates/_root_.jwmrc.

Now there's a need to have e.g. /mnt/home/quickstartmenu.xml existing.

The basic content for /mnt/home/quickstartmenu.xml:

<?xml version="1.0"?>

<!-- A favourite QuickStart Menu for Programs and/or Files -->
<RootMenu label="Quickstart-Menu" labeled="true" height="MENHEIGHT" onroot="1">



Note the difference of onroot="3" (_root_.jwmrc) and onroot="1" (quickstartmenu.xml). Setting onroot="3" returns the default JWM menu by right-click on a free location at the desktop. Setting onroot="1" will return the new QuickStart-Menu by left-click on a free location at the desktop.

All what's needed now is some content for the new QuickStart-Menu as it won't appear without some content added. This content could be either just some programs or even some menu categories containing programs sorted.

To add programs to the new QuickStart-Menu just add as much lines as programs should be included. This is how a line looks to add a program to the new QuickStart-Menu:

<Program label="Menu-Entry-Label" icon="Menu-Entry-Icon">Menu-Entry-Action</Program>

A simple example for AbiWord:

<Program label="AbiWord" icon="abiword">abiword</Program>

Let's assume there's a need to have a menu entry existing in Quickstart-Menu for a program which isn't installed but available as .sfs module. Let's assume also this program would be the GIMP placed in gimp.sfs. Let's assume further more there's also a .sfs module containing plugins for the GIMP placed in gimp-plugins.sfs.

Just create a directory e.g. /mnt/home/my-scripts. Inside this directory create a script named gimp-starter. Load this gimp-starter script into a text editor and replace its content by the content below (use copy and paste).

# Script: gimp-starter - GIMP by SFS starter
# Starts GIMP by loading its .sfs module including its plugin .sfs module

# Load the .sfs modules, paths not needed if the .sfs modules are placed at boot partition or in boot/install directory
sfs_load --cli --quiet --skip-fixmenus gimp.sfs
sfs_load --cli --quiet --skip-fixmenus gimp-plugins.sfs

# Execute the GIMP
gimp &

# Fix the menus in background while GIMP is already starting
fixmenus &

exit 0

Save the script /mnt/home/my-scripts/gimp-starter.

Now add the line below to the Quickstart-Menu:

<Program label="Start GIMP by SFS" icon="gimp.png">/mnt/home/my-scripts/gimp-starter</Program>

Let's make another assumption about a simple text file being used for notes during phone calls or developments etc. It's also possible to load such text file into a text editor by the Quickstart-Menu. Though, it could be a .ncd document for the use with Notecase as well.

<Program label="My Notes" icon="edit48.png">defaulttexteditor /mnt/home/my-files/my-notes.txt</Program>

or for the use of Notecase

<Program label="My Notes" icon="edit48.png">notecase /mnt/home/my-files/my-notes.ncd</Program>

The simple Quickstart-Menu based on the above examples:

<?xml version="1.0"?><JWM>

<!-- A favourite QuickStart Menu for Programs and/or Files -->
<RootMenu label="Quickstart-Menu" labeled="true" height="MENHEIGHT" onroot="1">


<Program label="Start GIMP by SFS" icon="gimp.png">/mnt/home/my-scripts/gimp-starter</Program>
<Program label="My Notes" icon="edit48.png">defaulttexteditor /mnt/home/my-files/my-notes.txt</Program>



And here's the screenshot:

Now it's pretty easy to extend the new Quickstart-Menu and to create a Quickstart-Menu with Menus and Sub-Menus.

A Quickstart-Menu with Menus and Sub-Menus

A Quickstart-Menu with Menus and Sub-Menus

Based on the previous example it's a simple task to add Menus and Sub-Menus to the new Quickstart-Menu.

Menus as well as Sub-Menus are defined like this:

<!-- Menu structure -->
<Menu label="Menu-Category-Label" icon="Menu-Category-Icon" height="16">

<!-- Sub-Menu structure inside the Menu structure-->
<Menu label="Menu-Category-Label" icon="Menu-Category-Icon" height="16">



Example for Menu Graphics with a Sub-Menu Notes:

<!-- Menu structure -->
<Menu label="Graphics" icon="draw48.png" height="16">

<!-- Sub-Menu structure inside the Menu structure-->
<Menu label="My Notes" icon="edit48.png" height="16">



The menu including its contents:

<!-- Menu structure -->
<Menu label="Graphics" icon="draw48.png" height="16">

<!-- Sub-Menu structure iside the Menu structure-->
<Menu label="My Notes" icon="edit48.png" height="16">

<Program label="My Notes" icon="edit48.png">defaulttexteditor /mnt/home/my-files/my-notes.txt</Program>



<Program label="Start GIMP by SFS" icon="gimp.png">/mnt/home/my-scripts/gimp-starter</Program>


The content of quickstartmenu.xml in complete based on the above examples:

<?xml version="1.0"?><JWM>

<!-- A favourite QuickStart Menu for Programs and/or Files -->
<RootMenu label="Quickstart-Menu" labeled="true" height="MENHEIGHT" onroot="1">


<!-- Menu structure -->
<Menu label="Graphics" icon="draw48.png" height="16">

<!-- Sub-Menu structure iside the Menu structure-->
<Menu label="My Notes" icon="edit48.png" height="16">

<Program label="My Notes" icon="edit48.png">defaulttexteditor /mnt/home/my-files/my-notes.txt</Program>



<Program label="Start GIMP by SFS" icon="gimp.png">/mnt/home/my-scripts/gimp-starter</Program>




And here's the screenshot:

Quickstart-Menu in use

Quickstart-Menu in use

Such Quickstart-Menus are in use in all my LazY Puppy Systems starting at the Puppy Lucid 5.2.8-4 based version up to my latest version LazY Puppy 5.5.0 which is based on Puppy Xenial64

Though, my Quickstart-Menu is located to the middle-click at the desktop, as my left-click menu contains all my T.O.P.L.E.S.S. / S.F.S. P.L.U.S. programs and functions plus Menu Pipes to external programs like RoxApps, Wine- and Linux-Portables, Scripts and many more files.

Below is a screenshot of my Quickstart-Menu in current running LazY Puppy 5.5.0 based on Puppy Tahr 6.0.2. On top there are Sub-Menus for Favourites, Default Apps and Recently used files and programs. At the bottom there's a Sub-Menu for Shutdown, Reboot and Refresh Menus. In between of those Sub-Menus there's the list of my most used programs that I need to have a very quick access to.

That's it for now.

Hopefully this will be of any use for some Puppy users out there...

RSH / LazY Puppy


The April crossword by greengeek.


Puppy Crossword (April)
(Formatted by greengeek using the "Puzzlefast" website)
(See clues below image)

Scroll further down for answers:

Letters to the Editor

This section is where people may ask questions or tell a story about their positive Puppy experiences.

None received for this month.

Useful Links

Puppy Linux Forums USA

Ibiblio repository USA

nluug repository Netherlands

Internode repository Australia

University of Crete repository Greece

aarnet repository Australia

Internet archive repository USA

Puppy Linux Tips by smokey01

Puppy Linux wikka Puppy sites

Bookmarkos provided by kerl

Search the Puppy Linux Forums

Contributors this month

RSH /LazY Puppy

Proof reading - russoodle +1

Newsletter Information

I've decided to move information out of the editorial section and place it here as it seems more appropriate.

Display tip:
To improve the Notecase display format please press F7 then:
- Tick the "Restore last position/size" checkbox.
- Select the "Display" tab and tick "Wrap text".


If you have information you would like to see in the newsletter please email it to smokey01 at It must be created in notecase otherwise it makes my job far too difficult. I don't intend doing any significant editing but I will attempt to read all of the articles and ask a couple of others to do some proof reading. If you would like to assist in proof reading please let me know on the email address above.

Notecase is very easy to learn and use. Try and keep your articles to less than 1000 words. Photos and images should be no bigger than 1024 x 768. I can always make them smaller.

The deadline for articles is the 20th of each month. Let's not worry about time zones. I know it may be the 20th in Australia and only the 19th in the USA but I can live with this. If it's more than 24 hours late with respect to Australian CST then your article may be pushed right, into the next edition. I expect proof reading to take less than a week which will provide about four days to publish at the beginning of each month.

I will upload the Newsletter to my site at There will be two versions. One will be an xz compressed notecase file and the other will be a html file so it can be read in a browser.

I have changed the original naming convention to 0001-PuppyLinuxNewsletter-Jan2017.ncd.xz and 0001-PuppyLinuxNewsletter-Jan2017.html respectively. The formatting of the html is not brilliant but readable. The newsletter is intended to be downloaded and read in notecase.


The editor has the right to veto any articles that he/she considers inappropriate. A reasonable effort will be made to avoid spelling and grammatical errors however, I'm sure some may slip through. This newsletter is published by volunteers, and is free, so please be kind. Constructive criticism is acceptable.