Jump to content

Plymouth: Difference between revisions

From Official NixOS Wiki
Ardenet (talk | contribs)
reset
Sn4tz (talk | contribs)
m Fix linking to adi1090x's theme collection to be properly displayed in reading mode
 
(14 intermediate revisions by 7 users not shown)
Line 1: Line 1:
<span lang="en" dir="ltr">[https://www.freedesktop.org/wiki/Software/Plymouth Plymouth] is an application that runs early in the boot process, providing a graphical boot animation, it is used by most desktop-oriented Linux distributions.</span>
<languages/>
== <span lang="en" dir="ltr">Usage</span> ==
[https://www.freedesktop.org/wiki/Software/Plymouth Plymouth] is a project from Fedora and now listed among the [https://www.freedesktop.org/wiki/Software/#graphicsdriverswindowsystemsandsupportinglibraries freedesktop.org's official resources] providing a flicker-free graphical boot process. It relies on [https://wiki.archlinux.org/title/Kernel_mode_setting kernel mode setting] (KMS) to set the native resolution of the display as early as possible, then provides an eye-candy splash screen leading all the way up to the login manager.


<span lang="en" dir="ltr">As an example, you can use a boot animation from [https://github.com/adi1090x/plymouth-themes adi1090x's collection]  like so:</span>
== Preparation ==
''Plymouth'' primarily uses KMS to display graphics, but on UEFI systems it can utilize the EFI framebuffer.


{{file|configuration.nix|nix|<nowiki>
If you have neither KMS nor a framebuffer, ''Plymouth'' will fall back to text-mode.<ref>https://wiki.archlinux.org/title/Plymouth</ref>
{ pkgs, ... }: {
 
== Installation ==
 
=== Basic Config ===
<syntaxhighlight lang="nix">
{
  boot = {
    plymouth = {
      enable = true;
    };
 
    # Enable "Silent boot"
    consoleLogLevel = 3;
    initrd.verbose = false;
    kernelParams = [
      "quiet"
      "rd.udev.log_level=3"
      "rd.systemd.show_status=auto"
    ];
 
    # Hide the OS choice for bootloaders.
    # It's still possible to open the bootloader list by pressing any key
    # It will just not appear on screen unless a key is pressed
    loader.timeout = 0;
  };
}
</syntaxhighlight>
 
== Configuration ==
 
=== Changing the theme ===
Plymouth comes with a selection of themes:
 
# '''BGRT''': A variation of Spinner that keeps the OEM logo if available (BGRT stands for Boot Graphics Resource Table)
# '''Fade-in''': "Simple theme that fades in and out with shimmering stars"
# '''Glow''': "Corporate theme with pie chart boot progress followed by a glowing emerging logo"
# '''Script''': "Script example plugin" (Despite the description seems to be a quite nice Arch logo theme)
# '''Solar''': "Space theme with violent flaring blue star"
# '''Spinner''': "Simple theme with a loading spinner"
# '''Spinfinity''': "Simple theme that shows a rotating infinity sign in the center of the screen"
# '''Tribar''': "Text mode theme with tricolor progress bar"
# '''Text''': "Text mode theme with tricolor progress bar"
# '''Details''': "Verbose fallback theme"
 
NixOS sets the default theme to '''bgrt'''<ref>https://github.com/NixOS/nixpkgs/blob/8c91a71d13451abc40eb9dae8910f972f979852f/nixos/modules/system/boot/plymouth.nix</ref>. You can change the theme with `boot.plymouth.theme`:<syntaxhighlight lang="nix">
{
   boot = {
   boot = {
    plymouth = {
      enable = true;
      theme = "solar";
    };
  };
}
</syntaxhighlight>


=== Install new themes ===
As an example, you can use a boot animation from [https://github.com/adi1090x/plymouth-themes adi1090x's collection] like so:{{file|3={ pkgs, ... }: {
  boot = {
     plymouth = {
     plymouth = {
       enable = true;
       enable = true;
       theme = "rings";
       theme = "rings";
       themePackages = with pkgs; [
       themePackages = with pkgs; [
         # By default we would install all themes
         # <translate nowrap><!--T:7--> By default we would install all themes</translate>
         (adi1090x-plymouth-themes.override {
         (adi1090x-plymouth-themes.override {
           selected_themes = [ "rings" ];
           selected_themes = [ "rings" ];
Line 19: Line 75:
     };
     };


     # Enable "Silent Boot"
     # <translate nowrap><!--T:8--> Enable "Silent boot"</translate>
     consoleLogLevel = 0;
     consoleLogLevel = 3;
     initrd.verbose = false;
     initrd.verbose = false;
     kernelParams = [
     kernelParams = [
       "quiet"
       "quiet"
      "splash"
      "boot.shell_on_fail"
      "loglevel=3"
      "rd.systemd.show_status=false"
       "rd.udev.log_level=3"
       "rd.udev.log_level=3"
       "udev.log_priority=3"
       "rd.systemd.show_status=auto"
     ];
     ];
     # Hide the OS choice for bootloaders.
 
     # It's still possible to open the bootloader list by pressing any key
     # <translate nowrap><!--T:9--> Hide the OS choice for bootloaders.</translate>
     # It will just not appear on screen unless a key is pressed
     # <translate nowrap><!--T:10--> It's still possible to open the bootloader list by pressing any key</translate>
     # <translate nowrap><!--T:11--> It will just not appear on screen unless a key is pressed</translate>
     loader.timeout = 0;
     loader.timeout = 0;
  };
}|name=configuration.nix|lang=nix}}


=== HiDPI ===
Edit the configuration file:<syntaxhighlight lang="nix">
{
  boot = {
    plymouth = {
      enable = true;
      extraConfig = ''
        [Daemon]
        DeviceScale=an-integer-scaling-factor
      '';
    };
   };
   };
}
}
</nowiki>}}
</syntaxhighlight>
 
== Tips and tricks ==
 
=== Show boot messages ===
During the graphical boot process, it is possible to switch to text mode and back by pressing the escape key.
 
== Troubleshooting ==
 
=== LUKS Encryption ===
If you are using LUKS encryption the password prompt may fall back to text mode. While the default <code>bgrt</code> theme supports graphical password entry, this may not be supported by all themes.
 
== See Also ==
 
* [https://wiki.archlinux.org/title/Plymouth Arch Wiki]


[[Category:Booting]]
[[Category:Booting]]

Latest revision as of 09:07, 24 July 2026

Plymouth is a project from Fedora and now listed among the freedesktop.org's official resources providing a flicker-free graphical boot process. It relies on kernel mode setting (KMS) to set the native resolution of the display as early as possible, then provides an eye-candy splash screen leading all the way up to the login manager.

Preparation

Plymouth primarily uses KMS to display graphics, but on UEFI systems it can utilize the EFI framebuffer.

If you have neither KMS nor a framebuffer, Plymouth will fall back to text-mode.[1]

Installation

Basic Config

{
  boot = {
    plymouth = {
      enable = true;
    };

    # Enable "Silent boot"
    consoleLogLevel = 3;
    initrd.verbose = false;
    kernelParams = [
      "quiet"
      "rd.udev.log_level=3"
      "rd.systemd.show_status=auto"
    ];

    # Hide the OS choice for bootloaders.
    # It's still possible to open the bootloader list by pressing any key
    # It will just not appear on screen unless a key is pressed
    loader.timeout = 0;
  };
}

Configuration

Changing the theme

Plymouth comes with a selection of themes:

  1. BGRT: A variation of Spinner that keeps the OEM logo if available (BGRT stands for Boot Graphics Resource Table)
  2. Fade-in: "Simple theme that fades in and out with shimmering stars"
  3. Glow: "Corporate theme with pie chart boot progress followed by a glowing emerging logo"
  4. Script: "Script example plugin" (Despite the description seems to be a quite nice Arch logo theme)
  5. Solar: "Space theme with violent flaring blue star"
  6. Spinner: "Simple theme with a loading spinner"
  7. Spinfinity: "Simple theme that shows a rotating infinity sign in the center of the screen"
  8. Tribar: "Text mode theme with tricolor progress bar"
  9. Text: "Text mode theme with tricolor progress bar"
  10. Details: "Verbose fallback theme"

NixOS sets the default theme to bgrt[2]. You can change the theme with `boot.plymouth.theme`:

{
  boot = {
    plymouth = {
      enable = true;
      theme = "solar";
    };
  };
}

Install new themes

As an example, you can use a boot animation from adi1090x's collection like so:

❄︎ configuration.nix
{ pkgs, ... }: {
  boot = {
    plymouth = {
      enable = true;
      theme = "rings";
      themePackages = with pkgs; [
        # By default we would install all themes
        (adi1090x-plymouth-themes.override {
          selected_themes = [ "rings" ];
        })
      ];
    };

    # Enable "Silent boot"
    consoleLogLevel = 3;
    initrd.verbose = false;
    kernelParams = [
      "quiet"
      "rd.udev.log_level=3"
      "rd.systemd.show_status=auto"
    ];

    # Hide the OS choice for bootloaders.
    # It's still possible to open the bootloader list by pressing any key
    # It will just not appear on screen unless a key is pressed
    loader.timeout = 0;
  };
}

HiDPI

Edit the configuration file:

{
  boot = {
    plymouth = {
      enable = true;
      extraConfig = ''
        [Daemon]
        DeviceScale=an-integer-scaling-factor
      '';
    };
  };
}

Tips and tricks

Show boot messages

During the graphical boot process, it is possible to switch to text mode and back by pressing the escape key.

Troubleshooting

LUKS Encryption

If you are using LUKS encryption the password prompt may fall back to text mode. While the default bgrt theme supports graphical password entry, this may not be supported by all themes.

See Also