Como posso personalizar o logotipo de inicialização do Ubuntu?

60

Estou fazendo uma distribuição personalizada e tenho uma pergunta sobre o logotipo do Ubuntu com 5 pontos exibidos ao inicializar.

O Ubuntu-Logo-Scriptna /lib/plymouth/themes/ubuntutextpasta tem a palavra Ubuntu e abaixo desses 5 'pontos' em progresso. É possível remover os pontos da barra de progresso e substituí-lo por um logotipo desbotado do Ubuntu, que gradualmente fica colorido?

insira a descrição da imagem aqui

Roshan George
fonte

Respostas:

135

Instalar Tema

Criei o tema como você queria com um logotipo Ubuntu desbotado (além disso, adicionei uma animação do logotipo Ubuntu. Espero que você goste :-P)

Captura de tela

Girar o logotipo do Ubuntu e o logotipo de texto do Ubuntu com um efeito de desbotamento em movimento.

Quer vê-lo ao vivo?

Acesse http://www.youtube.com/watch?v=zPo50gM3txU

Onde você pode obter esse tema?

Fiz upload para a nuvem Mediafire aqui .

Como você o instala?

Faça o download no link acima, salve-o na área de trabalho e emita esses comandos um a um. Substitua /lib/plymouth/themespor /usr/share/plymouth/themesnos comandos, se você estiver no 16.04 ou posterior.

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

Como verificá-lo?

  1. Reinicie o Ubuntu e você verá uma bela animação ao inicializar e desligar. OU
  2. Copie o comando inteiro abaixo e cole-o em um terminal e pressione enter. (Você provavelmente terá que instalar um pacote: 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

Como criar um tema para Plymouth

A linguagem de script Plymouth é muito semelhante a C ou JavaScript. Se você conhece esses idiomas, será muito fácil criar scripts Plymouth.

Vamos começar com o básico, como operadores, looping, comentários, etc. Três tipos de comentários são suportados.

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

As instruções são finalizadas com ponto e vírgula, por exemplo

foo = 10;

Os blocos de instrução podem ser criados com colchetes, por exemplo

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

Os operadores suportados são +, -, *, /, %. Operadores de designação abreviada também são suportados +=, -=, *=,etc. Operadores unários também são suportados, por exemplo

foo *= ++z;

+ é usado para concatenação, por exemplo

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

Exemplo de operador de comparação:

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

Operações condicionais e loop:

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


while (foo--)
    z *= foo;

&&, ||, !Também são suportados.

if ( foo > 0 && foo <4 )

Isso pode ser novo para muitos leitores: hashes, semelhantes a matrizes. Hashes podem ser criados acessando seu conteúdo usando dotou [ ]colchetes, por exemplo

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

Use a funpalavra-chave para definir a função, por exemplo

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

Os dois objetos básicos de Plymouth

Imagem

Para criar uma nova imagem, forneça o nome do arquivo de uma imagem no diretório do tema Image(). Lembre-se, apenas arquivos .png são suportados . Por exemplo:

background = Image ("black.png"); 

Para mostrar uma mensagem de texto, você deve criar uma Imagedo texto. (Isso pode surpreendê-lo.) Por exemplo:

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

Largura e altura podem ser encontradas usando GetWidth()e GetHeight(); por exemplo:

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

Pode-se girar ou alterar o tamanho de uma imagem; por exemplo:

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

Use Spritepara colocar um Imagena tela.

Criando um Sprite:

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

Ou fornecendo imagem ao seu construtor,

first_sprite = Sprite (background);

Como definir o sprite diferente para diferentes posições na tela (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);

Ou você pode definir tudo de uma vez com SetPosition():

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

Alteração da opacidade:

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

Alguns métodos diversos usados ​​são:

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.

Funções Predefinidas

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.

Funções matemáticas

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

É melhor modificar um script existente do que começar do zero.

Abra o .scriptarquivo do meu tema carregado e tente entender o que ele faz. Um guia fantástico pode ser encontrado aqui .

Tenho certeza que você aprenderá isso. Não é difícil. Deixe-me saber se você precisar de alguma ajuda.

Espero que ajude você a criar um você mesmo.

Resposta ao comentário de 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

Pode ser necessário adicionar sprite.SetZ (-10);

Você deve remover

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

onde p, q, r, a, b, cestão alguns valores.

Mais links

virpara
fonte
11
Posso obter o mesmo que você criou, mas com o logotipo e o texto do ubuntu (nas mesmas posições como agora) brilhando e escurecendo alternadamente (quando o logotipo brilha, txt escurece e quando o texto brilha, o logotipo escurece) sem borda rotativa e progresso da fenda como o playmouth Ubuntu9.10 ... ou seja, este- wiki.ubuntu.com/Artwork/Incoming/Karmic/Boot/… gostaria de ter apenas a barra de progresso da fenda como a do link ... sendo o txt e o logotipo em posições iguais a urs ... Você pode me ajudar a ter isso? Estou tentando aprender com o que você explicou por enquanto ... Thanx! resposta gr8
Nirmik
21
Às vezes eu gostaria de poder votar mais de uma vez: D
Rinzwind
11
@Rinzwind: Eu só lhe deu "10 upvotes" em nome de todos nós :)
ish
Obrigado cara, o tutorial é excelente. Eu pareço esquecido em dizer isso. Isso é permitido?
Roshan George
11
Observe que no 16.04, o local do diretório de temas foi alterado para:/usr/share/plymouth/themes
Olivier
3

Use o Plymouth Manager para mudar isso. Você pode obtê-lo aqui no Launchpad ou executar os comandos abaixo.

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 

Depois disso, você precisará iniciar plymouth-managercom o comando:

sudo plymouth-manager

O comando "magic" se você quiser fazer tudo sozinho (escrevendo seu próprio arquivo de configuração plymouth) e deseja aplicá-lo quando estiver pronto é:

sudo update-alternatives --config default.plymouth && sudo update-initramfs -u
Frantique
fonte
1

Alterei a tela do GRUB com o software GRUB Customizer. Mas se você quiser alterar a tela de Plymouth, é diferente.

Todas as coisas deste software estão no /lib/plymouth/themesdiretório e toda a animação deste está no /lib/plymouth/themes/ubuntu-logo/ubuntu-logo.scriptarquivo.

Se você deseja modificar ao seu gosto, Plymouth, tudo o que precisa está na ubuntu-logopasta.

Você pode fazer isso sozinho, sem a ajuda de nenhum software externo, mas deve entender a programação .

Além disso, você pode encontrar ferramentas para fazer isso no repositório Ubuntu, mas precisa aprender a criar temas Plymouth.

Boa sorte!

Lucio
fonte