Há muito tempo o pessoal reclama que o
Inkscape não possui um Splash Screen (aquela tela inicial que indica que o programa está sendo carregado).
Essa tela é usada, principalmente, por programas pesados que demoram para abrir e o usuário fica meio sem saber se programa está sendo aberto ou não.
Os desenvolvedores insistem em não providenciar um. Após algum tempo, esperando o pessoal do desenvolvimento lançar a melhoria, eu me lembrei de uma coisa: nós do
GNU/Linux quando não temos algo, acabamos resolvendo o problema na unha mesmo.
Então, fui à luta. Não é um Splash Screen verdadeiro, mas resolve a dificuldade com elegância e eficiência. Trata-se de um programinha em Python que lança o programa e a imagem ao mesmo tempo.
Serve também para outros programas que não seja o Inkscape. Não sou programador, por isso, a solução meio "tabajara". Algumas coisas são de minha autoria e outras foram garimpadas na Internet.
Depois de montado, o Frankstein ficou uma beleza. Então, vamos à solução:
1. Crie em sua pasta do usuário, a pasta
.inkscape_SS sem aspas (o ponto indica que será uma pasta oculta).
2. Abra o GEdit, copie e cole o arquivo-programa que vem logo abaixo. Salve como
inkscape_SS.py na pasta recém criada. Se tudo deu certo, o texto ficará todo colorido feito "bunda de mandril".
Vá até a pasta:
- Clique com o botão direito sobre o arquivo;
- Clique em: Propriedades
- Depois, na aba Permissões, ative a caixa: Executar como um programa
- As permissões, deixe todas para: Leitura e escrita
#!/usr/bin/env python
import Tkinter as tk
from PIL import Image
from os import popen2
popen2('inkscape')
image_name = "/home/newjas/.inkscape_SS/SS2_Inkscape.gif"
image_size = Image.open("/home/newjas/.inkscape_SS/SS2_Inkscape.gif").size
root = tk.Tk()
root.overrideredirect(True)
width = root.winfo_screenwidth()
height = root.winfo_screenheight()
x = (width-image_size[0])/2.
y = (height-image_size[1])/2.
root.geometry('%dx%d+%d+%d' % (image_size[0], image_size[1], x, y))
image = tk.PhotoImage(file=image_name)
canvas = tk.Canvas(root, height=image_size[1], width=image_size[0])
canvas.create_image(0, 0, anchor="nw", image=image)
canvas.pack()
root.after(15000, root.destroy)
root.mainloop()
3. A imagem só pode ser de extensão
*.gif e quanto ao tamanho, pode ser qualquer um, mas o ideal é 600X400 pixels ou perto disso. Nomeie a imagem como
SS2_Inkscape.gif.
Dica: uma imagem
*.png pode ser aberta no
Gimp e exportada como
*.gif. Inclusive, ela pode ser criada no Inkscape, salva com extensão
*.png e aberta e exportada como
*.gif pelo Gimp.
Não use imagens com degradês, pois a extensão
*.gif costuma "estranhar". Use somente cores chapadas. Coloque a imagem na pasta
.inkscape_SS.
4. Coloque uma imagem de ícone do Inkscape 48X48 pixels ou outro tamanho que lhe apeteça, na pasta
.inkscape_SS.
5. Tudo pronto. Agora, é só preparar a decolagem.
Clique com o botão direito no botão do menu
Iniciar e em
Configurar. Isso vai abrir o editor de menus.
Nele, desmarque o Inkscape e clique em
New item. Abrirá uma janelinha e nela, digite:
- Nome: Inkscape_SS
- Comando: /home/usuário/.inkscape_SS/inkscape_SS.py
- Comentário: inkscape com Splash Screen
No lado esquerdo, tem um quadradinho para a escolha do ícone. Então, escolha o que você colocou na pasta
.inkscape_SS. Feche e pronto.
Se quiser colocar um ícone na área de trabalho, faça o seguinte:
- Copie o arquivo-programa e cole na área de trabalho;
- Clique com o botão direito sobre o arquivo e depois em Propriedades
- Clique no quadradinho à esquerda e escolhe o ícone que está em: .inkscape_SS
Inkscape abrindo com Splash Screen feito em Python
Finalmente, terminamos.
Mas é bom lembrar que o procedimento foi feito no
Linux Mint 16 Petra e é quase certo que funcionará também no Ubuntu, porém, em outras distribuições, se o Python estiver instalado em pasta diferente, serão necessários alguns ajustes.
Também acredito ser preciso uma versão recente do Python (2.7 para cima). Verifique se possui os módulos que precisam ser importados (descritos bem no início do programa). Caso não os tenha, baixe-os.
* Um último alerta: a linha
popen2('inkscape') é a que lança o programa Inkscape. Não caia na tentação de colocar os parâmetros que, às vezes, aparecem com o programa (tal como
inkscape %F). Não funcionará. Se quiser usar com outros programas, também pode. É só trocar o nome do aplicativo que está na linha
popen2('inkscape') pelo nome que lança o programa que você quer.
As linhas:
→ image_name = "/home/newjas/.inkscape_SS/SS2_Inkscape.gif"
→ image_size = Image.open("/home/newjas/.inkscape_SS/SS2_Inkscape.gif").size
...são referências à imagem que será usada para o Splash Screen, então, se for usar com outros programas, troque o nome da imagem nessas linhas por outro mais apropriado.
* Mais uma vez: não use os parâmetros junto com o nome "lança o programa". A linha
root.after(15000, root.destroy) é a linha que informa o tempo que a imagem será exibida (15000 milissegundos ou 15s). Para alterar esse tempo, mude esse valor. Para lançar a calculadora, criei a pasta
.Gcalc, copiei o programa para a pasta e modifiquei as linhas citadas:
- lança a calculadora: popen2('gnome-calculator')
- lança a imagem imageCALC.gif que está na pasta .Gcalc
- image_name = "/home/newjas/.Gcalc/imageCALC.gif"
- image_size = Image.open("/home/newjas/.Gcalc/imageCALC.gif").size
...informa que a imagem será exibida por 3 segundos:
root.after(3000, root.destroy)
Calculadora abrindo através do programa em Python
Conclusão
Por fim, se tudo der certo, gostaria que vocês me ajudassem a espalhar esse artigo pela Internet.
Quem sabe, vendo muita gente usando, os desenvolvedores não cheguem à conclusão que um Splash Screen não é uma coisa tão profana quanto parece e resolvam fazer um de verdade.
Quem domina o inglês, poderia por esse artigo, em algum site nos "States" ou nas "Englands". Quem domina Python, sinta-se à vontade para melhorar o programa, pois como disse acima, não sou programador.
Um abraço e até mais pessoal,
newjas