antiX26 with Lumina Desktop Environment: the ISO

antiX26 with Lumina desktop : the ISO

The Lumina Desktop Environment was developed in the BSD Unix world, and was used in PC-BSD and TrueOS . It is portable and has previously been available in various Linux distros, but its development has stalled for about 4 years and it has been withdrawn from most repos.

I feel it is a good fit for a small DE in antiX, so I have gone to the trouble of compiling Lumina, so we can see how it performs in antiX26.

The Official Lumina website is here

and the source code is available here

What Lumina offers is a very configurable desktop, that is portable and does not depend on systemd or Dbus or Polkit. It can be configured to look like Xfce or Windows anything you prefer.

itsfoss.community/t/lumina-desktop-environment/9034

I decided that a configurable desktop with a small footprint might be useful in Antix so I compiled Lumina in antiX26, addressed some of the configuration issues, and made an .iso file with both a live antiX and an installer.

It looks like this

I have made an .iso file , and it is available at sourceforge

My .iso defaults to the dinit init system, but all 5 init systems are available, as in official antiX26.

The .iso is both a live antiX and an install iso. The live login is demo:demo for user and root:root for superuser. Use the Install AntiX icon to start the Gazelle Installer. Note the if you modify the live system, the modifications will be installed.

In case someone wishes build Lumina rather than use my .iso, I include my build steps and configurations in the following replies.

I hope some may find this useful. Please inform me of any issues.

Adding Lumina Desktop (Qt5 Version) to antiX26

  1. Install antiX26 from antiX-26_x64-full.iso

  2. Choose a local repo
    Control Centre → Repo Manager
    choose http://mirror.aarnet.edu.au/pub/mxlinux/packages

  3. Update … always updatea fresh install

apt update
apt upgrade
  1. Pull Lumina source code from my forked Lumina repo
apt install git
  1. Configure git
 git config --global user.name "<yourname>"
 git config --global user.email <youremail>
 git config --global core.editor vi
 git config --global color.vi true

  1. Make a work directory and initialize git there
mkdir /usr/local/src/LuminaQt5
cd /usr/local/src/LuminaQt5
git init
  1. Pull my repo to the local work directory
git pull https://github.com/nevillejackson/Lumina
remote: Enumerating objects: 47403, done.
remote: Counting objects: 100% (654/654), done.
remote: Compressing objects: 100% (204/204), done.
remote: Total 47403 (delta 580), reused 450 (delta 450), pack-reused 46749 (from
 4)
Receiving objects: 100% (47403/47403), 114.34 MiB | 7.25 MiB/s, done.
Resolving deltas: 100% (33471/33471), done.
From https://github.com/nevillejackson/Lumina
 * branch              HEAD       -> FETCH_HEAD

The work directory now contains

$ ls
build-info               dev-tools      LICENSE         port-files
daily_use_tips.md        diffReport.sh  luminaKeys.txt  README.md
DEPENDENCIES.md          i18n-projects  lumina.pro      ROADMAP
DeveloperGuidelines.txt  icon-theme     mkport.sh       src-qt5

The source code is in src-qt5
The version is Lumina 1.6.3

  1. Define origin as remote using http
git remote add origin https://github.com/nevillejackson/Lumina
git remote -v
origin	git@github.com:nevillejackson/Lumina (fetch)
origin	git@github.com:nevillejackson/Lumina (push)

This is not essential. It is in case I want to push Lumina code changes back into my forked repo.

  1. Compiling Lumina
    Instructions for this are in the README.md file on the site
    https://github.com/lumina-desktop/lumina/

9a. My forked Lumina uses Qt5. It contains Qt project files ( which are like Makefiles). So the first step is to run

apt install qt5-qmake
apt install build-essential
qmake PREFIX=/usr/local
Info: creating stash file /home/nevj/LuminaQt5/.qmake.stash
Project MESSAGE: Build OS Info: Linux, x86_64, #2 SMP PREEMPT_DYNAMIC Sun Dec 28 20:03:05 EST 2025
Project MESSAGE:  - Detected Qt Version: 5.15.15
Project MESSAGE: Build Settings Loaded: Linux -Debian

that creates a normal Unix Makefile.

9b. Then run

make >&make.out

to compile Lumina and save the output.
That will fail with the message

