Jak mogę dostosować logo startowe Ubuntu?

60

Tworzę niestandardową dystrybucję i mam pytanie dotyczące logo Ubuntu z 5 kropkami wyświetlanymi podczas uruchamiania.

Ubuntu-Logo-ScriptW /lib/plymouth/themes/ubuntutextfolderze ma słowo Ubuntu i pod tym 5 z progresją „kropek”. Czy można usunąć kropki paska postępu i zastąpić je wyblakłym logo Ubuntu, które stopniowo zabarwia się do pełnego?

wprowadź opis zdjęcia tutaj

Roshan George
źródło

Odpowiedzi:

135

Zainstaluj motyw

Stworzyłem motyw, jak chcesz, z wyblakłym logo Ubuntu (ponadto dodałem animację logo Ubuntu. Mam nadzieję, że Ci się spodoba :-P)

Zrzut ekranu

Spinning logo Ubuntu i logo tekstowe Ubuntu z efektem ruchomego zanikania.

Chcesz zobaczyć to na żywo?

Przejdź na stronę http://www.youtube.com/watch?v=zPo50gM3txU

Skąd możesz wziąć ten motyw?

Wysłałem go do mediafire chmurze tutaj .

Jak to zainstalować?

Pobierz z powyższego linku, zapisz go na pulpicie, a następnie wydaj kolejno te polecenia. Proszę wymienić /lib/plymouth/themesze /usr/share/plymouth/themesw poleceniach, jeśli jesteś na 16.04 lub później.

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

