site  contact  subhomenews

Fix for screen locking

September 30, 2019 — BarryK

Forum member Argolance reported that screen locking, via the icon labelled "lock" on the desktop, does not work in Easy Buster.

Yes, running "ldd /usr/bin/xlock" in a terminal revealed that one of the shared libraries is the wrong version. Executable 'xlock' is in the 'xlockmore' PET package, and I had used the PET from the 'thud' build of Easy. The required library is '', which is present, however it is an incompatible version. This is one of the problems if we try to use PETs from a different distro, or even a different version of the same distro.

I compiled 'xlockmore' in Easy Buster 2.1.3, and now it works. The fixed PET will be used in the next release of Easy Buster. 

Tags: easy

Fix for EasyApps

September 30, 2019 — BarryK

EasyApps, which is run by clicking the icon labelled "apps" on the desktop, is a great frontend for all the apps in Easy, nicely categorised. EasyApps is a modification of PupApps used in Puppy Linux. The author, Roger (radky in the Puppy Forum), kindly created the modification for me.

There was a report recently from Rodney, that the "Book Reader" selection in EasyApps does not work. I also found the same for "PDF reader". Yes, they both try to run 'Evince', however the executable is actually named 'evince'.

It does seem that in the puppies, PupApps creates a symlink of Evince to evince. I don't know why, but anyway, the symlink does not get created in Easy.

I fixed the problem by changing all occurrences of "Evince" to "evince", and bumped the PET from 3.1 to 3.1.1. 

Tags: easy

Encrypted passwords for NetworkManager

September 23, 2019 — BarryK

EDITED 2019-09-24

NetworkManager defaults to storing passwords in plain-text. This has been the case for all of the network management tools used in Puppy and Quirky and Easy, except, I think, UltraSNS. I want to take that extra security step and encrypt passwords.

The security interactions with NetworkManager are devious. Gnome-keyring can be used to encrypt passwords, however, when nm-applet is used to setup a wifi connection, the password is stored in plain text.

The user has to then choose to edit the connection in nm-applet, and the password can be changed to encrypted. Having to perform that extra manual step is so weird. I googled and googled, could not find any way for the first setup of a connection to default to encrypted. So weird.

A connection is stored in a file in /etc/NetworkManager/system-connections, and each file will have a section like this:


It can be changed to encrypted via the nm-applet GUI, however, I also found that it can be done from the commandline:

# nmcli connection modify "${ID}" wifi-sec.psk-flags "1"

Where $ID is an identifier that is found in the above-mentioned connection file.

However, for this to work, 'gnome-keyring-daemon' has to be running, and gnome-keyring has to be unlocked, which requires a password. This was tricky to setup so that it uses the same password that you enter at bootup, and doesn't ask again.

These are the files that I modified in 'rootfs-skeleton' in WoofQ:


Also these in WoofQ:

init script in the initrd

There are comments in the scripts with "190923" date identification. 

Tags: easy

NetworkManager applet integrated into EasyOS

September 22, 2019 — BarryK

I posted earlier today about the patched 'nm-applet':

EasyOS inherits the 'Connection Wizard' from the Puppy days, a GUI for choosing which tool to manage network connectivity. There are a few of them, including my 'SNS' (Simple Network Setup) and jemimah's 'Frisbee'. I also added 'UltraSNS' last year. There are also dialup manager's such as 'PupDial', maintained by rerwin.

We are now using 'NetworkManager' in Easy, and it works very well, however, I don't want to throw away all those other managers. Still want to be able to use the 'Connection Wizard' to choose which tool is desired to use. It is possible that one of the older tools might suit a particular person or hardware configuration.

To achieve this integration, these are the scripts that have been modified in the 'rootfs-skeleton' folder in WoofQ:


The changes are identified by the string "190922" in the comments.

Easy will default to using NetworkManager and the nm-applet GUI manager. Left-click on the "connect" icon on the desktop will popup 'nm-applet'. Right-click on "connect" will enable to choose 'Connection Wizard'.

'Connection Wizard' can also be run via the menu, "Setup" category.

When NetworkManager is the chosen tool, there are also these menu entries in the JWM menu:


"NetworkManager setup connection" simulates a mouse left-click on 'nm-applet', and "NetworkManager edit connections" simulates a mouse right-click. Or, the Nmtui text-mode GUI can be used if desired.

I now need to build a new version of Easy, to check that it all works as expected. Hopefully there will be the next release soon after. 

Oh, one extra comment to make. Note the "ModemManager Configuration" entry in the above menu. 'ModemManager' is a GUI for setting up modems and works with NetworkManager. I haven't used it, so it will be up to testers to explore what it can do. 

Tags: easy

network-manager-applet patched for EasyOS

September 22, 2019 — BarryK

Yesterday was a coding marathon, until the wee small hours of this morning. I tackled problems with 'network-manager-applet', that prevented it from being integrated into EasyOS. The same problems apply to Puppy.

