When booting with init=..., plymouthd disables itself. It is problematic
when using bootchartd (bug #22180). plymouth:force-splash allows to
force plymouthd splash.
Ensure init= value is not used when starting plymouthd for shutdown.
Do it for the same reason we did it in the frame-buffer
plugin in the previous commit. It's the "right" thing
to do and now that we map lazily, doing it the old way
is broken.
Before we were tearing down the displays and keyboard on hide
splash but not bringing them back on subsequent show splashes.
This fixes that. We can probably throw less stuff away on
hide splash, but this is a more conservative fix for now.
All objects can now be transformed into strings which allows them to be used as
hash indexes. Some rules do still apply. If an object is lost (freed....)
another object may take on the name of the lost one. The object address is used
to create a string in the form "#(0x123abc45)". NULL has the string "#NULL".
So arr[NULL] is the same as arr["#NULL"], and similar for the objects.
This merges the "x11-renderer" branch to master.
In order to make debugging splash plugins easier,
and in order to make debugging multi-head renderering
possible on single head displays, Charlie wrote an
X11 rendering plugin.
This plugin displays plymouth in a running X session,
instead of on the console.
It currently only supports graphical plugins. At some
point it may grow support for text plugins, too, using
vte. That will take some reworking of the plymouth
daemon core.
This could some day serve as a basis for providing a
graphical theme chooser application (like
gnome-screensaver-preferences), although it's not clear
yet that's a good idea.
Right now, it's a great debugging and development tool,
though.
Some drivers completely choke with the amount of data plymouth is
sending over the wire. This makes sure that plymouth doesn't
keep assaulting the X server when it's already overworked by asking
the server to return back a pixel before continuing.
Previously it was force_text_mode ().
Now, we do ignore_mode_changes (). The
force_text_mode() behavior can be emulated by
setting the console mode to text mode and then
calling the new API.
This will be useful because we can make
ply_console_set_mode a NOOP for renderers that
don't render directly to the console.
This renderer is useful for testing plymouth splash
plugins without leaving X. It simulates a multi-head
display by creating two X windows each representing
one monitor.
This merges the "seat-rework" branch to master.
Instead of talking to /dev/fb, we now use libdrm
to set up the drawing area. This gives us the
functionality we need for querying the user's
monitor layout.
There are cases where /dev/fb works when the new
interfaces don't. For those cases we fall back
to /dev/fb.
Drivers backed by TTM memory manager don't support mapping the
kernel backed framebuffer console, so can't be used for doing
a smooth transition (unless you use /dev/fb). In single head
configurations, there isn't a big advantage to using libdrm
anyway, so we bail for TTM drivers.