Project ERROR: Unknown module(s) in QT: core gui network widgets x11extras multimedia multimediawidgets concurrent svg quick qml

Antix has some Qt5 packages installed , but not enough to compile Lumina. The following packages need to be installed

for qml
apt install qtdeclarative5-dev
for core
apt install libqt5core5t64
apt install libqt5gui5t64
apt install libqt5network5t64
apt install libqt5sql5t64
for gui
apt install libqt5gui5t64
for network
apt install libqt5network5t64
for widgets
apt install libqt5widgets5t64
for x11extras
apt install libqt5x11extras5 libqt5x11extras5-dev
for multimedia
apt install qml-module-qtmultimedia libqt5multimedia5 libqt5multimediawidgets5 qtmultimedia5-dev
for  multimediawidgets
apt install libqt5multimediawidgets5 qtmultimedia5-dev
for concurrent
libqt5concurrent5t64
for svg
apt install libqt5svg5 libqt5svg5-dev 
for quick 
apt install libqt5quick5 qml-module-qtquick2 qml-module-qtquick-window2 qml-module-qtquick-controls2 qml-module-qtquick-layouts

Some of those will be present in default antiX26.
Then re-run make and get the following error

In file included from ../libLumina/LuminaX11.cpp:7:
../libLumina/LuminaX11.h:26:10: fatal error: xcb/xcb_ewmh.h: No such file or directory
   26 | #include <xcb/xcb_ewmh.h>
      |          ^~~~~~~~~~~~~~~~
compilation terminated.

After installing libxcb-ewmh-dev and libxcd-ewmh2
and rerunning make , it reports another missing .h file.
After about 16 make attempts, the list of packages I had to install to supply missing .h files is

libxcb-ewmh-dev libxcb-ewmh2
libxcb-util0 libxcb-util-dev
libxcb-icccm4-dev
libxcb-image0-dev
libxcb-shm0-dev
libxcb-composite0 libxcb-composite0-dev
libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev
libxcb-damage0-dev
libxcb-dpms0 libxcb-dpms0-dev
libxdamage-dev
libxfixes-dev
libqt5waylandclient5
qt5dxcb-plugin
gir1.2-gudev-1.0 libbrotli-dev libbz2-dev libevdev-dev libexpat1-dev
  libfontconfig-dev libfreetype-dev libgudev-1.0-dev libinput-dev libmtdev-dev
  libpng-dev libwacom-dev libxkbcommon-dev qtbase5-private-dev
libxcursor-dev libxrender-dev
libxcb-cursor-dev
libdbusextended-qt5-1 libdbusextended-qt5-dev libdbusmenu-qt5-2
  libdbusmenu-qt5-dev
libpam0g-dev

The packages whose names end in ‘-dev’ are the ones that supply ‘.h’ files.
The corresponding binary package must also be present.
Lumina should now compile with make. It takes a few minutes.

  1. Installing Lumina
    Do the following as root
make install >&install.out

It will do make install in all the subdirectories.
It installs binaries in /usr/local/bin

$ ls /usr/local/bin
aCSTV.sh                           login-config-antix
add-desktop                        lte
add-key                            lthemeengine
alsa-set-default-card              lthemeengine-sstest
amz                                lumina-archiver
android-device-usb-connect.sh      lumina-config
ansi-bars                          lumina-desktop
ansi-colors                        lumina-fileinfo
ansi-tput                          lumina-fm
antix                              lumina-info
antiX-acoustic-colours             lumina-mediaplayer
antixccgrub.sh                     lumina-open
antixcc.sh                         lumina-photo
antiX-cli-cc                       lumina-pingcursor
antix-cloud                        lumina-screenshot
antiX-current-kb-layout            lumina-search
antiX-equaliser-toggle             lumina-textedit
antiX-FileManager.sh               lumina-xconfig
antix_firewall_toggle              magicrescue-a26df-wrapper

desktop-session-wallpaper          squmount
desktop_tool.py                    start-lumina-desktop
detect-init.sh                     start-t