The EasyOS Pyro and Buster builds have a primitive text-mode GUI, named 'nmtui', which comes with the 'NetworkManager' package.

 The executable 'NetworkManager' is a daemon, that automatically manages network connectivity, doing stuff like automatically connecting when it detects an active network interface. The package also has 'nmtui' and 'nmcli', the former, as mentioned, is a GUI, and the latter is a CLI utility for configuring 'NetworkManager'.

There is a package named 'network-manager-applet', or 'network-manager-gnome'. It contains two GTK3 GUI applications named 'nm-applet' and 'nm-connection-editor', for managing 'NetworkManager'. The former is a tray applet, the latter is a standalone app.

Problem #1

This is the biggest problem, that prevented me from integrating 'network-manager-applet' into Easy. App 'nm-connection-editor' is mostly (but not completely) only for editing existing connections. It is weird, you can setup a wi-fi connection manually, but it lacks wi-fi scanning. On the other hand, 'nm-applet' does do all setup, including wi-fi scanning, but can only be launched by clicking on the icon in the system tray.

That's the big problem. I need to be able to bring up the full connection setup GUI standalone. It has to integrate with the "connect" icon on the desktop, and be able to co-exist with the older network connection methods (such as SNS).

I did of course google this issue, and found many people wanting to do the same thing, but told they can't.

Problem #2

When I was testing the 'nm-applet' tray app, I immediately noticed a shortcoming compared with the 'network_tray' app used previously in EasyOS (and a fork of network_tray is also used in the puppies). What 'network_tray' does is show you network traffic, indicating if data is flowing in or out. This is so convenient. Say you are downloading a file, and it is happening in the background, by looking at the 'network_tray' applet, you can see the incoming-traffic green light flashing, so you know it is still downloading. It is also nice to see whenever something is uploading!

Not so 'nm-applet'. The icon just sits there, unchanged. I personally found this to be quite unsettling, and a big turn-off.

nm-applet hacked

So what am I leading up to? I hacked the source code, and solved problems #1 and #2. What I have done is a bit primitive, but works. I can't get 'nm-applet' to run standalone, however, I can get it to popup, simulating either a left-click or right-click mouse button on the tray icon.

What you do it this:

# touch /tmp/easyos-trigger-nm-applet

...this will simulate a mouse left-button click. The created file will be immediately removed. Or this:

# touch /tmp/easyos-trigger-nm-applet-status

...this will simulate a right-button click. The file will be immediately removed.

I then imported icons and code from 'network_tray', that will replace those in 'nm-applet', and will flash green to show data traffic in or out. Yay! A snapshot is needed:


...the menu shown is the result of a simulated left-click.

You can see that both 'nm-applet' and 'network_tray' are running, with identical icons. Note that in 'nm-applet' although I have substituted my own icons, other icons will display, for example when a connection is being established, 'nm-applet' displays a whirling animation. Once the connection is established, the icon will revert to my replacements.

Source patches

I have uploaded the patches and a build script. It is for 'network-manager-applet' version 1.8.20. I chose this particular version as that is what Debian Buster 10 uses. The source package and a tarball with the patches is here:

Next up, have a bit of work to do, to seamlessly integrate 'network-manager-applet' into Easy. It will be the same mechanisms as for Puppy, so this work will likely also be of great interest to the Puppy developers. 

Tags: easy

ROX-Filer dynamic handling of mimetypes

September 19, 2019 — BarryK

ROX is an old application, but still keeps getting better old wine.

Mid-2018, a system for automatic generation of right-click "Open with" apps, appropriate for the file being right-clicked-on, was implemented in WoofQ:

Not for ROX, but related, late in 2017, don570 reported that 'update-desktop-database' needs to be run for correct "Open with" in some applications, such as Mypaint:

...that utility creates /usr/share/applications/mimeinfo.cache. WoofQ runs that utility in 3buildeasydistro, and in a running easyOS runs /usr/local/petget/ when the package manager installs a package.

When you left-click on a file in a ROX window, it will automatically open the file in an appropriate application. Right-click gives you a choice, left-click will open immediately in the number-1 app for that mimetype (which may be one of the /usr/local/bin/default* scripts, see "Default Chooser" in Setup menu).

The way this left-click opening works, is there are scripts in /root/Choices/MIME-types, or can be elsewhere, such as /etc/xdg/ These scripts are manually created, one for each mimetype. This means there are going to be gaps.

Puppy forum member mistfire has devised a dynamic system, that does not required the manually-created scripts:

This is really great, simple and works. I have put it into WoofQ. From the v1.3 PET, have populated rootfs-skeleton/etc/xdg/, and copied 'rox-xdg-open' and 'sync-rox-icons' to rootfs-skeleton/usr/sbin (not usr/bin, as want to be consistent with some other scripts that are in usr/sbin).

