newjas
(usa Linux Mint)
Enviado em 21/05/2014 - 03:11h
Olá pessoal!
Aqui quem fala e o newjas.
A muito tempo o pessoal reclama que o Inkscape não possui um splash screen(aquela tela inicial que indica que o programa foi aberto). 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 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 na 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 e clique com o botão direito sobre o arquivo, clique em “propriedades” e depois na aba “permissões”, ative a caixa “executar como um programa” e 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” sem aspas. 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/newjas/.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”, você clica no quadradinho à esquerda e escolha o ícone que está em “.inkscape_SS”.
Finalmente terminamos, mas é bom lembrar que o procedimento foi feito no 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á necessário 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 as 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)
Por fim, se tudo der certo gostaria que vocês me ajudassem 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.
Um abraço e até mais pessoal
newjas