July 2017

This month I've concentrated on graphics, in particular digital photography. Almost everyone these days is a budding photographer as every phone has a digital camera and most people have a phone.

Forum member scsijon has started a new project based on T2 with an intent to revitalise an oldie but a goodie.

Forum member radky shared some information about himself in this months Biography section.

Contributions were disappointingly low this month with only one from Bigpup and of course the regular crossword from greengeek.

I would like to receive a bit of feedback about the newsletter, positive or negative. It takes a bit of effort each month to put it together and I have other things I could be doing if it's not well received. I don't mean to be negative as I quite enjoy writing it and I learn quite a bit while doing research for the articles. Public feedback can be submitted in the forum or if you wish to make it private, email me at




The Puppy Linux Discussion Forum 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 distro's development. This section will likely just provide highlights as a starting point.


T290 is being developed by scsijon, article written by smokey01

Forum thread

This looks like an exciting project.

Quote from scsijon:
"I'm building a new set of T2 packages to T2's revision 45017 at present. It won't have everything in, but should be suitable to attempt to build Quirky (I hope) as well as an updated racy55 (both 32bit and 64bit versions), but with later packages. But it's up to you to build and fix the quirky with Barry's woofq, I'm only promising the racy55 equivalents as its (with a few updates) is what i use on a daily basis and what I will call PuppyT290 (either Puppy T29032 for 32bit and Puppy T29064 for 64bit). It's up to you what you do with them afterwards."

I will be keeping an eye on this project as I thought racy-5.5 was a great little Operating System.

X-Tahr 2.0

Created by forum members rg66 and Geoffrey

X-Tahr-2.0 is based on tahrpup-6.0.5 (32bit) with Xfce-4.12 and comes with the 3.14.56 PAE kernel. This distro was created by rg66. Read about it here.

The Graphics adrive for X-Tahr 2.0 was created by Geoffrey and is a great addition to X-Tahr-2.0.
Anyone who has an interest in photography would probably find this very useful. Download a copy here.


Organising Photos
Image Editors
Image Viewers
Organising Photos

Written by smokey01

Once upon a time, not so many years ago, photography was quite expensive. First you had to buy a camera which could be very expensive, then you had to buy film and finally have the film developed. Another problem was you didn't know the quality of the shot until the film was developed. I guess it's fair to say photography was quite risky back then.

How things have changed with the introduction of digital photography. Most good cameras are less expensive and everyone who uses a mobile phone, has a camera. What's bad about this? Nothing really, except for one thing, managing the large collections of photographs that seem to accumulate. Because it's such a pain to manually place them somewhere so we can find them later, it often doesn't happen.

Eventually the photos need to be downloaded from your camera and phone etc. The obvious place is on a large hard drive on your computer. This is when the organising of the photo's should take place, but doesn't, except for the very few people that are better organisers than the rest of us. I usually just dump them all in one directory and it's not unusual to have 10,000 photos in that directory. That's roughly the amount of photos I take in one year. When the next year comes around, guess what? More photos to be added to the same directory.

There are quite a few applications that will search your hard drive and catalogue your photos. There's nothing wrong with this but I would rather have them organised better on my hard drive first. For a long time now I have agonised over the best way to do this. I eventually decided to group photos by year and month. It is possible to break it down further into days but that means creating 378 directories for each year. A year and month breakdown is only 13 directories for each year.

The next big problem is determining when the photo was taken. I can hear you now, why not look at the file properties, it will tell you, no it won't. Looking at the file information will give you three dates. Let's use Rox as an example: Change time, Modify time and Access time. Now one of these dates might be the same as the Date the photo was taken but that's when they are still on the camera or phone. When you download the photos from your camera or phone, guess what usually happens to the photo dates? The dates all change to the date of the download. Not very helpful at all for sorting photos into year and month.

Never fear, there is a way to get the date the photo was taken but you have to dig into the exif data. This is information is stored inside the photo itself. There are many applications that can read and write to exif data inside the photos. I'm only going to discuss one of those in this article and that's jhead. Jhead is very easy to compile. Download the source from this page. The usage documentation on the same page is quite well written and easy to understand.

Enough of the history lesson, let's get down to business.

Once you have compiled jhead, place the binary into one of your bins. I generally put additional binaries I compile into /usr/local/bin.

Copy all of the photos you wish to organise into a directory, lets call it Photographs.

Open a terminal in /Photographs and type: jhead -n%Y/%m/%f *.jpg *.JPG

Jhead will look inside each photo and inspect the exifdata. It will then move the photo into a sub directory of the year the photo was taken and a further sub directory of the month. Your directory structure will look something like this:

