Commit graph

68 commits

Author SHA1 Message Date
Diego Augusto
a2f03d4b98 scripts: Update keymap-render script to handle xkb keymaps too
At the moment the keyboard-render script only generates short
names for console layouts.

We're going to add /dev/input support to plymouth using
libxkbcommon, so we're going to need a list of of those keymaps
too.

This commit adds that.

Some contributions by n3rdopolis and Ray Strode.
2022-11-29 09:22:06 -05:00
Ray Strode
0902c25eb6 Revert "Add input device support"
Apparently the:

[x] Squash commits

box was checked when merge request plymouth/plymouth!177 was merged.
Oops.

We want good commit messages for such a big change, though, so people
doing code spelunking later have a fighting chance of following what's
going on.

This reverts commit dacfb36b57.

Subsequents commits will bring it back, peicemeal.
2022-11-29 09:14:37 -05:00
Diego Augusto
dacfb36b57 Add input device support 2022-11-27 01:38:00 +00:00
Ray Strode
a5c1ccd711 autogoo: Drop the goo
We have meson support now, get rid of the cruft.
2022-11-14 13:40:56 -05:00
Niels De Graef
95d3e3bbf9 Port build system to Meson 2022-11-14 12:21:55 -05:00
Ray Strode
729869f5c0 spinfinity: use logo file passed to configure
At the moment we hardcode the header to a logo file that ships
in fedora.

This commit changes it to use the logo configured by the distro.

https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/106
2022-01-11 14:28:45 +00:00
Ray Strode
ab986a9582 autogoo: use /proc/self/fd/0 instead of /dev/stdin
The symlink isn't available in some sandboxes:

99bf64efdc (note_860312)
2020-07-09 09:34:36 -04:00
Ray Strode
6114e48404 po: drop intltool usage
gettext can do most everything intltool can do anyway, so just
drop intltool.
2020-07-08 15:12:54 -04:00
Hans de Goede
50c619ed41 two-step: Add UseEndAnimation setting
We try to start the end animation early based on our progress accounting
but this is highly unreliable because e.g.:
-It counts time to enter the diskcrypt passwd as normal boot time, while
 this varies wildly from boot to boot
-Boot times for laptops can differ significantly between docked / undocked
 state

Between gdm calling /bin/plymouth deactivate and the drm plugin's deactivate
method getting called there can be e.g. 2.1 seconds (from a random boot),
with a theoretical maximum of 3 seconds (2 seconds to finish the throbber +
1 second for the end animation).

On a modern system userland boot should be able to finish in say 5 seconds,
making gdm wait an additional 1 - 3 seconds for deactivation is a huge amount
of extra wait time!

This commit adds a new "UseEndAnimation" option to the two-step plugin,
which defaults to true. Setting this to false makes deactivation immediate.

This works nicely with the spinner (and bgrt) themes since we do not really
do anything special in the end animation there anyways and since we fade-over
into gdm things will still look ok, while shaving a signifcant chunk of our
boot time.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2020-03-11 19:22:31 +00:00
Hans de Goede
5598196945 themes: Drop UseFirmwareBackground=true from spinner/bgrt firmware-upgrade settings
The spinner theme should never have UseFirmwareBackground=true and in the
bgrt case we should not use it for modes which set a Title as the Title
location will conflict with the firmware background vendor logo.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2020-03-10 14:21:36 +00:00
Hans de Goede
8e811f8f88 themes: spinner/bgrt: Modify password dialog to match gnome 3.34 changes
There have been some small tweaks to the gnome lockscreen password
entry filed which we use as template for the diskcrypt password dialog,
adjust our dialog to match these tweaks.

Also move the keyboard indicator to be close to the entry, so that it
is clear it belongs to the entry.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-10-15 11:33:55 +02:00
Hans de Goede
c87a2c07b7 themes: Add images for keyboard indicator support to spinner and spinfinity
Add capslock.png, keyboard.png and keymap-render.png files to the
spinner and spinfinity themes, this enables keyboard indicator
(keymap and capslock state) support for these themes.

capslock.png was made by me drawing the icon in xfig, then export as
svg, at some blank rows at the bottom and save as png. I've added the
capslock.fig file to the spinner theme dir.

keyboard.png comes from google's material-design-icons (original is
apache licensed): https://github.com/google/material-design-icons/
I've also added a copy of the 2 svg source files to the spinner theme dir.

keymap-render.png is generated by scripts/keymap-render.py.

Fixes: #85

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-10-01 00:43:34 +02:00
Hans de Goede
08490fed8a themes: Move spinifity from the throbgress splash to the two-step splash
At one point in time the two-step splash plugin was forked from the
throbgress splash. Since then the two-step plugin has grown to be more
flexible / configurable.

The two-step plugin is now flexible enough that with the right config
it can mimick the throbgress plugin. Moving the spinifity theme to
use the two-step plugin allows us to remove the throbgress plugin,
removing the code duplication between the 2 plugins.

An added advantage of this is that the two-step plugin has more functionality,
such as capslock indicator support for the password dialog.