All those binaries lumina-* plus the start script start-lumina-desktop
And, in `/usr/share/applications you will find

$ ls /usr/local/share/applications
lthemeengine.desktop        lumina-mediaplayer-pandora.desktop
lumina-archiver.desktop     lumina-photo.desktop
lumina-config.desktop       lumina-screenshot.desktop
lumina-fileinfo.desktop     lumina-search.desktop
lumina-fm.desktop           lumina-support.desktop
lumina-info.desktop         lumina-textedit.desktop
lumina-mediaplayer.desktop  lumina-xconfig.desktop

Reboot and see if it makes it into the Login Manager (slimski).
No, F1 cant toggle to lumina… more setup required.

Try from a console,startx /usr/local/bin/start-lumina-desktop … it starts lumina. That proves lumina install is OK … what has to be configured is s the Login Manager(slimski)>

Antix uses an apt-hook to trigger including a new DE in the slimski login manager. That did not work because I installed lumina with make install outside of apt.
So I had to do it by hand.

Edit /etc/slimski.local.conf

sessiontypes rox-fluxbox,zzz-fluxbox,minimal-fluxbox,fluxbox,rox-icewm,zzz-icewm,minimal-icewm,icewm,rox-jwm,zzz-jwm,minimal-jwm,jwm,herbstluftwm,lumina

default_sessiontype     lumina

Reboot again.
Now the Login Manager (slimski) finds lumina when toggled with F1 key. It boots to its default desktop

… luminadefault.png

with Conky and the Other Desktops window from antiX.
One can start a RoxTerm terminal by Applications → Utility → Console Window (“RoxTerm”) . I need to make a Roxterm icon.

Applications → Leave → Poweroff returns you to the Login Manager. From there using ‘halt’ for the username should power the system off , but it does not. Same problem as with Xfce and Trinity desktops. It is a known slimski issue. You need to relogin and use the poweroff CLI command as root.

In /usr/share/xsessions you will find Lumina-DE.desktop

  1. In a previous attempt
    Antix25-beta: adding the Lumina desktop
    I had to make some source code modifications.
    That is not necessary. I think it was caused by some missing library. Lumina 1.6.3 compiles without error providing all dependencies are present.

  2. Missing utilities.
    I have deliberately omitted starting the Lumina Desktop Utilities … Insight File Manager, File Archiver, Scientific Calculator, Text Editor, MultiMedia Player, Screenshots, PDF Viewer, Multi-Monitor Management. These are not sufficiently developed to be useful. They are present in the Applications Menu, and as binaries in /usr/local/bin.
    One should choose from the range of portable utilities available in the Debian Repo, and install those. In general one should stick with Qt based utilities for compatability with Lumina, but GTK based apps can be installed.

The Lumina Core Utilities … lumina-config, lumina-xconfig and lumina-search are present, and are useful.

  1. Qt5 dependence.
    The official Lumina 1.6.3 depends on Qt5 (5.15.15).
    There is an unofficial spin of Lumina that uses Qt6

That may be a path forward if Qt5 disappears sometime in the future.

Configuring Lumina Desktop in antiX

1. Panels

Go to Applications → Settings → Desktop Configution → Panels
It allows 2 Panels , they can be Top and Bottom , or either side.
I setup the bottom panel for system tray plus Applications and Workspace Switcher. The workspace switcher is nice , in Lumina you can move windows between workspaces dragging them off the side of the screen.

My top panel is frequently used apps… Console Window (“Roxterm”), Console Window (“uRxvt”), Screenshot, Insight File Manager, Web Browser (“Firefox ESR”).

2. Icons

These default to the left side. I removed File Manager and added my own “Exit antiX” icon, which overcomes the reboot and shutdown problem with slimski.

Applications → Settings → Add Menu Item
Item Name: Exit antiX
Item Icon: cross-red.png
Item Category: System
Item Command: /usr/local/bin/desktop-session-exit
Item Location: Desktop Shortcut
File Name: desktop-session-exit
OK
An Icon should appear.
I also added a Rox-Term icon.

3. AntiX Control Centre

Lumina does not pick this up in its menus. I had to add it
Applications → Settings → Add Menu Item
Item Name: AntiX Control Centre
Item Icon: antix-logo.png
Item Category: System
Item Command: /usr/local/bin/antixcc.sh
Item Location: Application
File Name: antiXCC
OK
A menu item should appear under Applications → System
It also appears as an icon? Not sure why.
One could also now add it to the upper Panel.

The default icon size is too large. To adjust right click on an icon → Modify Item → Decrease Item Sizes . It change all icons, not just the one clicked on.

4. Attempt to fix slimski preview bug

If you use Applications → Leave → (Restart or Poweroff)
it logs you out to the slimski Login Manager screen, where you are supposaed to be able to enter “halt” ( or “reboot”) as a user name and give the root password. It fails … slimski gives a “preview error message”

What is happening is that slimski is restarting too quickly, before the xserver has terminated, so it thinks you want preview mode ( preview mode is for debugging in slimski).

To try and counter this we can put a delay in the slimski startup.
This can be done in slimski.local.conf

[disable the command]
#atlogin_cmd      exec /usr/bin/bash -login /etc/X11/Xsession "%sessiontype"
[and substitute]
atlogin_cmd  sleep 3 &&  exec /usr/bin/bash -login /etc/X11/Xsession "%sessiontype"

That makes a delay in the X session startup
I also use the init system to put a delay in slimski startup.

Go to /etc/dinit.d and edit the file slimski

type = process
command = /usr/local/bin/my-slimski-wrapper.sh
logfile = /tmp/slimski.log

depends-on = seatd

Then write the wrapper program my-slimski-wrapper.sh

cd /usr/local/bin
vi my-slimski-wrapper.sh
[edit in thefollowing lines]
#!/bin/sh
sleep 3
exec /usr/bin/slimski -nodaemon -z -i
[then make it executable]
chmod 755 my-slimski-wrapper.sh

So slimski waits 3 seconds when started or restarted by dinit.
Similar modifications are needed for other init systems.

That achieves ‘half’ a fix.
If the delays are really inadequate, it may still drop you back to the Login Manager screen in ‘preview’ mode, in which case attempts to halt or reboot will fail with a message ‘systemhalt_enabled=TRUE but this action is unavailable during preview’.

It also helps to edit slimski.local.conf to define the halt and reboot commands

systemhalt_enabled true
poweroff_enabled true
systemhalt_cmd /usr/sbin/poweroff
reboot_enabled true
reboot_cmd /usr/sbin/reboot

[ and while there fix the default desktop ]

For some reason I can not fathom, it is necessary to make these changes in /etc/slimski.conf… in theory it should not be needed , but the making of an .iso is flawed if this is not done.

If this all fails, use the “Exit AntiX” icon. It always works because it bypasses slimski.

5. Set Autostart Apps

By default Lumina starts nothing . The two things that appear … Other Desktops, and Conky … are started by antiX.
There is a menu item Applications → Settings → Edit AntiX Startup File.
It allows editing of the file ~/.desktop-settings/startup

6. File Manager and access to internal disk partitions

The Insight File Manager which comes with Lumina is workable. It can see mounted partitions, but it can not detect or mount unmounted internal partitions.
Therefore we have to look at providing an alternative File Manager

First we can try making devices visible to antiX

[put yourself in the plugdev group]
usermod -aG plugdev <username>
apt install gvfs
apt install udisks2

That should make internal disks and usb drives visible.
After reboot, internal partitions are visible to zzz-FM, but not to Insight.
Therefore Insight is of limited use.
We need to get Dolphin File Manager ( I chose Dolphin rather than Thunar because it is Qt based).

apt install dolphin

That also installs dolphin-data and libraries libkf6* and libqt6*
An entry appears in Applications ->System → Dolphin, and it starts.
It detects all internal unmounted partitons, but can not mount them or view the contents. The message is

An error occurred while accessing 'ArtixDinit', the system responded: Cannot request authentication for this action. The PolicyKit authentication system appears to be not available.: Not authorized to perform operation

When I check, polkitd is installed, as well as various libraries, but the daemon polkitd is not running before I start Dolphin, but it is running after I start Dolphin. Lumina does not start it because Lumina dies not use polkit, but Dolphin starts it.
So I just need a polkit rule.

Make a polkit rule

cd /etc/polkit-1/rules.d
vi 10-enable-mount.rules
[add the following lines
// Allow udisks2 to mount devices without authentication
// for users in the "wheel" group.
polkit.addRule(function(action, subject) {
    if ((action.id == "org.freedesktop.udisks2.filesystem-mount-system" ||
         action.id == "org.freedesktop.udisks2.filesystem-mount") &&
        subject.isInGroup("storage")) {
        return polkit.Result.YES;
    }
});

That allows any user in the “storage” group to mount files.
Make sure user is in the “storage” group

groupadd storage
usermod -aG storage <username>
reboot

After reboot , Dolphin now appears as an icon and its menu entry has shifted to Applications → Utility → File Manager (“Dolphin”).
That must be a Lumina feature. Other DE’s dont automatically make icons or reshuffle menus.
Dolphin will now mount any internal disk partiton you click on, without requiring authorisation.
That is the way a file manager ought to behave.
I think that solves the File Manager issue.
I will put it in the top panel.

7. Using Lumina

Lumina, in its present form with no active development, is a usable desktop. It has a small memory footprint, similar to Xfce and Trinity, and it has a more modern Qt feel than Trinity. It is the most easily configured of the 3 DE’s I have looked at for antiX

One issue I found is that conky starts when lumina is started, then dies.
It can be started again at the CLI, but it dies every time you click on an icon or the background ? When you click on the workspace changer , it sometimes starts again.? It appears this is a common conky issue, but none of the suggested fixes work for conky with lumina?

The most annoying thing, for me, about using Lumina, is that I have been unable to set ‘Focus follows mouse’. That is the traditional Unix mouse action. I miss it. Setting Applications → Settings → Desktop Configuration → Window Manager Settings → Focus Policy to ‘Active Mouse Focus’ seems to do nothing… it stays on ‘Click to Focus’.

RoxTerm works well with vi, but uRxvt does not.

The default File Manager is set to Insight. If you want to be able to mount internal partitios in the File Manager, set it to Dolphin. Applications → Settings → Desktop Configuration → Desktop Defaults → Applictions → File Manager. Choose File Manager (“Dolphin”) in the list of applications.

Summary of steps to prepare antiX26 with Lumina for making an .iso file

To make an .iso file for use as an install medium, one needs to setup certain special files before using the AntiX ‘ISO Snapshot’ tool.

  1. Include the install program.
    On a live antiX you see an Install icon, but it does not appear in an installed system. The program is there , it is called /sbin/minstall.
    To add an icon do the following
Look at a live antiX26 ( eg in a VM) and copy out the file `/usr/share/applications/minstall.desktop'
Boot antiX and copy/paste the `minstall.Desktop` file into `~/Desktop`
aAn icon should appear called Install AntiX.

