Встановити тему
Я створив тему так, як ви хотіли, з вицвілим логотипом 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
Як це перевірити?
- Перезапустіть 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()
. Пам'ятайте, що підтримуються лише файли .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
для розміщення 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
файл із моєї завантаженої теми та спробуйте зрозуміти, що це робить. Фантастичне керівництво можна знайти тут .
Я впевнений, що ти це навчишся. Це не важко. Повідомте мене, якщо вам потрібна допомога.
Сподіваюся, це допоможе вам створити його самостійно.
Відповідь на коментар Рошана Джорджа :
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
деякі значення.
Більше посилань