Blog (15)
Komentarze (83)
Recenzje (0)
@Spox5Plymouth - czyli jak zrobić własny ekran startowy w Ubuntu. #cz.2

Plymouth - czyli jak zrobić własny ekran startowy w Ubuntu. #cz.2

19.06.2010 19:15, aktualizacja: 21.06.2010 16:59

W poprzednim wpisie pokazałem Wam jak wykonać Usplasha, natomiast dziś chciałbym przedstawić jak można szybko wykonać temat Plymouth. Jednak zanim przejdę do szczegółów trochę na temat wyższości tego rodzaju ekranu startowego nad poprzednim. A więc dlaczego Plymouth, a nie Usplash.

1) Paleta kolorów , nie jest już ograniczeniem (w usplash'u mogliśmy korzystać tylko z 8‑bitowej głębi czyli 256 kolorów).

2) Plymouth obsługuje przeźroczystość (usplash nie!).

3) Można tworzyć zaawansowane technicznie tematy, gdyż oprócz możliwości przesuwania grafik w osi X i Y otrzymujemy możliwość również przesuwania w osi Z.

4) Nie musimy tworzyć grafiki pod kątem rozdzielczości ekranu (mniejsza ich ilość)

5) możliwość interakcji z użytkownikiem.

368213

Większość dystrybucji porzuciła usplash'a na rzecz plymouth'a. Możemy go spotkać m.in. w distrach takich jak Fedora, Mandriva oraz od wersji 10.04 także w Ubuntu. Niestety w tym ostatnim systemie, graficy moim zdaniem nie popisali się i stworzyli coś na miarę leciwego już ekranu bootowania Windowsa XP. Dlatego chciałbym Wam zaoferować pomoc, dzięki której sami wykonacie prosty temat graficzny plymouth. Wzorem z poprzedniej notki chce Wam udostępnić źródła dzięki, którym przyspieszymy pracę. Całość powstała na podstawie elementów zebranych w sieci internetowej i przeze mnie edytowane są tylko proste fragmenty.

W źródłach znajdziecie dwa katalogi. Chciałbym przedstawić Wam co konkretnie one zawierają i do czego będziemy je wykorzystywać:

deb - katalog który posłuży nam do stworzenia własnej paczki deb umożliwiającej szybką instalację tematu graficznego plymouth w Ubuntu, Linux Mint.

moj_pierwszy_plymouth - czyli faktyczne źródła programu, które będziemy edytować.

Link do źródeł

Całą edycję będziemy przeprowadzać w pliku o nazwie script.script, który znajduje się w katalogu "moj_pierwszy_plymouth". Gdy go otworzycie, waszym oczom ukarzą się nagłówki o nazwach: "Tło", "Tło z tapety", "Pulsujące Logo" i "Progess Bar", pozostałymi się nie zajmujemy.

"Tło"

W tej sekcji możemy ustawić tło, które będzie widoczne na naszym ekranie. Linijki, które Nas interesują to:

Window.SetBackgroundTopColor(0.426, 0.0, 0.504)
Window.SetBackgroundBottomColor(0.997, 0.423, 0.0)

Pierwsza odpowiada za tło od góry ekranu, a druga za tło od dołu. Pewnie zastanawiacie się co to za cyferki. Jak pewnie się domyślacie odpowiadają one kolorom RGB, które możemy znaleźć np. w programie Gimp. Jest tylko jedno ale. Każdy cyfra odpowiadająca kolorom RGB, uzyskana w programie Gimp zostaje podzielona przez liczbę 256 i zaokrąglona. W przykładzie u góry, korzystamy z koloru fioletowego. W Gimpie pokazują nam się cyfry R=109; G=0; B=129, gdy je podzielimy przez 256 uzyskamy te, które widzimy wyżej czyli odpowiednio: 0.426; 0.0; 0.504. Musicie pamiętać by w skrypcie stawiać kropki, a nie przecinki.

"Tło z tapety"

W tej sekcji możemy wstawić swoją ulubioną tapetę, którą będziemy podziwiać podczas startu. Wystarczy podmienić plik "tapeta.png" w katalogu "moj_pierwszy_usplash" i to wszystko. Grafika zostanie rozciągnięta na całą wielkość ekranu.

