Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Mon 15 Oct 2018, 07:15
All times are UTC - 4
 Forum index » Advanced Topics » Puppy Projects
N.E.M.E.S.I.S. 0.0.3
Moderators: Flash, JohnMurga
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 1 [5 Posts]  
Author Message

Joined: 02 May 2018
Posts: 349

PostPosted: Thu 03 May 2018, 21:38    Post subject:  N.E.M.E.S.I.S. 0.0.3
Subject description: Version 0.0.3 - 2018-05-10 - 00:58 GMT+1

Introducing N.E.M.E.S.I.S. Version 0.0.3 - 2018-05-10 - 00:58 GMT+1

This is the N.E.M.E.S.I.S. project initiated by RSH (LazY Puppy). The name N.E.M.E.S.I.S. is again a recursive acronym.

N emesis
E xtension
M akes
E veryone
S earching
I n
S ources

Like in 'it will/may/should make everyone curious' to have a look into the inner structure and files, to find out what can be done - what's possible...

Hopefully? Wink

N.E.M.E.S.I.S. was tested during development in some versions of Puppy Linux from Xenial Puppy to Bionic Beaver Puppy. Exactly this has been tested on:

Xenial 7.0.4
Xenial64 7.0.7
Artful 17.11 plus 16
Bionic 18.05

All current testings returned successful!

Of course, it should work also in Tahr from 6.0 up to the latest version, since I'm using this at the older but extended T.O.P.L.E.S.S. level in LazY Puppy Art Studio based on Tahr 6.0.2.

Current N.E.M.E.S.I.S. functions/options in an overview

What is N.E.M.E.S.I.S.?

The N.E.M.E.S.I.S. project is a basic re-write of the T.O.P.L.E.S.S. project. If you don't know anything about the T.O.P.L.E.S.S. project, just click the links. T.O.P.L.E.S.S. has had added a lot of stuff depending on my private LazY Puppy structure, that didn't make it some sort of being very interesting for users. Probably it was also just too overloaded by functions and options...

However, this time I decided to let N.E.M.E.S.I.S. missing absolutely anything of all of that LazY Puppy stuff needed by myself. Instead to keep it as small as possible and completely open for anyone interested, able and willing to develop functions and additions to this.

The target was to make even the end user of a Puppy able to add easily modifications to the used Puppy Linux without any remastering needed.

Ok, at least this will always be dependent on the current level of development of functions to do the tasks behind the definitions in the config files. If one wants more, then one should be able to do some bash or to find a developer for doing some programming to a very new function.

So, of course, one can not setup stuff by the config files without having a function in background!

And also, of course, this is for running in ram only (PUPMODE=5)!

How does N.E.M.E.S.I.S. work?

N.E.M.E.S.I.S. will add two new options at boot, that needs to be added to the line in menu.lst that includes the pfix= option, the so-called kernel line of a boot menu in menu.lst. These options are:


By these options, two files with definitions included, e.g. of a new Wallpaper, can be defined to be loaded and examined at boot. Additional functions will modify the system at boot dependent on the parameters found.

This could also work for to have options like changing icon sets, mouse pointers, themes, or loading different and multiple .sfs files, create symbolic links to directories and/or files on the file system, etc etc - all at boot, so you will have a completely new Puppy running after the X window system is running. The more config files to choose, the more new Puppies to use!

No remaster necessary at all!

N.E.M.E.S.I.S., 2018 RSH (LazY Puppy) for Puppy Linux, GPL

Next post: Preparing a Puppy Linux, Changing the Wallpaper, External files and scripts, Booting by boot menu entry, A last but not least note to N.E.M.E.S.I.S.

Current N.E.M.E.S.I.S. functions/options in an overview

Archives attached:

NEMESIS-0.0.3.tar.gz: contains predefined files for Artful 17.11 & Bionic 18.05. Also default files for manually renaming (e.g. to use it in Xenial).
Description  Contains predefined files for Artful & Bionic & default files for manually renaming.

Filename  NEMESIS-0.0.3.tar.gz 
Filesize  50.15 KB 
Downloaded  132 Time(s) 

Last edited by ITSMERSH on Thu 10 May 2018, 18:53; edited 6 times in total
Back to top
View user's profile Send private message 

Joined: 02 May 2018
Posts: 349

PostPosted: Thu 03 May 2018, 21:39    Post subject:  