Then in the '3buildeasydistro' script, have this:

#190919 previously had manually-created files in /root/Choices/MIME-types
#dynamic system created by mistfire, ref:
#a rox-filer pet may have brought stuff with it...
mkdir -p rootfs-complete/etc/xdg/
rm -f roofs-complete/etc/xdg/* 2>/dev/null
[ -d rootfs-complete/root/Choices/MIME-types ] && rm -f rootfs-complete/root/Choices/MIME-types/* 2>/dev/null
cp -a ../rootfs-skeleton/etc/xdg/* roofs-complete/etc/xdg/

That should be enough documentation so that the woof-CE developers can also implement it. 

EDIT 2019-09-20:
Stop the press! I have discovered problems with this new system:

Mistfire's work has been good for me, as have rethought how the rox mime handling works. However, the end result is removal of mistfire's system. I have reverted to the old system, except for one change, fallbacks.

That is, have created scripts 'audio', 'image' and 'video' in /etc/xdg/ These are fallbacks. For example a PNG image, there is script 'image_png', which rox will run. But what if 'image_png' is not there, then rox will fallback to running 'image'.

The above changes to '3buildeasydistro' have been kept, to override whatever the rox pet has.

This is enough, I don't have a need for mistfire's "dynamic" solution.  However, I have kept his 'rox-xdg-open' script in WoofQ, just in case may want to use it sometime. 

EDIT 2019-09-21:
Have done a general tidy-up and refinement of mimetype handling for rox, for both the left-click and right-click on a file.

With left-click, the app to run is determined by scripts in /etc/xdg/, and I have greatly reduced the number of these scripts, due to 'audio', 'video', 'text' and 'image' scripts handling most cases.

With right-click, the apps to run are determined by entries in /etc/xdg/ There is a popup menu, which will offer a choice of which app to run. For example, for a png file, the choices might be 'mtPaint', 'Gpicview' and 'GIMP'. There are also two levels, at the top-level of the menu are choices that are an exact mimetype match, then in the "Open with..." submenu there are all choices that are capable of opening a png file, for example 'mtPaint', 'Gpicview', 'GIMP', 'Inkscape' and 'LibreOffice-Draw'. 
This handling has been improved, and expanded to more filetypes. Note, there is a script, /usr/sbin/build-rox-sendto, that is called every time a package is installed, to populate

Tags: easy

WoofQ 20190915 tarball uploaded

September 16, 2019 — BarryK

WoofQ is the build system for creating EasyOS. It forked from Woof2 in 2013, and was used to build Quirky Linux, a derivative of Puppy Linux, until Quirky was retired in 2018. Woof2 was also forked as Woof-CE which is currently used to build Puppy Linux.

WoofQ is not available as an online version control system repository, only as tarballs. Here is the latest, as used to create EasyOS 1.2.3 (Pyro series) and 2.1.3 (Buster series): 

Tags: easy

EasyOS Buster version 2.1.3 released

September 15, 2019 — BarryK

EasyOS version 2.1.3, latest in the "Buster" series, has been released. This is another incremental upgrade, however, as the last release announced on Distrowatch is version 2.1, the bug fixes, improvements and upgrades have been considerable since then. So much, that I might request the guys at Distrowatch to announce version 2.1.3. With that in mind, here is an announcement blurb:

EasyOS version 2.1.3 is the latest in the "Buster" series. Since version 2.1 there have been significant bug fixes, improvements and upgrades.
Significant upgrades include building from Debian 10.1 binary packages, and bumping the SeaMonkey web browser to 2.49.5.
There have been many refinements and improvements, including constraining of all apps Open|save|Download dialogs to default path within "/home" (this path has a special meaning in EasyOS different from other Linux distributions). Sharing of files between containers and the main desktop is also streamlined in folder "/home/shared". There have been many improvements to the management of containers, and the downloading and installing of SFS files.
A small band of very keen testers have identified various issues, and there has been intense bug fixing. This includes correct operation of the new "Copy session to RAM & disable drives" boot menu option (this is a secure mode of operation, isolated from the PC drives and having no persistence. It can be considered as an alternative to containers).

Detailed release notes are here:

It is also recommended to read this:

Download from here:

...note, there are also German and French builds.

If you need guidance on how to write the 'easy-2.1.3-amd64.img.gz' file to a USB-stick and boot from it, see here:

Read why EasyOS is different from other Linux distributions:

Feedback is welcome. We use this thread in the Puppy Forum:

...please do not post anywhere else in the Puppy Forum, as EasyOS is not Puppy, and it creates confusion.

Finally, a snapshot of the desktop. This was taken on a 1024x768 monitor, which is the smallest resolution that EasyOS will work with:


Note also, a PC with 64-bit CPU and at least 2GB of RAM is required. You might get Easy to work with less RAM, but I haven't tried it. 

Tags: easy