Dwie pierwsze omówione sekcje prezentują się następująco:

368227

"Pulsujące logo"

Tutaj również wystarczy podmienić plik. Nosi on nazwę "logo.png". Oczywiście tak samo jak w przypadku tapety, nie musimy martwić się o jego wielkość. By efekt był zadowalający wypadałoby by była to grafika mniejsza od wielkości ekranu ;) To co Was może interesować w pliku script.script, to linijki odpowiadające za miejsce umieszczenie Waszego loga, są to wiersze nr 34 i 35.

        logo.sprite.SetX (Window.GetX() + Window.GetWidth()  / 2 - logo.image.GetWidth()  / 2);
        logo.sprite.SetY (Window.GetY() + Window.GetHeight() / 3.5 - logo.image.GetHeight() / 2);

"Progress Bar"

Widoczny na zrzutach ekranu pasek postępu, uzyskamy w sekcji "Progress Bar". Tutaj też grafiki możecie podmienić na własne. Miejsce jego wyświetlania możecie zmienić edytując wiersz nr 141 i 148

progress_box.y = Window.GetY() + Window.GetHeight() * 0.66666666667 - progress_box.image.GetHeight() / 2;

(...)
progress_bar.y = Window.GetY() + Window.GetHeight() / 1.5  - progress_box.image.GetHeight() / 2 + (progress_box.image.GetHeight() - progress_bar.original_image.GetHeight()) / 2;

Z tych linijek interesują nas cyfry 0,66666666667 i 1,5. Liczbę 0,66666666667 uzyskujemy dzieląc 1 przez 1,5. Wysokość najlepiej dobrać eksperymentalnie :)

Za szybkość wyświetlania paska postępu odpowiada linijka nr 155

        progress_bar.image = progress_bar.original_image.Scale(progress_bar.original_image.GetWidth(progress_bar.original_image) * progress * 2, progress_bar.original_image.GetHeight());

Zmieniając wartość cyfry 2 na jakąkolwiek inną, albo przyspieszymy pasek postępu albo opóźnimy (Proponuję empirycznie ją sobie dobrać).

Skoro mamy omówiony plik "script.script", przejdźmy do wykonania paczki deb. Skopiujcie katalog "moj_pierwszy_plymouth", do katalogu "themes" znajdującego się w "deb/lib/plymouth/themes". Teraz otwórzcie konsolę w katalogu źródeł i wydajcie polecenie:

dpkg -b deb moj-pierwszy-plymouth_0.1_all.deb

W ten sposób uzyskaliście paczkę, dzięki której szybko zainstalujecie Wasz motyw plymouth.

Gdy po zainstalowaniu nie macie jeszcze ochoty wyłączać komputera, a tylko podejrzeć jak wygląda Wasze dzieło, wystarczy wpisać w terminalu po kolei:

sudo plymouthd
sudo plymouth --show-splash
sudo plymouth --quit

Pierwsze polecenie ładuje deamona, drugie umożliwia podgląd, a trzecie kończy go.

368244

Czas już kończyć, jeśli uważacie, że plymouth jest jeszcze za mało konfigurowalny to polecam zajrzeć na bloga CharlieBrej'a na którym znajdziecie cztery lekcje robienia plymouth'a. Ponadto opis wszystkich funkcji znajdziecie na wiki projektu. Na zakończenie gra Tetris wykonana w plymouth. Źródła znajdziecie na podlinkowanym blogu. Pozwoliłem sobie wykonać paczkę deb, abyście mogli szybko ją przetestować. Sterowania nie pamiętam dokładnie, ale chyba klawisze H J K służą do przesuwania bloków, a do obracania klawisz D lub S.

Link do Tetrisa

Mam nadzieję, że dzięki temu wpisowi, na gnome-look.org pojawi się coraz więcej znakomitych prac polskich autorów.

Tapeta "Lucid Inspired" użyta w plymouth, pochodzi od użytkownika hepaly.

Wybrane dla Ciebie
Komentarze (9)