Preparing a Puppy Linux for N.E.M.E.S.I.S.

The basic files of N.E.M.E.S.I.S. is currently only two small scripts:


Both scripts needs to be included into the initrd.gz file of a Puppy Linux. They need to be stored right where the init script is placed.

They will be included into the init script by editing the init script to add just two small sections of code to it:

# Include N.E.M.E.S.I.S. Actions file - RSH
. /nemesis-actions-include-init

# Include N.E.M.E.S.I.S. Boot Options file - RSH
. /nemesis-bootoptions-include-init

Add the line . /nemesis-bootoptions-include-init below UNDERDOG=$underdog is defined in the init script and before the code of the boot menu appears. It is to be found around line 932/933 in e.g. Artful Puppy.

Add the line . /nemesis-actions-include-init below mkdir -p /pup_new/etc/rc.d is defined in the init script. Scroll down until the end of the code of creating the file /pup_new/etc/rc.d/PUPSTATE. Add the line below this section of code. It is to be found around line 1412/1413 in e.g. Artful Puppy.

Any else files/scripts needed will be stored on the file system, in sub-directories inside of the boot directory (or even install directory). This kind of setup will make it the easiest way for anyone to develop new functions to add new modifications at boot. These files/scripts will/should have all necessary data and functions available.

Let N.E.M.E.S.I.S. change the Wallpaper at boot

The first function/option and parameter added is to change the wallpaper at boot.

The function is named: SetWP_NemFunc

The wallpaper variable in config file is named: MYWALLPAPER (e.g. audio.png)

Variable MYWALLPAPER is dependent on variable MYWPDIR which is also defined in the config file. So one can easily define a path to a directory on any connected drive, to use the defined wallpaper from that directory.

The wallpaper will be copied to /usr/share/backgrounds.

Just calling SetWP_NemFunc will set the wallpaper at boot which is defined in $MYWPDIR/$MYWALLPAPER.

Calling SetWP_NemFunc FullPathNameToImage will set the submitted wallpaper at boot.

At current level of development there will be no wallpaper at all, if the defined one isn't found.

The external files and scripts to extend N.E.M.E.S.I.S..

All file names will be given as an example to Artful Puppy 17.11 (puppy_artfulpup_17.11.sfs). As there is:



Directories BootUp and ConfigData needs to be stored into the boot directory / install directory /where the main .sfs is placed.

Files functions4nemesis* are desined to hold the new functions either available as global system function (*-global) or by calling the script (*-local).

File artfulpup_17.11-etc.profile.local will be copied to /etc/profile.local.user and is designed to execute the functions developed in functions4nemesis* files examining the parameters defined in config files.

Hope you got it? Wink Laughing

Booting N.E.M.E.S.I.S. by boot menu entry

Add pconfig=Audio to the kernel line in menu.lst (the line where pfix= is defined)
Option lpconfig doesn't have any options at the moment, so not needed yet.


kernel /ArtStudio100/vmlinuz pconfig=Audio psubdir=ArtStudio100 pmedia=atahd pfix=ram

A last but not least note to N.E.M.E.S.I.S..

At the 0.0.1 level of development there's only just this single function/option to change the wallpaper at boot.

Hopefully it will show its full potential by just this single function.

I'm absolutely not sure about what functions users would need, or what could be useful to find its way into a new Puppy by default. Also there are lots of smarter programmers in the forum than myself. So, I'll play my role as the door opener, pointing all of my fingers to the opened door, hopefully generating lots of inputs/outputs by members, developers and/or users.

Now the basic functions are there. Now it needs the walls and rooms, the bells and jingles, the trees and flowers to make it a flavour.

Due to the changes made in the past by WoofCE I need to learn Puppy from the inside again, to secure some of my past developments for the future. When ever I'd successfully re-created a useful function from T.O.P.L.E.S.S., I'll publish.

Feel free to join in and to spread ideas and/or functions etc.pp.


Last edited by ITSMERSH on Wed 09 May 2018, 19:24; edited 1 time in total
Back to top
View user's profile Send private message 

Joined: 02 May 2018
Posts: 349

PostPosted: Thu 03 May 2018, 22:24    Post subject: Current N.E.M.E.S.I.S. functions/options in an overview  

Current N.E.M.E.S.I.S. functions/options in an overview

Development level: 0.0.3

MYWALLPAPER - setting a new wallpaper (0.0.1)

