antiX with xfce: the ISO: consolekit version

This is my implementation of antiX26 with Xfce with consolekit and slimski.

It complements the turnstile implementation documented here

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

It corrects the partition mounting and reboot/halt issues with raw Xfce, but in a slightly different way to the turnstile version.

The following replies contain some howto info … for those DIY enthusiasts and as documentation.

I would like to acknowledge assistance from @Rosika and @ProwlerGr .

I hope either the consolekit or turnstile may be helpful to someone wanting to start in antiX with a DE, instead of the default WM’s.

Please report any issues.

Summary of steps to add Xfce4 to antiX26 using consolekit2 session manager

To install and configure Xfce with ConsoleKit in antiX do the following

  1. Install some basic packages
apt install consolekit
apt install libpam-ck-connector
apt install xfce4
apt install xfce4-goodies

Some documents recommend installing lightdm, but I have found that counterproductive. I am staying with the slimski Login Manager.

  1. Install some init system packages to support ConsoleKit
apt install dinit-service-consolekit
apt install runit-service-consolekit
apt install s6-rc-service-consolekit
apt install 66-service-consolekit

There is no package for sysvinit.

It is not necessary to start the console-kit-daemon. It is preferable to disable turnstile - both consolekit and turnstile are login daemons ( ie replacements for elogind or systemd-logind) - they will clash

dinitctl disable turnstiled
dinitctl enable consolekit - not required?
[similar for other init systems]
apt purge turnstile

Reboot into Xfce.

  1. Setup panels.
    Reboot, choose xfce in the Login Manager and configure panels
    There are 4 workspaces in the top panel, but the bottom panel is almost empty.
    To configure an Xfce panel in antiX, there is no menu button … you right click on the panel , and go to Panel → Panel Preferences.
    There I was able to add Firefox, Thunderbird, and Thunar , and I was able to add a cpu-monitor, network-monitor, and sensor-monitor on the right hand end.

  2. Make Thunar see internal partitions
    At this stage Thunar will see files, but not internal partitions. To make internal filesystems visible to Thunar, one needs to do

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

Now (after a reboot), Thunar will be able to see internal filesystems, and they will also appear as icons on the background screen.
But, Thunar will still not be able to mount internal filesystems. … there is a permission problem.
To fix the permission problem mounting internal filesystems do one of the following

apt install lxpolkit
apt install lxsession
[this will provide a permissions popup]

or

cd /etc/polkit-1/rules.d
vi 10-enable-mount.rules
add the following lines
polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" &&
 subject.isInGroup("storage")) {
        return polkit.Result.YES;
}});
exit and save
groupadd storage
usermod -aG storage <username>
reboot
[The polkit rule will allow mounting without the permissions popup.]

I chose the latter.

Then one can use Thunar, or double click on filesystem icons,
as well as the options which work with IceWM, ie Disk Manager or sudo mount /dev/sdxx mountpoint

  1. Set the mouse focus
    The antiX menus do not contain xfce4-settings-manager… I have to start it at the CLI by typing
xfce4-settings-manager

Then I get a GUI for settings and I can do the following

  • Window Manager → Focus → Focus follows mouse
  1. Add some antiX programs to the menues
    There are two usefile antiX settings programs missing from the Xfce menues. They are xfce4-settings-manager and antiX Control Centre. One can add items to the menues with Applications-> Settings → Add Menu Item, or use my Add-desktop icon which I have added to Panel2
    It requires knowing the name of the program executable and the name of its .desktop file. For example AntiX Control Centre executable is /usr/local/bin/antixcc.sh and its desktop file is antiXCC.desktop.
    Say ‘No’ to the popup question about ‘Disable automaiic applications menu…’

  2. Add a personal background image.
    Xfce has its default background image hardwired in the code. It is xfce-x.svg
    If you wish it to boot up with a different image, the simplest way is to make a symbolic link

cd /usr/share/backgrounds/xfce
save the default image
mv xfce-x.svg xfce-x.orig.svg
then make a link
ln -s path-to-new-image xfce-x.svg

So it now looks like this

-rw-r--r-- 1 root root    9298 Mar  3  2025 xfce-x.orig.svg
lrwxrwxrwx 1 root root      42 May 20 21:21 xfce-x.svg -> /usr/share/backgrounds/mourne/mourne14.jpg
  1. Fix logout issues with slimski
    If you Logout using the username icon on the top panel, no matter what you choose from Logout, Reboot, Shutdown , you end up back at the Login Manager screen. There you are supposed to type ‘halt’ or’reboot’ as user and the root password, but it does not work because slimski is in ‘preview’ mode.

The QUICK FIX involves bypassing slimski altogether , and halting or rebooting directly ( ie as with poweroff orreboot CLI commands) .

The SECOND FIX involves changing the slimski configuration
Do the following

[edit slimski.local.conf
add the following]

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

default_sessiontype    xfce 

That alone is not enough

Go to /usr/lib/ConsoleKit/scripts
Edit the file ck-system-stop