When you boot my .iso live, you will see two install icons … one called “Custom antiX26 Install” … ignore that. The other is called “Install AntiX” .. use that one … it uses the antiX Gazelle installer.

  1. Setup /etc/skel
    In making an ‘Install’ iso, one’s home directory and other sensitive files in /etc are not copied. To control what the .iso has in the home directory of its ‘demo’ user do the following
    Files placed in /etc/skel will be placed in the /home/demo directory of the .iso file
    so
cd ~nevj
cp -r .config /etc/skel
cp -r .local /etc/skel
cp -r Desktop /etc/skel
cp -r .desktop-session /etc/skel
[cp -r .trinity /etc/skel]
cp -r .66 /etc/skel
cp -r .dinit.d /etc/skel
cp -r .runit /etc/skel
cp -r .s6-rc /etc/skel
cp -r .icons /etc/skel

cd /etc/skel
mkdir Downloads Documents Music Pictures Videos Templates

Those are the necessary non-personal files that will make the ‘demo’ xfce in the .iso boot up the same as my own configured xfce install.

  1. Setup /usr/local/share/live-files/
    To control what the .iso file has in its /etc directory over and above the default for a fresh install, one has to add what is required to /usr/local/share/live-files/files/etc
    In the present case all that is needed is slimski.conf, slimski.local.conf , and dinit.d/slimski.
