voidsplash
provides a simple animated splash screen. Designed with
voidlinux in mind, voidsplash should work anywhere runit
is used as PID 1 and with minimal modification with any other init system.
voidsplash
does not require any modification to the kernel or the initramfs.
voidsplash
displays invidual images on a framebuffer device during the boot
process.
voidsplash
requires a POSIX compatible shell (tested with dash
), a working
framebuffer device and fbv
(an image viewer for the framebuffer).
On voidlinux:
# xbps-install -S fbv
Ensure that your framebuffer is working by running fbv
on a virtual console
with an image of your choice: (fbv
should support png, jpeg and bmp depending
on compile time options)
# fbv -cike image.png
Press q
to exit fbv
.
Run the installation script install.sh
. If the boot animation disappears after
an update, execute autofix.sh
to enable it again.
Copy voidsplash
to /bin
(alternatively, voidsplash
can be installed
anywhere but should be on the root partition so that it can be accessed before
disks are mounted). Make sure that it is executable.
voidsplash
should be executed as early in the boot process as possible. At the
beginning of /etc/runit/1
:
#!/bin/sh
/bin/voidsplash
It can also run on shutdown by executing it in the beginning of /etc/runit/3
.
Create the directory /etc/voidsplash/
. This will contain the frames to display
while the system is booting.
voidsplash can be configured by means of shell variables inside
voidsplash
. Current options are:
-
SPEED
sets the time, in seconds, to show each frame. This is an argument tosleep
---fractional values may be used -
TARGET
is the name of a process that voidsplash waits for. Once this process is running, voidsplash will exit. If this process does not exist or is not started at boot, voidsplash will only exit after timeout. -
TIMEOUT
is the timeout in seconds.
Place individual frames in /etc/voidsplash
. It is recommended that files are
named sequentially (for example, void-0.png void-1.png void-2.png …). fbv
will
scale images to the size of the display without changing the aspect ratio. If
you do not want black bars make sure that the images have the same aspect ratio
as the monitor.
If you have an animated gif you wish to use, ImageMagick can be used to create individual frames:
$ convert void.gif -coalesce void.png
will create void-0.png void-1.png …
with individual frames from void.gif
.