Plymouth/Theme creation

From Gentoo Wiki
Jump to: navigation, search

It is possible to create themes for Plymouth, however documentation for theme creation is extremely difficult to find on the internet. This page aims to provide a few helpful links so that one may understand the Plymouth theme creation process. Eventually there may be a tutorial (or 'guide' as we like to call them here on the wiki) on how to create a simple theme.

Of course, Plymouth must be installed before any newly created themes can be viewed or tested. Head up a level and do that now if it is not done yet.

Any potential theme creator should have a bit of knowledge about programming in C, as C is the language Plymouth is written. A full depth of knowledge will not be required.

How Plymouth works

Before starting a design process, it is important to know how the program(s) being used in project operate.

As Plymouth's README states:

plymouth ships with two binaries: /sbin/plymouthd and /bin/plymouth

The first one, plymouthd, does all the heavy lifting. It logs the session and shows the splash screen. The second one, /bin/plymouth, is the control interface to plymouthd.

It supports things like plymouth show-splash, or plymouth ask-for-password, which trigger the associated action in plymouthd.[1]

Creating a simple Plymouth theme

Design

Before something can be well engineering, there must first be a plan. The plan is what happens during the design phase. For the purpose of keeping this article short and sweet, we will be modifying the default "Solar" Plymouth theme to include some text: "My First Theme".

The files

The files for the Solar theme come with Plymouth. On Gentoo systems they can be found in the /usr/share/plymouth/themes/solar directory. Change to this directory now.

Test

Testing and debugging can be performed from an X environment. Start plymouthd in non-daemon mode:

root #plymouthd --no-daemon --debug

Ask to render the splash via the plymouth front end:

root #plymouth show-splash

To stop the rendering, ssh to the unit and issue:

root #plymouth quit

Build

genkernel-next

Presuming genkernel-next has been merged with the plymouth USE flag, and then configured to select a specific theme in /etc/genkernel.conf:

root #genkernel initramfs

dracut

External resources

References