fleshless.org No. You move.

 ____                   _    
/ ___| _ __   __ _ _ __| | __
\___ \| '_ \ / _` | '__| |/ /
 ___) | |_) | (_| | |  |   < 
|____/| .__/ \__,_|_|  |_|\_\


Spark is an Arch Linux meta-distro with systemd swapped out for other solutions that are arguably even worse.


Spark is a personal project made to fit my personal tastes. I do not promise to provide support to you. Should you decide to use it, it may very well happen that you will be on your own facing any issues that may arise.



The installation process is very similar to Arch's, so you can mostly follow the Arch Install Guide. The differences, as follows:

Instead of installing the base package group with pacstrap, download the latest rootfs tarball and smear it all over the target dir. Provided you have a decent enough connection, you can do this:

curl https://mirror.fleshless.org/spark/rootfs/latest.tar.zst | zstd -cd | tar -C /mnt -x

You should run pacman -Suy in the chroot, as the rootfs is only updated once a month or so.

There is no prebuilt kernel in the rootfs. You can either build your own or install the linux package.

There is no (e)udev (or a device node manager of any kind ) in the rootfs. You will have to choose and install the one you want. Note that if you go for the stock Arch kernel, you will need systemd-udev or eudev to provide the udev hook.

There is a central config file: /etc/rc.conf. Modify it to your liking.

Add init=/usr/bin/sinit to your kernel command line.

/proc is mounted with hidepid=2 by default, so users only see their own processes.


Most of the related code is found here.



If you write new init scripts for ssm, consider showing them to me. I will add them to the services repo if they are clean enough.

Device permissions

If you are not using a logind implementation (elogind from gentoo is a thing), you would have to add users to respective groups for them to use devices. i.e. video, audio, fuse and such.

Device node managers

If you choose not to use a device manager that provides libudev (udev or eudev), hotplugging in X.Org will not work. You will need to set set up your input devices in X.org. You can also do that by installing xorg-noudev-conf from AUR or the spark repo.


spark-rc creates /run/utmp by default. To use wtmp and btmp, you will have to create them by hand or add them to /etc/rc.conf



There's an IRC channel on OFTC: #spark

Also see the about page.