答案1
在 Ubuntu 20.04 的默认安装中,bgrt
使用了 Plymouth 主题。
/usr/share/plymouth/themes/bgrt/bgrt.plymouth
该主题包含以下(仅部分内容)来自文件的内容/usr/share/plymouth/themes/bgrt/bgrt.plymouth
[Plymouth Theme]
Name=BGRT
Description=Jimmac's spinner theme using the ACPI BGRT graphics as background
ModuleName=two-step
ModuleName=two-step
与使用脚本的其他普利茅斯主题不同,该行有一些硬编码。
来自另一个普利茅斯主题的部分内容
[Plymouth Theme]
Name=Script
Description=Script example plugin.
ModuleName=script
[script]
ImageDir=/usr/share/plymouth/themes/script
ScriptFile=/usr/share/plymouth/themes/script/script.script
由于你的主要目标是保留 Ubuntu 20.04 附带的默认 Plymouth 主题,因此我们需要专注于MouduleName=two-step
我试图获取名为“two-step”的模块的配置/指南/规格,但没有成功。
这篇 Ask Ubuntu 帖子https://askubuntu.com/a/85329/739431可能有助于理解名为两步的模块。
通过使用默认的 plymouth 主题 bgrt 进行反复试验/usr/share/plymouth/themes/bgrt/
并借助上述 Ask Ubuntu 帖子的帮助..
我按照以下步骤操作,让自定义图像作为旋转器播放。
1. 使用以下命令复制微调主题
sudo cp -r /usr/share/plymouth/themes/spinner /usr/share/plymouth/themes/myplymouththeme
使用以下命令将spinner.playmouth
文件重命名为myplymouththeme.plymouth
sudo mv /usr/share/plymouth/themes/myplymouththeme/spinner.plymouth /usr/share/plymouth/themes/myplymouththeme/myplymouththeme.plymouth
使用以下命令打开文件myplymouththeme.plymouth
并根据您的要求编辑内容。
sudo -H gedit /usr/share/plymouth/themes/myplymouththeme/myplymouththeme.plymouth
有些需要编辑的行..我已经编辑了。
ImageDir=/usr/share/plymouth/themes/myplymouththeme
HorizontalAlignment=.5
VerticalAlignment=.7
WatermarkHorizontalAlignment=.5
WatermarkVerticalAlignment=.96
图像目录是不言自明的,因为我们将把图像保存在其中。HorAlignment
.5 是旋转器的中心。VerAlignment
.7 从屏幕顶部向下,您可以减少它以增加水印和旋转器之间的间隙。
水印也与上述解释类似。
图像名称似乎带有throbber-
编号前缀,如 throbber-01.png、throbber02.png 等等。删除所有带有动画*和 throbber* 的图像,然后将图像放入上述目录中。似乎它只接受 png 文件作为图像。
好的,配置完成了..
playmouthd.conf
要使用此主题,请使用以下命令创建一个新文件
sudo install -D /dev/null /etc/plymouth/plymouthd.conf
并使用以下命令打开文件并添加行..
sudo -H gedit /etc/plymouth/plymouthd.conf
线
[Daemon]
Theme=myplymouththeme
ShowDelay=0
您可以使用您喜欢的图像更改 watermark.png(留意默认的 watermark.png 图片大小)
重新启动并查看更改..
当你在桌面时,你可以通过登录两个 tty 来测试 plymouth 主题
在一个 tty 中,运行以下命令
sudo plymouthd --debug --tty=`tty` --no-daemon
在其他 tty 中,运行以下命令
sudo plymouth --show-splash
当你运行 --show-splash 时,它会自动切换到其他 tty 并显示 plymouth,退出它..打开你运行 --show-splash 命令的其他 tty 并运行以下命令
sudo plymouth --quit
您可以通过编辑文件来配置不显示固件背景,方法是使用myplymouththeme.plymouth
以下行UseFirmwareBackground=
[boot-up]
UseEndAnimation=false
UseFirmwareBackground=false
编辑:
看起来调整外部脚本以满足您的需求很容易。这是 zip 文件https://github.com/PRATAP-KUMAR/LinkOnly/blob/main/peppermint.zip修改自https://www.cinnamon-look.org/p/1471802/
要使用 peppermint 主题,请保留解压的目录peppermint
,/usr/share/plymouth/themes/
然后编辑 plymouthd.conf 文件。
sudo -H gedit /etc/plymouth/plymouthd.conf
包含以下内容..
[Daemon]
Theme=peppermint
ShowDelay=0
重启..
调整其中的一些内容peppermint.script
可能会达到您的要求。
.script 文件中的示例行
#--------------------------------------Background functions --------------------------
fun centered_spinner(filename) {
object.image = Image (filename);
object.sprite = Sprite ();
object.sprite.SetImage (object.image);
object.width = object.image.GetWidth ();
object.height = object.image.GetHeight ();
object.x = Window.GetX () + Window.GetWidth () / 2 - object.width / 2; # Edit to Align as per your requirment
object.y = Window.GetY () + Window.GetHeight () - object.height / 2 - 100; # Edit to Align as per your requirment
object.sprite.SetX (object.x);
object.sprite.SetY (object.y);
return object;
}
fun centered_logo(filename) {
object.image = Image (filename);
object.sprite = Sprite ();
object.sprite.SetImage (object.image);
object.width = object.image.GetWidth ();
object.height = object.image.GetHeight ();
object.x = Window.GetX () + Window.GetWidth () / 2 - object.width / 2; # Edit to Align as per your requirment
object.y = Window.GetY () + Window.GetHeight () - object.height / 2 - 40; # Edit to Align as per your requirment
object.sprite.SetX (object.x);
object.sprite.SetY (object.y);
return object;
}
--
#Animation settings
spinner.rot.steps = 8; # steps for 1 full rotation
spinner.rot.delay = 0.05; # timing in secs
--
# Window.SetBackgroundTopColor (rt, gt, bt); #gradient - darker at the top of screen
Window.SetBackgroundTopColor (0, 0, 0); #no gradient
Window.SetBackgroundBottomColor (0, 0, 0);