cp /etc/slimski.conf /usr/local/share/live-files/files/etc
cp /etc/slimski.local.conf /usr/local/share/live-files/files/etc
mkdir /usr/local/share/live-files/files/etc/dinit.d
cp /etc/dinit.d/slimski /usr/local/share/live-files/files/etc/dinit.d/slimski
mkdir /usr/local/share/live-files/files/etc/init.d
cp /etc/init.d/slimski /usr/local/share/live-files/files/etc/init.d/slimski
mkdir /usr/local/share/live-files/files/etc/sv
cp -r /etc/sv/slimski /usr/local/share/live-files/files/etc/sv/slimski
mkdir /usr/local/share/live-files/files/etc/polkit-1
mkdir /usr/local/share/live-files/files/etc/polkit-1/rules.d
cp /etc/polkit-1/rules.d/10-enable-mount.rules /usr/local/share/live-files/files/etc/polkit-1/rules.d
cp -r /etc/chrony /usr/local/share/live-files/files/etc
  1. Run the antiX ‘ISO Snapshot’ tool from the menu.
    It will write scratch files in your home directory, and it puts the .iso file in /home/snapshot.

  2. Unfortunately steps 3 and 4. do not work for the case where the target .iso is a distribution .iso without persistance … ie for making my installation .iso.
    It is necessary to fix this by hand
    I used Void linux to do this step ( saves installing things in antiX)
    First loop mount the .iso file

