Skip to content

Command line ​

One binary has every role. The name it runs under and its first argument pick the role:

Run asRole
plymouthdThe daemon, which detaches once it is ready, as plymouthd does
lys-splash --mode=..., with --mode firstThe daemon, in the foreground
plymouth, or lys-splash with anything elseThe client

The daemon ​

OptionWhat it does
--mode=MODEWhat the splash shows for: boot (the default), shutdown, reboot, kexec or updates
--theme=FILEThe theme file, by default /etc/lys-splash/theme.yaml
--pid-file=FILEWrites the daemon's pid here, and removes it on exit
--no-daemonAs plymouthd, stays in the foreground
--debugLogs at debug level
--attach-to-sessionAccepted for plymouthd's command line; the splash always runs on the console's session

When a splash is already running, a new daemon reports ready and exits 0. That is how the initrd's splash carries on into the real root while lys-splash-start.service starts there too.

The units and scripts start the daemon; you should not need to.

The client ​

The client talks to the daemon as plymouth's does, for scripts that call plymouth. Only root's requests are served; any other user's are refused, which is exit status 1.

These take the place of the command, and only one runs:

OptionWhat it does
--pingChecks whether a daemon is running
--waitWaits until the daemon quits; exits 0 at once if none is running
--quitTells the daemon to quit
--has-active-vtChecks whether the daemon has an active VT
--sysinitTells the daemon the root is writable
--show-splash, --hide-splashShows or hides the splash
--ask-for-passwordAsks for a password and prints it
--detailsTells the daemon the boot hit an error
--newroot=DIRTells the daemon the new root is mounted at DIR
--update=STATUSTells the daemon a boot status
--ignore-keystroke=KEYSStops waiting for these keys

These are commands:

CommandWhat it does
show-splash, hide-splashShows or hides the splash
display-message --text=TEXT, message --text=TEXTShows a message
hide-message --text=TEXTHides that message, if it is the one showing
change-mode --MODE--updates, --system-upgrade and --firmware-upgrade show the update's progress bar; --boot-up, --shutdown, --reboot and --system-reset show the throbber
system-update --progress=NShows the update's progress bar at N percent
update --status=STATUSTells the daemon a boot status
update-root-fs --new-root-dir=DIRMoves the daemon into the root at DIR
update-root-fs --read-writeTells the daemon the root is writable
deactivateDrops DRM master and keeps the frame on screen, for the hand-over
reactivateTakes DRM master back and shows the splash again
quitQuits and gives the console back with the boot messages
quit --retain-splashQuits and leaves the frame on screen
reloadReads the theme file again
pause-progress, unpause-progressPauses or resumes the animation
report-errorTells the daemon the boot hit an error, which it logs
ignore-keystroke --keys=KEYSStops waiting for these keys
ask-for-passwordAsks for a password
ask-questionAsks a question, whose answer is echoed as it is typed
watch-keystroke --keys=KEYSWaits for one of these keys, or any key without --keys

ask-for-password takes --prompt, --dont-pause-progress, --command and --number-of-tries. --command runs a command with the password on its standard input, first trying every password already typed, then asking until the command succeeds or the tries run out; 0 tries is no limit. With no daemon running it runs the command without a password on standard input. ask-question takes --prompt, --command and --dont-pause-progress, and watch-keystroke takes --command.

Exit status ​

StatusMeaning
0Done
1A refused request, an unanswered prompt or bad usage
2The daemon hung up in the middle of a request
3No daemon is running

Released under the MIT License.