Я делаю нестандартный дистрибутив, и у меня возник вопрос о логотипе Ubuntu с 5 точками, отображаемыми при загрузке.
Ubuntu-Logo-Script
в папке /lib/plymouth/themes/ubuntutext
содержит слово Ubuntu и под этими 5 прогрессивными «точками». Можно ли убрать точки индикатора выполнения и вместо этого заменить его блеклым логотипом Ubuntu, который постепенно становится полностью насыщенным?
Я создал тему, как вы хотели, с выцветшим логотипом Ubuntu (кроме того, я добавил анимацию логотипа Ubuntu. Надеюсь, она вам понравится :-P)
Снимок экрана
Хотите увидеть это вживую?
Перейдите на http://www.youtube.com/watch?v=zPo50gM3txU
Где взять эту тему?
У меня есть загрузил его в облако Mediafire здесь .
Как его установить?
Загрузите по указанной выше ссылке, сохраните на рабочем столе, затем выполните эти команды одну за другой.
Пожалуйста, замените / lib / plymouth / themes
на / usr / share / plymouth / themes
в командах, если вы используете 16.04 или новее.
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
Как это проверить?
Скопируйте всю приведенную ниже команду, вставьте ее в терминал и нажмите Enter. (Вам, вероятно, потребуется установить пакет: sudo apt-get install plymouth-x11
)
sudo plymouthd --debug --debug-file = / tmp / plymouth-debug-out; sudo plymouth --show-splash; для ((I = 0; I <10; I ++)); спать 1; sudo plymouth --update = событие $ I; сделанный ; 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 )
Это может быть новым для многих читателей: хэши, похожие на массивы. Хэши могут быть созданы путем доступа к их содержимому с помощью скобок точка
или []
, например
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 ()
. Помните, что поддерживаются только файлы .png . Например:
background = Image ("black.png");
Чтобы показать текстовое сообщение, вы должны создать Изображение
текста. (Это может вас удивить.) Например:
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
:
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
из загруженной мной темы и попытайтесь понять, что он делает. Великолепное руководство можно найти здесь .
Я уверен, что вы это узнаете. Это не сложно. Дайте мне знать, если вам понадобится помощь.
Надеюсь, это поможет вам создать его самостоятельно.
Ответ на комментарий Рошана Джорджа :
Можно ли заменить фиолетовый цвет изображением в качестве фона в названиях тем Плимута по умолчанию "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, чтобы изменить это. Вы можете получить его с отсюда на 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
The "magic "команда, если вы хотите сделать все самостоятельно (написание собственного файла конфигурации Plymouth), и вы хотите применить ее, когда будете готовы:
sudo update-alternatives --config default.plymouth && sudo update-initramfs -u
Я изменил экран GRUB с помощью программного обеспечения GRUB Customizer. Но если вы хотите изменить экран Plymouth, он будет другим.
Все элементы этого программного обеспечения находятся в каталоге / lib / plymouth / themes
и вся анимация этого программного обеспечения находится в файле /lib/plymouth/themes/ubuntu-logo/ubuntu-logo.script
.
Если вы хотите изменить Плимут по своему вкусу, все, что вам нужно, находится в папке ubuntu-logo
.
Вы можете сделать это самостоятельно без помощи какого-либо внешнего программного обеспечения, но , вы должны понимать программирование .
Также вы можете найти инструменты для этого в репозитории Ubuntu, но вам нужно научиться создавать Plymouth-темы.
Удачи!