├── 2016
│   ├── 09
│   │   ├── DSCF2568.jpg
│   │   ├── DSCF2569.jpg
│   │   ├── DSCF2712.jpg
│   │   ├── DSCF2713.jpg
│   │   └── DSCF2714.jpg
│   ├── 10
│   │   ├── DSCF2715.jpg
│   │   ├── DSCF2716.jpg
│   │   ├── DSCF2717.jpg
│   │   └── DSCF2730.jpg
│   ├── 11
│   │   ├── IMAG0331.jpg
│   │   ├── IMAG0332.jpg
│   │   ├── IMAG0336.jpg
│   │   ├── IMAG0337.jpg
│   │   ├── IMAG0338.jpg
│   │   ├── IMAG0339.jpg
│   │   ├── IMAG0340.jpg
│   │   └── IMAG0341.jpg
│   └── 12
│   ├── DSCF2731.jpg
│   ├── DSCF2732.jpg
│   ├── IMG20161225212909.jpg
│   └── IMG20161229082931.jpg
└── 2017
├── 01
│   ├── IMAG0342.jpg
│   ├── IMAG0343.jpg
│   ├── IMG20170127145215.jpg
│   └── IMG20170128122635.jpg
├── 02
│   ├── DSCN0919.jpg
│   ├── DSCN0920.jpg
│   ├── DSCN0921.jpg
│   └── IMG20170225091104.jpg
├── 03
│   ├── DSCF2771.jpg
│   ├── DSCF2772.jpg
│   ├── DSCF2774.jpg

As you can see it's quite well organised and the process is very quick.

Please read the user documentation, in particular the -n[<fmt-string>] switch.
This option causes files to be renamed and/or moved according to the Exif header "DateTimeOriginal" field. If the file is not an Exif file, or the DateTimeOriginal does not contain a valid value, the file date is used.


Image Editors

Tutorials this month:

Below is a collection of Image Editors than run on Puppy Linux.

Probably the best editor is GIMP, it's been around for ages and it's very powerful. It's probably not the easiest to learn but it can do just about anything you will ever want with an image. There are many that believe it's better than Photoshop.

If you type "GIMP Tutorials" into Google you will be presented with many options. Here are a couple of links to get you started.

XnViewMP is a very capable image editor that is relatively easy to use. The MP stands for Multi Platform.

Fotoxxx is another popular image editor which you may find in a number of Puppy distributions. I have never taken to it as I find the interface quite clunky and not very intuitive, my opinion only. Having said that, it is quite powerful for a smallish package at around 3Mb.

Geeqie is one of my favourite editors. It weighs in at about 5Mb installed, so a little larger than fotoxx. I do find geeqie quite comfortable to use. Occasionally it has been included in some Puppy distributions. You may still find it in some Puppy repositories.

mtPaint has been included in every Puppy distribution I have tried so it should be quite familiar to you. It is a lot more powerful than it seems. There are a few good tutorials about if you go looking for them.

LazPaint is an image editor, like PaintBrush or Paint.Net, written in Lazarus (Free Pascal). Uses BGRABitmap library:

Pinta is a free, open source program for drawing and image editing. Its goal is to provide users with a simple yet powerful way to draw and manipulate images on Linux, Mac, Windows, and *BSD.

Image Viewers

Viewnior is probably my favourite image viewer. It's quite small at about 500k, fast and very easy to use. It has become the default viewer in many Pups for a good reason. It has opened every image format I have ever thrown at it.

Below is a list of its features.

Fullscreen & Slideshow
Rotate, flip, crop, save, delete images
Animation support
Browse only selected images
Navigation window
Set image as wallpaper (Gnome 2, Gnome 3, XFCE, LXDE, FluxBox, Nitrogen)
EXIF and IPTC metadata
Simple interface
Configurable mouse actions


Posted by Mike Walsh on the Forum

VECTR home page

Vectr is a free graphics software used to create vector graphics easily and intuitively. It's a simple yet powerful web and desktop cross-platform tool to bring your designs into reality.

Networking with samba

Written by smokey01

I'll bet most families have more than one computer. The computers may be a mixture of desktops, laptops, netbooks, tablets and phones, but they are all computers in different forms. It's normal to have many different files spread amongst all of your computer devices. I think it's fair to say that most people would like to share these files. Probably the most popular way of sharing files today is through the cloud. I'm not going to criticise the cloud method as it has its advantages and disadvantages just like everything else. I only use the cloud to store or share files that are not personal or important. My important and personal files I keep much closer to home so I choose a Local Area Network (LAN) to do that.

Many people think that setting up a LAN is difficult and too much trouble. That may have been true many years ago but not so much these days. I think it's fair to say all flavours of Puppy come with networking tools. If it's not included I'm sure it's available in the repository.

In this tutorial I am going to explain how to setup a LAN with samba. Most of my recent experiences have been with Fatdog64 or Slacko.

Some time ago kirk developed a nice little RoxApp tool for scanning shares on the network called SMB share. In Fatdog64 it can be found by clicking on the Shares folder in /root. It's a symlink to /usr/share/Shares. In Slacko look in /root/network.