mount -o loop snapshot-20260707_1726.iso /mnt

Then unsquash the file /mnt/antiX/linuxfs

# unsquashfs -d /home/nevj/tmp /mnt/antiX/linuxfs
Parallel unsquashfs: Using 12 processors
249876 inodes (244153 blocks) to write

[========================================================-] 494029/494029 100%

created 219698 files
created 21593 directories
created 30096 symlinks
created 0 devices
created 56 fifos
created 0 sockets
created 26 hardlinks


Second, transfer the required files from /usr/local/share/live-files/files/etc to /etc , in the temporary copy in ~/tmp

cd /home/nevj/tmp
cp usr/local/share/live-files/files/etc/slimski.conf etc
cp usr/local/share/live-files/files/etc/slimski.local.conf etc
cp -r usr/local/share/live-files/files/etc/dinit.d/slimski etc/dinit.d
cp -r usr/local/share/live-files/files/etc/init.d/slimski etc/init.d
cp -r usr/local/share/live-files/files/etc/sv/slimski etc/sv
cp -r usr/local/share/live-files/files/etc/polkit-1/rules.d/10-enable-mount.rules etc/polkit-1/rules.d
cp -r  usr/local/share/live-files/files/etc/chrony etc

Third … copy all files from the original .iso to a second working directory

mkdir ~nevj/tmp2
cd /mnt
cp -r * ~nevj/tmp2

Fourth … re-squash the edited unsquashed linuxfs folder , replacing the temporary copy in ~nevj/tmp2

cd  ~nevj/tmp2
cd antiX
rm linuxfs
mksquashfs ~nevj/tmp ~nevj/tmp2/antiX/linuxfs -comp xz -b 1024k -always-use-fragments
arallel mksquashfs: Using 12 processors
Creating 4.0 filesystem on /home/nevj/tmp2/antiX/linuxfs, block size 1048576.
[========================================================|] 215790/215790 100%

Exportable Squashfs 4.0 filesystem, xz compressed, data block size 1048576
	compressed data, compressed metadata, compressed fragments,
	compressed xattrs, compressed ids
	duplicates are removed
Filesystem size 2173779.48 Kbytes (2122.83 Mbytes)
	29.60% of uncompressed filesystem size (7344196.24 Kbytes)
Inode table size 1946906 bytes (1901.28 Kbytes)
	21.41% of uncompressed inode table size (9095422 bytes)
Directory table size 2397344 bytes (2341.16 Kbytes)
	36.16% of uncompressed directory table size (6629739 bytes)
Xattr table size 78 bytes (0.08 Kbytes)
	97.50% of uncompressed xattr table size (80 bytes)
Number of duplicate files found 62576
Number of inodes 271444
Number of files 219699

....  many lines skipped .....

Fifth … make a new file linuxfs.info file

du -sb ~nevj/tmp 
cd ~nevj/tmp2/antiX
vi linuxfs.info
[edit in the result of the du command]

Sixth … make a new linuxfs.md5 file

md5sum linuxfs
vi linuxfs.md5
[edit in the new md5sum]

Seventh … Build the final bootable ISO
Use xorriso to master the new bootable ISO for distribution. Make sure xorriso and isolinux [in void ‘syslinux’] are installed.

cd ~nevj/tmp2

sudo xorriso -as mkisofs \
  -V "Custom_antiX26_Install" \
  -o ../antix26-lumina-x86_64.iso \
[ -o ../antix26-xfce-consolekit-x86_64.iso \]
  -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
