site  contact  subhomenews

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

EasyOS Pyro version 1.2.3 released

September 15, 2019 — BarryK

Another incremental release of the Pyro series. Although this series is considered to be in maintenance mode, it does have all of the improvements as in the latest Buster release.

Download from here:

Note, there are also German and French builds. 

Tags: easy

Final bug fixes before 2.1.3 release

September 15, 2019 — BarryK

Thanks to Rodney for posting some audio streams:

A couple of the builtin audio streams in PupRadio did not work, "Old Time Radio" and "WBGO Jazz 88". I replaced those with working ones, and bumped the PET to 0.22.

Default Applications Chooser (see Setup menu category) was reported by scsijon to give errors when launched from a terminal. Yes, if you run 'default-chooser' in a terminal, errors will be outputted. This was originally created by sc0ttman and last updated in 2014 by shinobar, version 0.9:

EasyOS has been using version 0.8.9 until now, and Puppy Linux using 0.9.

I discovered three bugs in it: the one that scsijon reported, a shift-out-of-range, a syntax error when executing 'which', and incorrect changing of 'defaultimageeditor'.

I don't know about puppies, but EasyOS has /usr/local/bin/defaultimageeditor a symlink to /usr/local/bin/defaultpaint, and this upsets default-chooser.

I fixed all three and bumped the PET to 0.9.1. Will upload soon. Though, my fixes did introduce a new bug -- the "defaultpaint" drop-down list has "mtpaint" entry twice. Decided I can live with that. 

There are some issues that will be delayed until release-after-next:

EDIT 2019-09-15:
Have added to this list. Numbering them also.

1: The primitive text-mode GUI when you click on the "connect" desktop icon. Want a nice GUI.

2: scsijon reported that if right-click on network tray icon and choose to disconnect from network, it does so, then immediately reconnects.

3: I would like to fix the issue of the optical media tray closing almost immediately after opening. This is on desktop PCs with full-size optical drives -- those in laptops do not have the problem as closing is by manual push.

4: When multiple pages (desktops) are in use, there are some issues, such as windows disappearing. This might be fixed by upgrading to the latest JWM. 

5: Forum member ejazjg reported that if the laptop lid is closed then reopened, the screen remains blank. This will be an issue with the rules for the acpid daemon. It has been reported that if you briefly press the power-button after opening the lid, the screen comes back -- use that as a workaround for now. 

Just so that everyone knows what I plan to work on in the not-to-distant future, might as well document here a few more items that are on my to-list. I write notes on pieces of paper, even scraps of paper, and they are all over the place, and when there is a clean-up some issues that should get fixed, get forgotten. Looking at some of these pieces of paper:

6: Screeny snapshot taker (see Graphic menu) sometimes takes distorted snapshots. This was discussed on the Puppy Forum several months ago, and I think a solution was found, but I wrote a note about it, then forgot about it.

7: On the subject of snapshot-takers, there is also Take A Shot in the menu. Works nice, but defaults to save to '/root'. I need to change that to '/home/media/images'.

8: More recently, I don't like the Crystal font used for the clock in Buster, see bottom-right of screen. The "1" looks too much like a "7". Need another LED style truetype font. 

EDIT 2019-09-16:
Here is another one...

9: Running Easy Pyro, SFSget, the radiobuttons have "easyos/debian/buster" preselected, but it should really be "easyos/oe/pyro". SFSs can be installed from all of the paths, however, the default should be "easyos/oe/pyro" 

Tags: easy

Running in RAM and other fixes

September 14, 2019 — BarryK

Alfons reported that he installed the Chromium SFS to the main desktop (not in a container), but later booted with "Copy session to RAM & disable drives" and Chromium wasn't there.

Yes, that requires the Chromium SFS file be copied to RAM at bootup, as everything has to be in RAM. I had previously decided not to do that, however have reconsidered. So now, any SFSs installed to the main desktop will be available when running in RAM -- with the exception of the 'devx' and 'kernel' SFSs as there isn't much point in compiling anything when nothing can be saved.

I also removed some desktop icons and menu entries that aren't appropriate when running in RAM and no persistence for any changes. For example, the "petget" and "sfsget" desktop icons are removed.

The shared folder '/home/shared', to enable an app in a container to pass files to and from the main desktop, wasn't working. Fixed.

SFSget does a full probe of the online SFS repository. At subsequent bootups, it is supposed to only require a full probe if detects a change in the repository. However, it was doing a full probe again after a reboot. Fixed. 

I reported about an upgrade problem, with the renaming of the "easy" desktop icon to either "pyro" or "buster", if upgrade an existing installation, the old "easy" icon was also on the desktop:

...a manual fix was posted, however, it is now fixed automatically. 

Tags: easy