There's no point scanning for shares if they don't exist. Before we scan for shares we need to make sure one exists. I'm sure there will be a default one already setup but let's check to make sure.

The shares are configured in a file called smb.conf. It will normally be located in /etc/samba.

The smb.conf file from Fatdog64:

dns proxy = no
max log size = 50
workgroup = WORKGROUP
netbios name = %h
server string = %h-SMB
preferred master = yes
local master = yes
wins support = yes
os level = 130
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
security = share
force user = spot
guest ok = yes
# Delete the two following lines if you don't want clients to follow symlinks.
follow symlinks = yes
unix extensions = no
comment = Downloads
path = /root/spot/Downloads
writable = yes
guest ok = yes
browseable = Yes
public = yes
available = yes
path = /tmp
printable = yes
guest ok = yes

Notice there are seven lines under the [shares] tag. The [shares] tag can be changed to something else like [wife-asus] and so can the comment.
The path needs to be changed to location you wish to share, lets use /mnt/home
Leave the next five lines alone for now.
Up in the [global] setting you will probably have to change force user = spot to force user = root

Save the smb.conf file and start samba. In Fatdog64 goto the Control Panel, select the System tab and double click on the Manage Servers and Services icon. Now scroll down the list on the left to samba and select it. Now click on the start button in the right panel.

Now go back and click on /root/Shares folder and click on the Network icon. This will scan for shares and it should find the new one you just created/modified. After about 10 seconds you will be presented with a drive icon. Click on the drive icon to mount the share. To unmount the share, right click on the drive icon and select Unmount this share.

In slacko, under the Network menu item, click on Samba Simple Management and click on the SAMBA OFF button. This will start the samba server. Clicking on it again toggles the server off. I think you may need to click on the Apply button as well.

Happy Networking.


Written by radky

As a recent retiree in search of a worthwhile hobby, I joined the Puppy community in 2010. Like many new members, I was intrigued by the functionality and versatility of Puppy Linux but my technical background was limited. Not to worry, other members of the Murga forum share their knowledge freely and encourage neophytes like me to contribute in some small way to Puppy development.

My first foray into shell scripting was a simple exit utility (PupShutdown) which facilitates shutdown of the current computing session. Other basic scripts followed and eventually became part of the PupMates series of companion utilities for Puppy Linux. Most of the PupMates are 3rd-party add-ons, but a few like PupClockset and PupSysInfo are included as standard applications in official Puppy releases. A full listing is available at the following link:

If you are a hobbyist like me and would like to contribute to Puppy development, there is no better place than the Puppy Linux Discussion Forum. See you there!


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 some proven recipes here.

This month I have included:
jhead, and


Written by smokey01

Jhead is a command line driven program for manipulating the non-image parts of Exif flavour JPEG files that most digital cameras produce.

Make sure you have the devx loaded.

Download the source.

Unpack the tarball.

Enter the source directory, it's two levels deep.

Type make and press enter.

You should now have a binary called jhead.

Copy it into /usr/bin or /usr/local/bin

The binary is quite small but you can strip it to make it even smaller.
In the same directory as jhead type: strip --strip-unneeded jhead

In Fatdog64-710 the binary shrinks from 80k to 72k, very small.


Written by smokey01

ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files. ExifTool supports many different metadata formats including EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP and ID3, as well as the maker notes of many digital cameras by Canon, Casio, DJI, FLIR, FujiFilm, GE, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Motorola, Nikon, Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One, Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony.

Exiftool home page

Download the source code

Exiftool is a perl script so you don't need to compile it but you do need to install it and you need the devx loaded.

In the source code directory open a terminal and type: perl Makefile.PL
Then: make
Then make test, and
make install

If everything worked as it should, you should have a working copy of exiftool.
Type exiftool [Enter] to see if it works.

It should work on both 32 and 64bit computers.

Scripts & Code

place - find out where your photo was taken
Disk Image Creator
Make a run script with Xdialog using the case statement

Written by smokey01

This script will read the geocode data from exif data in jpg photos, if it exists. It will tell you approximately where the photo was taken.
It then gives you the option to open your browser and show you a much more accurate location in Google.

It requires exiftool to be installed. Most pups should have it available in their repositories.

You run the script like this: place /path/to/photo.jpg

#--------------------------------------------------Start of Script called place---------------------------------------------