Note the throbber-??.png images were modified to add 24 transparant rows at
the top, to get the extra hardcoded throbber-height / 2 space which the
throbgress plugin added between the throbber and the header-image, this
was done automatically using the following command:
convert old.png -background transparent -gravity northwest -splice 0x24 new.png

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-09-27 09:36:51 +02:00
Richard Hughes
cd4a601094 Add a new firmware-upgrade mode for use by fwupd
This allows us to have accurate localised text, and also to use the vendor BIOS
logo when applying firmware updates.
2019-05-29 17:52:40 +00:00
Hans de Goede
8db9e86898 themes: Update spinner and bgrt background settings
Update the spinner and bgrt themes background to solid black so that we get
the same background, independent of whether the firmware-splash (ACPI
BGRT extension) is available and to closer match the mock-ups from:

https://wiki.gnome.org/Design/OS/BootProgress

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-03-25 08:35:12 +01:00
Hans de Goede
921328b1ef Prefix Title and Subtitle theme config keywords with an underscore
Prefix Title and Subtitle theme config keywords with an underscore ('_')
so that "intltool-extract --type=gettext/ini" can be used to make the
title and subtitle translatable.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-02-26 17:05:14 +01:00
Hans de Goede
a42915c972 Add new reboot and system-upgrade modes
Some themes show certain text strings to the user depending on the mode,
see e.g. the shutdown vs reboot mockups of:
https://wiki.gnome.org/Design/OS/BootProgress

Besides during shutdown vs reboot, we also want different theming for
installing offline (security) updates versus doing an offline OS upgrade.

To make this possible this commit adds new reboot and system-upgrade
modes which can be specified either when starting plymouthd, or through
plymouth change-mode --<mode>.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-02-26 17:01:03 +01:00
Hans de Goede
1c7ce43983 two-step: Make ProgressBarShowPercentComplete a per mode setting
Make ProgressBarShowPercentComplete a per mode setting, this gives the
theme more flexibility wrt which messages to show in different modes.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-02-25 16:57:54 +01:00
Hans de Goede
38771c16e4 themes: Update spinner and bgrt theme offline updates mode
Make the spinner and bgrt offline updates mode match the GNOME design
mockups from: https://wiki.gnome.org/Design/OS/BootProgress

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-02-23 14:56:54 +01:00
Hans de Goede
9bfffa9257 two-step: Add per mode settings
We want theme files to be able to specify different settings for
different modes ("boot-up" / "shutdown" / "updates"). Specifically we
want themes to be able to specify a text for (offline) updates mode to
tell the user what is going on, see the mockups at:
https://wiki.gnome.org/Design/OS/BootProgress

This commit adds support for per mode settings to the two-step plugins
and for starters moves the UseFirmwareBackground setting there, since we
don't want to show the firmware-background when showing the help-text.

Follow-up commits will add support for specifying the (optional) per mode
text to show, note eventually we will need to make these texts translatable.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-02-23 14:56:54 +01:00
Hans de Goede
203fe586bb themes: Update spinner and bgrt diskcrypt dialog
Update the spinner and bgrt themses diskcrypt dialog to match the dialog
from the "Disk decrypt" mockup from:

https://wiki.gnome.org/Design/OS/BootProgress

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-01-16 09:29:32 +01:00
Hans de Goede
a7ab82171f themes: spinner: Add watermark alignment settings
Add watermark alignment settings, so that distros can simply drop
a watermark.png into the theme dir from another package and then have it
show up in the right place.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-01-16 09:29:32 +01:00
Hans de Goede
ee2025824a themes: bgrt: Remove duplicate images
The bgrt theme is using the exact same images as the spinner theme,
remove these and point ImageDir to the spinner theme dir instead.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-01-16 09:29:32 +01:00
Hans de Goede
d62be07815 two-step: Make clearing the dialog-background when using the firmware background optional
Since the ask-for-password or ask-question dialog and the firmware background
may intersect so far we've been clearing the screen to black when showing a
dialog and using the firmware background.

This is not always desirable, this commit adds a new
"DialogClearsFirmwareBackground" option to the two-step based theme config
file, which enables this behavior when set.

The new default is to keep using the initial (firmware) background when
showing a dialog, which matches the non firmware-background paths.

Also update the bgrt theme to use the "DialogClearsFirmwareBackground"
option, keeping the current behavior for that theme.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-01-09 12:29:42 +01:00
Hans de Goede
6cf1bb3e37 two-step: Rename UseBGRT to UseFirmwareBackground
Rename the UseBGRT theme configfile option to UseFirmwareBackground,
to make it clear what this does using language which most users will be
able to understand, rather then using the cryptic BGRT ACPI table reference.

While at it also switch to using the new ply_key_file_get_bool function, so
that users can edit an existing configfile with "UseFirmwareBackground=true"
in there and change it to "=false" and actually have that work as expected.

The switch to ply_key_file_get_bool also fixes a memleak as
ply_key_file_get_value returns a strdup-ed value which we were not free-ing.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2019-01-09 12:03:55 +01:00
Hans de Goede
4925a485c5 themes: Add new BGRT theme, using the firmware boot splash as background
Add a new BGRT theme, this is a copy of the spinner theme, using the ACPI
BGRT graphics (firmware boot splash) as logo when available.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2018-11-27 08:56:02 +01:00
Jakub Steiner
75d93c0f30 spinner theme: update
- update spinner & lock to current visuals