#!/bin/sh

# shutdown -h now
exec  /sbin/poweroff

ie I got rid if shutdown and used the system poweroff command

Edit the file ck-system-restart

#!/bin/sh

# shutdown -r now
exec /sbin/reboot

same

Then, give permission for any usr to do stop or restart

cd  /usr/share/polkit-1/actions
[Edit the file org.freedesktop.consolekit.policy]

<?xml version="1.0" encoding="UTF-8"?> Stop the system System policy prevents stopping the system yes no yes Stop the system when multiple users are logged in System policy prevents stopping the system when other users are logged in no auth_admin_keep Restart the system System policy prevents restarting the system yes no yes Restart the system when multiple users are logged in System policy prevents restarting the system when other users are logged in no auth_admin_keep Suspend the system System policy prevents suspending the system no yes Suspend the system when multiple users are logged in System policy prevents suspending the system when other users are logged in no auth_admin_keep Hibernate the system System policy prevents hibernating the system no yes Hibernate the system when multiple users are logged in System policy prevents hibernating the system when other users are logged in no auth_admin_keep Hybrid sleep the system (sleep + hibernate) System policy prevents hybrid sleeping the system no yes Hybrid sleep the system (sleep + hibernate) when multiple users are logged in System policy prevents hybrid sleeping the system when other users are logged in no auth_admin_keep ```

In the section
I added the line <allow_any>yes</allow_any>
and similar for the section

That allows anyone to do stop or restart
I did not touch the suspend or hibernate sections, nor the multi-user sections.

Finally, slimski needs a delay .
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/bib
vi my-slimski-wrapper.sh
[add the following lines]
#!/bin/sh
sleep 8
exec /usr/bin/slimski -nodaemon -z -i
[make it executable]
chmod 755 my-slimski-wrapper.sh

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

Now any user can halt or reboot via the top panel username button
If the delay is inadequate Logout->Restart or Logout->Shutdown may drop you back to the Login Manager screen. From there one can type 'halt or ‘reboot’ for the username and give the superuser password , and it will reboot or poweroff.

If the delay is really inadequate, it may 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’. In this case relogin as yourself and use poweroff or reboot at the CLI.

The above is a known issue with slimski. If it restarts while the xserver is still running it will start in preview mode.

9. Change the default WM in slimski 

We want slimski to offer Xfce at boot up.
Go to /etc/slimski.local.conf and change the following

## You can also set here the default sessiontype
# default_sessiontype     zzz-icewm
default_sessiontype     xfce
  1. Setup autostarted apps.
    Go to Applications → Other → xfce4-Settings-Manager
    Choose Session and Startup → Application Autostart
    Tick or untick apps as required.

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

[I am re-posting this because there have been some modifications from the version posted with the turnstile topic]

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`
  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
mkdir -p /etc/skel/.config/xfce4
cp -r ~/.config/xfce4/ /etc/skel/.config
chown -R root:root /etc/skel/.config/xfce4
cp -r .local /etc/skel
cp -r Desktop /etc/skel
cp -r .desktop-session /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/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
  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
    First loop mount the .iso file

mount -o loop snapshot-20260612_2011.iso /mnt

Then unsquash the file /mnt/antiX/linuxfs

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

[===========================================================|] 437849/437849 100%

created 194364 files
created 20051 directories
created 28232 symlinks
created 0 devices
created 46 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
cp -r usr/local/share/live-files/files/etc/polkit-1/rules.d 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

Fifth … make a new file linuxfs.info file

du -sb ~nevj/tmp 
vi linuxfs.info
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-xfce-turnstile-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

xorriso 1.5.6 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:../antix26-xfce-turnstile.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data,  138g free
xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA 119 rules
Added to ISO image: directory '/'='/media/nevj/Void-musl/home/nevj/tmp2'
xorriso : UPDATE :    1017 files added in 1 seconds
xorriso : UPDATE :    1017 files added in 1 seconds
xorriso : NOTE : Copying to System Area: 432 bytes from file '/usr/lib/ISOLINUX/isohdpfx.bin'
libisofs: NOTE : Automatically adjusted MBR geometry to 1019/122/32
libisofs: NOTE : Aligned image size to cylinder size by 68 blocks
xorriso : UPDATE :  0.46% done
xorriso : UPDATE :  1.29% done
xorriso : UPDATE :  3.15% done
xorriso : UPDATE :  5.92% done, estimate finish Mon Jun 15 20:20:29 2026
.....
xorriso : UPDATE :  99.89% done
ISO image produced: 994544 sectors
Written to medium : 994544 sectors at LBA 0
Writing to 'stdio:../antix26-xfce-turnstile.iso' completed successfully.

Warnings are OK, but check for errors.
The consolekit case is similar

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

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

Things to do in antiX26 (not xfce related)

[This is the same as the turnstile version]

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

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 = /usr/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.

The daemon chronyd needs to be set to start at boot in each init system.

  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 replies posted here which constitute documentation are available as .md files at