Jak to sprawdzić?

  1. Uruchom ponownie Ubuntu, a zobaczysz ładną animację podczas uruchamiania i wyłączania. LUB
  2. Skopiuj całe polecenie poniżej i wklej je do terminala i naciśnij klawisz Enter. (Prawdopodobnie będziesz musiał zainstalować pakiet: 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

Jak sam stworzyć motyw Plymouth

Język skryptowy Plymouth jest bardzo podobny do C lub JavaScript. Jeśli znasz te języki, bardzo łatwo będzie samodzielnie utworzyć skrypty Plymouth.

Zacznijmy od podstaw, takich jak operatory, zapętlanie, komentarze itp. Obsługiwane są trzy typy komentarzy.

# comment like in bash
// single line comment like in C
/* block comments */

Instrukcje kończą się średnikiem, np

foo = 10;

Bloki instrukcji można tworzyć za pomocą nawiasów klamrowych, np

{
    foo = 10;
    z = foo + foo;
}

Obsługiwane są operatorzy +, -, *, /, %. Obsługiwane są również operatory przypisania +=, -=, *=,stenograficznego itp. Obsługiwane są również operatory jednoargumentowe, np

foo *= ++z;

+ służy do konkatenacji np

foo = "Jun" + 7; # here foo is "Jun7"

Przykład operatora porównania:

x = (3 >= 1); # assign 1 to x because it's true
y = ("foo" == "bar"); # assign 0 to y because it's false

Operacje warunkowe i zapętlanie:

if (foo > 4)
{
    foo--;
    z = 1;
}
else
    z = 0;


while (foo--)
    z *= foo;

&&, ||, !Są również obsługiwane.

if ( foo > 0 && foo <4 )

Dla wielu czytelników może to być nowość: skróty, podobne do tablic. Skróty mogą być tworzone poprzez dostęp do ich zawartości przy użyciu dotlub [ ]nawiasy, np

foo.a = 5;
x = foo["a"] ; # x equals to 5

Użyj funsłowa kluczowego, aby zdefiniować funkcję, np

fun animator (param1, param2, param3)
{
    if (param1 == param2)
        return param2;
    else
        return param3;
}

Dwa podstawowe obiekty Plymouth

Wizerunek

Aby utworzyć nowy obraz, podaj nazwę pliku obrazu w katalogu motywów Image(). Pamiętaj, że obsługiwane są tylko pliki .png . Na przykład:

background = Image ("black.png"); 

Aby wyświetlić wiadomość tekstową, musisz utworzyć Imagetekst. (To może cię zaskoczyć.) Na przykład:

text_message_image = Image.Text("I love Ubuntu");

Szerokość i wysokość można znaleźć za pomocą GetWidth()i GetHeight(); na przykład:

image_area = background.GetWidth() * background.GetHeight();

Można obracać lub zmieniać rozmiar obrazu; na przykład:

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

Krasnoludek

Użyj, Spriteaby umieścić Imagena ekranie.

Tworzenie Sprite:

first_sprite = Sprite ();
first_sprite.SetImage (background);

Lub dostarczając obraz do jego konstruktora,

first_sprite = Sprite (background);

Jak ustawić różne duszki w różnych pozycjach na ekranie (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);

Lub możesz ustawić wszystko na raz za pomocą SetPosition():

first_sprite.Setposition(300, 200, 50) # put at x=300, y=200, z=50

Zmiana krycia:

faded_sprite.SetOpacity (0.3);
invisible_sprite.SetOpacity (0);

Niektóre inne stosowane metody to:

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.

Predefiniowane funkcje

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.

Funkcje matematyczne

Math.Abs()
Math.Min()
Math.Pi()
Math.Cos()
Math.Random()
Math.Int()
etc.

Lepiej jest zmodyfikować istniejący skrypt niż zaczynać od zera.

Otwórz .scriptplik z przesłanego motywu i spróbuj zrozumieć, co on robi. Fantastyczny przewodnik można znaleźć tutaj .

Jestem pewien, że się tego nauczysz. To nie jest trudne. Daj mi znać, jeśli potrzebujesz pomocy.

Mam nadzieję, że pomogłoby Ci to stworzyć samodzielnie.

Odpowiedź na komentarz Roshana George'a : 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

Może być konieczne dodanie sprite.SetZ (-10);

Powinieneś usunąć

Window.SetBackgroundTopColor (p, q, r);
Window.SetBackgroundBottomColor (a, b, c);

gdzie p, q, r, a, b, csą niektóre wartości.

Więcej linków

virpara
źródło
1
Czy mogę uzyskać to samo, co stworzyłeś, ale z logo i tekstem Ubuntu (w tych samych pozycjach jak teraz) świecącymi i ściemniającymi na przemian (gdy logo się świeci, txt i gdy tekst się świeci, tagi logo) bez obramowania i postępu szczeliny jak playmouth Ubuntu9.10 ... tj. this- wiki.ubuntu.com/Artwork/Incoming/Karmic/Boot/... chciałby mieć tylko pasek postępu szczeliny taki jak ten w linku ... txt i logo są na pozycjach takich samych jak urs ... Czy możesz mi pomóc? Próbuję uczyć się z tego, co w międzyczasie wyjaśniłeś ... Dzięki! Odpowiedź gr8
Nirmik,
21
Czasami żałuję, że nie mogę głosować więcej niż 1 raz: D
Rinzwind,
1
@Rinzwind: Właśnie dałem mu „10 głosów pozytywnych” w imieniu nas wszystkich :)
ish
Dzięki człowieku, samouczek jest znakomity. Patrzę na to, podając to. Czy to jest dozwolone?
Roshan George
1
Zauważ, że w 16.04 lokalizacja katalogu motywów zmieniła się na:/usr/share/plymouth/themes
Olivier
3

Użyj Plymouth Managera, aby to zmienić. Możesz go pobrać stąd na Launchpad lub uruchomić poniższe polecenia.

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 

Następnie musisz uruchomić plymouth-managerza pomocą polecenia:

sudo plymouth-manager

Polecenie „magiczne”, jeśli chcesz zrobić wszystko samemu (pisanie własnego pliku konfiguracyjnego Plymouth) i chcesz go zastosować, gdy będziesz gotowy, to:

sudo update-alternatives --config default.plymouth && sudo update-initramfs -u
Frantique
źródło
1

Zmieniłem ekran GRUB za pomocą oprogramowania GRUB Customizer. Ale jeśli chcesz zmienić ekran Plymouth, jest inaczej.

Wszystkie rzeczy tego oprogramowania znajduje się w /lib/plymouth/themeskatalogu, a cała animacja z tym jednym jest w /lib/plymouth/themes/ubuntu-logo/ubuntu-logo.scriptpliku.

Jeśli chcesz zmodyfikować swój ulubiony Plymouth, wszystko czego potrzebujesz to ubuntu-logofolder.

Możesz to zrobić samodzielnie, bez pomocy zewnętrznego oprogramowania, ale musisz zrozumieć programowanie .

W repozytorium Ubuntu możesz znaleźć narzędzia do tego, ale musisz nauczyć się tworzyć motywy Plymouth.

Powodzenia!

Lucio
źródło