# Written by smokey01 28 May 2017
if [ $# -eq 0 ]
then echo You need to specify a file.
echo EG: place photo.jpg
exit 1
if [ ! -f /usr/bin/exiftool ]; then
echo "This script requires exiftool!"
exit 1
coords=`exiftool -n -p '$GPSLatitude,$GPSLongitude' $@`
curl -s "$coords&sensor=false" | grep -B1 locality | grep short_name| head -1|sed -e 's/<\/.*//' -e 's/.*>//'
read -e -p "Do you want to see the location in your Browser? " choice
[[ "$choice" == [Yy]* ]] && defaultbrowser$coords || exit 1

#--------------------------------------------------End of Script-------------------------------------------------

Save the script and make it executable.

Disk Image Creator

Forum post by mistfire

This is quite an interesting script. It creates a disk image in various formats like vfat, ntfs, ext2/3/4.

The image is read/write unlike an sfs which is read only.

Download the script.
Xdialog + case statement

Written by smokey01

There are many nice little dialog tools that help you build graphical user interfaces. A few that come to mind are:

gtkdialog, zenity, yad and Xdialog.

Today I'm going to give you an example of Xdialog with the case statement. The case statement is a simpler more efficient version of the if then statement.

Like all scripts you should start with a shebang.


Now lets look at Xdialog using a combobox.

Xdialog --title "Run App" --combobox "Choose App to run" 0 0 "Browser" "Image Viewer" "Paint"

Let's look at the Xdialog switches. --title gives you the option to add a title. In this case the title is Run App.
The --combobox switch instructs Xdialog to draw a combobox and the text in quotes following, "Choose App to run", places some text in the dialog. The 0 0 sets the dialog size automatically. You can make this a specific size EG: 10 40. The next three bits of text represent the combobox options/selection. You can add as many as you like.

Copy and paste it into a terminal and you will see what I mean.

Now we need to make it do something useful. To do this we need to assign the selection to a variable. We call the variable answer like this:
answer=`Xdialog --stdout --title "Run App" --combobox "Choose App to run" 0 0 "Browser" "Image Viewer" "Paint"`

Notice the little ` after the answer=` and after "Paint"`
Also notice the --stdout switch has been added. This is required to help populate the variable.

Let's recap. Running the command in a terminal pops up a combobox, gives you three choices The one you choose is assigned to the variable called answer. To see the value of the variable, type echo $answer in a terminal and you will see the option you chose.

Now we will make your choice do something using the case statement.

case "$answer" in
exec defaultbrowser
"Image Viewer")
exec defaultimageviewer
exec mtpaint

The first line examines the variable and if it's equal to Browser then it runs the default browser. If it's not Browser then it looks at the second test condition to see if the variable is Image Viewer, if yes, it runs defaultimageviewer, if not, it continues to third condition and so on.

Notice how Image Viewer is bounded by double quotes. Single words don't need quotes but it's good practice to use them anyway.

Copy and Paste the code below into a text editor, save it then make the script executable. To make it executable I usually use Rox. Right click on the script, select Permissions and click the OK button. It normally defaults to make executable/searchable.

answer=`Xdialog --stdout --title "Run App" --combobox "Choose App to run" 0 0 "Browser" "Image Viewer" "Paint"`
case "$answer" in
exec defaultbrowser
"Image Viewer")
exec defaultimageviewer
exec mtpaint

Now click on the script.


Tips & Tricks

Tips & 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.

Limit writes to save

Written by Bigpup

Writing to the save is only needed when settings change or you add software to Puppy.
You can turn off auto save, so you can control when writes to the save are made.

In Puppy Event Manager-> Save Session

If you set Save Interval to "0" it does not auto save.
Select "ask to save at shutdown"

The save is not written to, unless you select to do it.

To save:
1. select the desktop save icon (Not available in all Puppy installs)
2. At shutdown, when asked to save, select save.

This way it only writes to the save when really needed.

Most of the time you need no save update at shutdown.

This is very good for limiting the number of writes to a save on a USB flash drive.

Settings in the web browser, for remembering web sites or history, can really add to data stored in the save.
So, adjust as you wish in the browsers settings.

This is also an easy way to check out new settings and programs.
If something does not work correctly, simply shutdown or reboot and not save.
On restart, Puppy is back to running clean, before the changes.

Expand "entertainment" subsections for crossword etc

Puppy Crossword (July)
(Formatted by greengeek using the "Puzzlefast" website)

Who said it??

This month the crossword clues are QUOTES taken from the Murga forum. The answers are the
forum names of various puppians. Can you work out who said what?

(See clues below image)

Scroll further down for answers:

And to finish off here is another classic quote from Technosaurus:

Source posts for quotes (in no particular order):

The labbe5 report

A few links by labbe5, I found interesting, that were posted in the Puppy Linux Forum

VPN Comparison Chart

The Digital Footprint

Standard Notes This looks quite interesting.

DNS leak test This seems useful.

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

Barry Kauler's News Blog

Contributors this month

Not all of the people below have physically given me the information to publish. If I find information I will give the credit where it is due. So if you see your names on this list below please don't be alarmed or upset. You are not losing your mind.

Mike Walsh

Proof reading - russoodle +1

Newsletter Information

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 and positive suggestions are welcomed.