问题描述
我正在进行自定义分发,并且在启动时显示有关Ubuntu徽标的问题,其中显示了5个点。
/lib/plymouth/themes/ubuntutext
文件夹中的Ubuntu-Logo-Script
具有单词Ubuntu,并且位于5个正在进行的’dots’之下。是否可以删除进度条点,而是用褪色的Ubuntu徽标替换它,逐渐着色到完全?
最佳解决方案
安装主题
我已经使用褪色的Ubuntu徽标创建了主题(此外我添加了Ubuntu徽标的动画。希望你喜欢它:-P)
截图
想看到它吗?
转到http://www.youtube.com/watch?v=zPo50gM3txU
你在哪里可以得到这个主题?
我已将其上传到Mediafire云here。
你是如何安装的?
从上面的链接下载,将其保存在桌面上,然后逐个发出这些命令。如果您使用的是16.04或更高版本,请在命令中将/lib/plymouth/themes
替换为/usr/share/plymouth/themes
。
cd ~/Desktop/
tar -xf ubuntufaded.tar
sudo cp -r ubuntu-faded-screen '/lib/plymouth/themes'
sudo rm '/lib/plymouth/themes/default.plymouth'
sudo ln -s '/lib/plymouth/themes/ubuntu-faded-screen/ubuntu-faded-screen.plymouth' '/lib/plymouth/themes/default.plymouth'
sudo update-initramfs -u
怎么检查?
-
重启Ubuntu,你会在启动和关闭时看到一个漂亮的动画。要么
-
复制下面的整个命令并将其粘贴到终端并按Enter键。 (您可能需要安装包:
sudo apt-get install plymouth-x11
)sudo plymouthd --debug --debug-file=/tmp/plymouth-debug-out ; sudo plymouth --show-splash ; for ((I=0;I<10;I++)); do sleep 1 ; sudo plymouth --update=event$I ; done ; sudo plymouth --quit
如何自己创建普利茅斯主题
普利茅斯脚本语言与C或JavaScript非常相似。如果您了解这些语言,那么自己创建普利茅斯脚本将非常容易。
让我们从操作符,循环,注释等基础知识开始。支持三种类型的注释。
# comment like in bash
// single line comment like in C
/* block comments */
语句以分号结束,例如
foo = 10;
可以使用大括号创建语句块,例如
{
foo = 10;
z = foo + foo;
}
支持的运算符是+
,-
,*
,/
,%
。也支持速记赋值运算符+=, -=, *=,
等。也支持一元运算符,例如:
foo *= ++z;
+
用于连接,例如
foo = "Jun" + 7; # here foo is "Jun7"
比较运算符示例:
x = (3 >= 1); # assign 1 to x because it's true
y = ("foo" == "bar"); # assign 0 to y because it's false
条件运算和循环:
if (foo > 4)
{
foo--;
z = 1;
}
else
z = 0;
while (foo--)
z *= foo;
还支持&&
,||
,!
。
if ( foo > 0 && foo <4 )
这对许多读者来说可能是新的:哈希,类似于数组。可以使用dot
或[ ]
括号访问其内容来创建哈希,例如
foo.a = 5;
x = foo["a"] ; # x equals to 5
使用fun
关键字来定义函数,例如
fun animator (param1, param2, param3)
{
if (param1 == param2)
return param2;
else
return param3;
}
两个基本的普利茅斯对象
Image
要创建新图像,请将主题目录中的图像文件名提供给Image()
。请记住,仅支持.png文件。例如:
background = Image ("black.png");
要显示文本消息,您必须创建文本的Image
。 (这可能会让你感到惊讶。)例如:
text_message_image = Image.Text("I love Ubuntu");
使用GetWidth()
和GetHeight()
可以找到宽度和高度;例如:
image_area = background.GetWidth() * background.GetHeight();
可以旋转或改变图像的大小;例如:
down_image = logo_image.Rotate (3.1415); # Image can be Rotated. Parameter to Rotate is the angle in radians
fat_image = background.Scale ( background.GetWidth() * 4 , background.GetHeight () ) # make the image four times the width
Sprite
使用Sprite
在屏幕上放置Image
。
创建Sprite
:
first_sprite = Sprite ();
first_sprite.SetImage (background);
或者通过向其构造函数提供图像,
first_sprite = Sprite (background);
如何将精灵设置为不同的屏幕(x,y,z)位置:
first_sprite.SetX (300); # put at x=300
first_sprite.SetY (200); # put at y=200
background.SetZ(-20);
foreground.SetZ(50);
或者您可以使用SetPosition()
一次设置所有内容:
first_sprite.Setposition(300, 200, 50) # put at x=300, y=200, z=50
改变不透明度:
faded_sprite.SetOpacity (0.3);
invisible_sprite.SetOpacity (0);
使用的一些杂项方法是:
Window.GetWidth();
Window.GetHeight();
Window.SetBackgroundTopColor (0.5, 0, 0); # RGB values between 0 to 1.
Window.SetBackgroundBottomColor (0.4, 0.3, 0.6);
Plymouth.GetMode(); # returns a string of one of: "boot", "shutdown", "suspend", "resume" or unknown.
etc.
预定义函数
Plymouth.SetRefreshFunction (function); # Calling Plymouth.SetRefreshFunction with a function will set that function to be called up to 50 times every second
Plymouth.SetBootProgressFunction(); # function is called with two numbers, time spent booting so far and the progress (between 0 and 1)
Plymouth.SetRootMountedFunction(); # function is called when a new root is mounted
Plymouth.SetKeyboardInputFunction(); # function is called with a string containing a new character entered on the keyboard
Plymouth.SetUpdateStatusFunction(); # function is called with the new boot status string
Plymouth.SetDisplayPasswordFunction(); # function is called when the display should display a password dialogue. First param is prompt string, the second is the number of bullets.
Plymouth.SetDisplayQuestionFunction(); # function is called when the display should display a question dialogue. First param is prompt string, the second is the entry contents.
Plymouth.SetDisplayNormalFunction(); # function is called when the display should return to normal
Plymouth.SetMessageFunction(); # function is called when new message should be displayed. First arg is message to display.
数学函数
Math.Abs()
Math.Min()
Math.Pi()
Math.Cos()
Math.Random()
Math.Int()
etc.
修改现有脚本比从头开始更好。
从我上传的主题中打开.script
文件并尝试了解它的作用。一个很棒的指南可以找到here。
我相信你会学到这一点。这并不难。如果您需要任何帮助,请告诉我。
希望它能帮助你自己创造一个。
回答Roshan George的评论:Is it possible to replace the purple colour with an image as background in the default Plymouth theme names "ubuntu-logo" ?
background = Image ("your-image.png");
sprite = Sprite (background.Scale (Window.GetWidth(), Window.GetHeight()));
sprite.SetX (0); # put at x=0
sprite.SetY (0); # put at y=0
您可能需要添加sprite.SetZ (-10);
你应该删除
Window.SetBackgroundTopColor (p, q, r);
Window.SetBackgroundBottomColor (a, b, c);
其中p, q, r, a, b, c
是一些值。
更多链接
次佳解决方案
使用Plymouth Manager更改此设置。您可以从from here on Launchpad获取它或运行以下命令。
wget https://launchpad.net/plymouth-manager/trunk/stable/+download/plymouth-manager_1.5.0-1_all.deb
sudo dpkg -i plymouth-manager_1.5.0-1_all.deb
之后,您需要使用以下命令启动plymouth-manager
:
sudo plymouth-manager
“magic”命令如果你想自己完成所有操作,(编写自己的plymouth配置文件),并且想要在准备就绪时应用它:
sudo update-alternatives --config default.plymouth && sudo update-initramfs -u