Hans de Goede: Add extra throbber-00##.png files to Makefile.am, small tweak
to the new lock image.
2018-11-23 17:18:50 +01:00
Ray Strode
2c482f2350 script: only support one message at a time
That's the other themes do, and callers
expect it.
2016-05-20 16:40:08 -04:00
Bastien Nocera
26ab3df47a spinner: Add noise texture
As per GNOME mockups:
https://wiki.gnome.org/Design/OS/Boot

https://bugs.freedesktop.org/show_bug.cgi?id=88888
2015-02-03 10:19:32 -05:00
William Jon McCann
7f83a660c9 Make contact the default text plugin
And rename the old text plugin "tribar"

https://bugs.freedesktop.org/show_bug.cgi?id=55286
2013-09-23 15:09:07 -04:00
William Jon McCann
4a824ff649 Add contact plugin
https://bugs.freedesktop.org/show_bug.cgi?id=55286
2013-09-23 15:09:07 -04:00
Ray Strode
0650fe107b splash: add new spinner theme
This is a very simple theme with a small spinner on a dark background.
2011-03-23 12:06:39 -04:00
Charlie Brej
e50ece1f70 script: Implement hide message function in the example script theme
This leaves ugly spaces where messages used to be, but is simple.
2010-09-07 22:22:08 +01:00
Charlie Brej
e9c668c0f2 [script] Allow passing of values from the .plymouth file to the script
An example in the script.plymouth shows a value being set. These values are
then present at the first execution of the script set in the global scope.
2010-04-21 00:02:42 +01:00
Charlie Brej
d28ff94b69 [script] Update default script to use the window X and Y offsets every time
Previously the code was assuming the windows were placed at 0,0. This might not
be the case and the window X and Y values should be used when trying to
position items relative to a window.

This change needs to be applied to all other scripts otherwise mutiple screen
setups may have unaligned elements. Updates scripts should be tested using
multi-head test systems or the x11 test renderer.
2010-03-22 23:39:32 +00:00
Charlie Brej
57fb558046 [script] Add text to image capability
Enables scripts to display test by converting it into an image. This can then
be shown using a sprite. Function takes a string and the value of the three
colors (red green blue).

new_image = Image.Text("text we want", 1.0, 0.0, 0.0); // gives red text image
2009-11-21 17:45:41 +00:00
Charles Brej
a086ae755b [script] Convert example script functions to use objects
The example script had some old style function names. These still work due to
the compatibility translations, but are not recommended in new code.
2009-10-29 13:36:27 +00:00
Charlie Brej
36a1b35570 [script] Add an "on quit" callback to scripted themes
The callback is called before the final sprite refresh and quit. This allows
the theme to tidy up the screen before handing over to the X fade and the
destop manager.
2009-10-28 20:11:47 +00:00
Charlie Brej
d8156feb0d [script] Example script rewritten to use the object system 2009-09-09 21:27:39 +01:00
Ray Strode
25bac96695 [glow] Soften corners of entry box
They (somewhat) have the illusion of roundness now.
2009-08-25 13:15:17 -04:00
Ray Strode
3aca57aa35 [glow] Update bullet to be more like GTK+ default
It makes things look more consistent.
2009-08-25 13:15:08 -04:00
Frederic Crozat
9da0276853 [script] use dialog instead of dialogue 2009-08-25 15:59:30 +02:00
Frederic Crozat
fc2cbc497a [script] Display password dialog even if called twice 2009-08-18 19:19:13 +02:00
Frederic Crozat
aa1b9c6175 [splash] do not ship generated files in tarball 2009-08-05 10:59:15 -04:00
Ray Strode
a5958e94aa [gitignore] Unignore some .plymouth files
There are a couple of .plymouth files that aren't
generated, so we shouldn't ignore them.
2009-07-24 09:30:32 -04:00
Charlie Brej
bc0d731e6f [script] Tidy up the example script
Removes the spinfinity function as it used an ugly ../ path to get the images
and assumed that spinfinity was installed.
Removes some elements which were only inserted for testing.
2009-07-24 09:30:31 -04:00
Charlie Brej
25fa788801 [script] Add support for setting the window background color
Two functions set the color of either the bottom or the top of the screen. If
the two colors are equal a solid colour draw is used. The color is supplied by
three floats specitying red green and blue elements.
2009-07-24 09:30:20 -04:00
Charlie Brej
3ffc473b96 [script] Add support for getting the window width and height
The example script has been updated to use this as well as to use other
features recently committed.
2009-07-24 09:30:20 -04:00
Charlie Brej
cf730d7b07 [script] Add an example progress bar to the example script 2009-07-24 09:30:18 -04:00
Charlie Brej
c9831c9dfa [script] Implement script based fade_in implementation
The example script now can show a spinfinity or a fade_in behaviour. This is
just to see how easy it is to implement current plugins. In the case of fade_in
it is around 23 lines of script code
2009-07-24 09:30:17 -04:00