当前位置: 首页>>技术教程>>正文


如何自定义Ubuntu启动徽标?

, , , ,

问题描述

我正在进行自定义分发,并且在启动时显示有关Ubuntu徽标的问题,其中显示了5个点。

/lib/plymouth/themes/ubuntutext文件夹中的Ubuntu-Logo-Script具有单词Ubuntu,并且位于5个正在进行的’dots’之下。是否可以删除进度条点,而是用褪色的Ubuntu徽标替换它,逐渐着色到完全?

customization,plymouth,custom-distributions,logo,ubuntu

最佳解决方案

安装主题

我已经使用褪色的Ubuntu徽标创建了主题(此外我添加了Ubuntu徽标的动画。希望你喜欢它:-P)

截图

customization,plymouth,custom-distributions,logo,ubuntu

想看到它吗?

转到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

怎么检查?

  1. 重启Ubuntu,你会在启动和关闭时看到一个漂亮的动画。要么

  2. 复制下面的整个命令并将其粘贴到终端并按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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1301.html,未经允许,请勿转载。