[in void -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin \]
  -c boot/isolinux/boot.cat \
  -b boot/isolinux/isolinux.bin \
  -no-emul-boot -boot-load-size 4 -boot-info-table \
  -eltorito-alt-boot \
[  -e boot/uefi/efiboot.img \]
  -e boot/grub/efi.img \
  -no-emul-boot -isohybrid-gpt-basdat \
  .

The bracketed line [ -e boot/uefi/efiboot.img \] does not work for antiX26 … the file is not there. That means the .iso will not do an UEFI boot from a usb drive … it will do a grub boot, on either a UEF-bios computer or a Legacy-bios computer.
The output from above is

GNU xorriso 1.5.6.pl02 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:../antix26-lumina-x86_64.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 64.4g free
xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA 119 rules
Added to ISO image: directory '/'='/home/nevj/tmp2'
xorriso : UPDATE :    1018 files added in 1 seconds
xorriso : UPDATE :    1018 files added in 1 seconds
xorriso : NOTE : Copying to System Area: 432 bytes from file '/usr/lib/syslinux/isohdpfx.bin'
libisofs: NOTE : Automatically adjusted MBR geometry to 1018/137/32
libisofs: NOTE : Aligned image size to cylinder size by 396 blocks
xorriso : UPDATE : Thank you for being patient. Working since 0 seconds.
xorriso : UPDATE :  72.46% done
ISO image produced: 1115728 sectors
Written to medium : 1115728 sectors at LBA 0
Writing to 'stdio:../antix26-lumina-x86_64.iso' completed successfully.

Warnings are OK, but check for errors.

The completed, custom install ISO will be generated in the parent directory as antix26-lunina-x86_64.iso.

  1. Test the .iso file in a VM, and then written to a USB flash drive.

Things to do in antiX26 (not DE related)

  1. Setup Network Time Protocol
    There are 2 alternative packages for ntp
  • chrony
  • ntpsec
    We are going to use chrony, so
apt install chrony

For the dinit init system:
There is no service package dinit-service-chrony, so we have to setup a servic
e file in /etc/dinit.d

cd /etc/dinit.d
vi chrony
[add the following lines]
type = process
command = /sbin/chronyd -d
depends-on = loginready
logfile = /var/log/chrony-dinit.log

Start and enable the service

dinitctl start chrony
dinitctl status chrony
dinitctl enable chrony

or use the GUI under Control Centre → Services
Verify that everything is working with

chronyc tracking

If the displayed time is out by a lot ( eg 1 hour ) do

dpkg-reconfigure tzdata

and check that the local time zone is set correctly.

For the runit init system:
There is a package runit-service-chrony , but we shall do it by hand…
Configure chronyd as follows

cd /etc/sv
mkdir chronyd
cd chronyd
vi run
[edit in the folowing lines]
#!bash
exec /sbin/chronyd -d
[save from vi]
chmod 755 run

Then make a link

cd /etc/runit/runsvdir/default
ln -s /etc/sv/chronyd chronyd

The daemon should be running.

For the sysVinit init system:
The chrony package installs a service file in /etc/init.d.
You do not need to do anything.
Chronyd should startuo at boot.

For the s6-rc init system:
There is no service package for chronyd in s6-rc.
This is very difficult. s6-rc had config is another whole topic.

For the s6-66 init system:
For s6-66 there is a config package 66-service-chronyd, so all we need do is install the config package

apt install 66-service-chronyd

The daemon should be running

ps ax | grep chron
 7197 ?        S      0:00 s6-supervise chronyd-log
 7198 ?        S      0:00 s6-supervise chronyd
 7205 ?        Ss     0:00 /usr/bin/s6-log -d3 n3 s1000000 /var/log/66/chronyd
  1. DNS lookup failure
    AntiX used connmand in place of NetworkManager. Check that connmand is running. If running, you need to use connmanctl` to make sure connman uses dhcp on the correct interface and has nameservers. Try the following
connmanctl services
[make sure your interface's service-name is at top of the list ... note  the name]
connmanctl config <service-name> --ipv4 dhcp
connmanctl config <service-name> --nameservers 1.1.1.1 8.8.8.8

Test that DNS is working by pinging something.

As usual, the markdown files used to construct this post are available on my github repo