MYWELCOMEFIRSTBOOT - enable/disable welcome first boot splash (0.0.2)
MYPERSONALSETTINGSPOPUP - enable/disable first settings dialog (0.0.2)

MYTIMEZONE - setting the time zone (0.0.3)
MYLOCALTIME - setting local time (0.0.3)
MYNUMLOCKOPT - activating/deactivating numlock (0.0.3)
MYLOOPDEVICES - increasing the loop devices (0.0.3)
MYSYMLINKSINLIST - list of files and dirs to make them symbolic links (0.0.3)
MYSYMLINKSOUTLIST - list of the target files and dirs the symbolic links are pointing to (0.0.3)

More detailed information about these options and how to use are here:


Last edited by ITSMERSH on Tue 15 May 2018, 20:22; edited 4 times in total
Back to top
View user's profile Send private message 

Joined: 02 May 2018
Posts: 349

PostPosted: Sun 06 May 2018, 20:23    Post subject: N.E.M.E.S.I.S. 0.0.2  


I have re-developed two options/functions from T.O.P.L.E.S.S. for the use in N.E.M.E.S.I.S.:


As the names suggest they are to enable/disable the Personal Settings Popup and the Welcome First Boot Splash at boot.

Add the code below
# Avoid Welcome First Boot Splash
# Avoid First/Personal Settings GUI

to the *-Audio.cfg file.

Add the code below
# Enable/disable: Welcome First Boot
functions4nemesis-local -nowfb

# Enable/disable: Personal Settings PopUp
functions4nemesis-local -nopsp

to the *-etc.profile.local file.

Replace the functions4nemesis-local file with the one I've attached to the first post.
Not needed anymore, since I uploaded 0.0.3 fixed and updated.


Last edited by ITSMERSH on Wed 09 May 2018, 19:20; edited 2 times in total
Back to top
View user's profile Send private message 

Joined: 02 May 2018
Posts: 349

PostPosted: Wed 09 May 2018, 18:46    Post subject: N.E.M.E.S.I.S. 0.0.3  


I have discovered a small issue in N.E.M.E.S.I.S. and also re-developed some options/functions from T.O.P.L.E.S.S. for the use in N.E.M.E.S.I.S..

The issue first:

When executing a terminal, the boot drive gets unmounted, if unused. I had to wrap the code in /etc/profile.local (which is generated at boot up by nemesis-actions-include-init) by a if then fi section to solve this.

The new functions/options:


As the name suggests, MYTIMEZONE is for setting the time zone. The following time zones are defined by default:


GMT* can be used also by GMT+0..+12 or GMT-0..-14

So, by using plang=de_DE.UTF-8 in kernel line of the boot menu entry and setting up MYTIMEZONE=de, I'm able to boot a plain Puppy into the DE desktop, with DE keyboard layout and the correct time zone.

As the name suggests, MYLOCALTIME is for switching the time from utc to local time. Use 0 or 1 to deactivate/activate local time. MYLOCALTIME=1 activates local time.

As the name suggests, MYNUMLOCKOPT is to activate/deactivate numlock. Use 0 or 1 as parameter. MYNUMLOCKOPT=1 activates numlock.

As the name probably doesn't suggest, MYLOOPDEVICES is to increase the loop devices (used for .sfs to mount) up to 123 at boot. Use 0 or 1 as parameter. MYLOOPDEVICES=1 increases the loop devices.

As the names probably do suggest, MYSYMLINKSINLIST and MYSYMLINKSOUTLIST is to make symbolic links at boot to files and directories at the file system. MYSYMLINKSINLIST e.g. could include /root/my-documents and then MYSYMLINKSOUTLIST e.g. should include something like /mnt/sda1/MyFiles.

Let's assume one prefers to have his data located on the boot drive in directory MyFiles, then it's not necessary to define the complete path. One can use a definition like this example:


The path to MyFiles is set automatically as $MYBOOTPRT, so this will look internally as $MYBOOTPRT/MyFiles which could be e.g. /mnt/sdb2/MyFiles, dependent on the boot drive/partition.

I'm now going to repack the archive attached at first post and updating the first post after this - may take a few minutes... ...done.

Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 1 of 1 [5 Posts]  
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Advanced Topics » Puppy Projects
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum

Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0727s ][ Queries: 12 (0.0130s) ][ GZIP on ]