Splash Screen para Inkscape

Programas que demoram para serem abertos, necessitam de um Splash Screen (tela inicial, cuja abertura confirma o carregamento do aplicativo). Acontece que o Inkscape não tem um, embora seja o desejo de muitos usuários desse programa.

[ Hits: 6.937 ]

Por: jose antonio de siqueira em 26/05/2014


Splash Screen para Inkscape



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

Linux: Splash Screen para Inkscape
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)
Linux: Splash Screen para Inkscape
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

   

Páginas do artigo
   1. Splash Screen para Inkscape
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

PEP 8 - Guia de estilo para código Python

Como criar um keylogger em Python

Python - Enviando Backup para Servidor Secundário

Criando um leitor de RSS com Python

Trabalhando com permutações em ordem lexicográfica crescente

  
Comentários
[1] Comentário enviado por newjas em 26/05/2014 - 01:23h

Bom dia pessoal!

Estou postando este comentário por causa de um pequeno problema que deixei passar. Nos caminhos onde está escrito "newjas", este é o meu usuário.
Então troque esse nome pelo nome do seu usuário. Isso é básico mas assim como passou por mim pode levar muita gente a bater cabeça. Peço que
me perdoem pelo deslize. No futuro ficarei mais atento a esses detalhes.
Abraços
newjas

[2] Comentário enviado por removido em 26/05/2014 - 09:40h

Meus parabéns, obrigado pela contribuição. São sempre bem vindos artigos e dicas com conteúdo sobre manipulação de editores de Imagens.

[3] Comentário enviado por tiekookeit em 26/05/2014 - 11:18h

Muito criativo, parabéns!

[4] Comentário enviado por Sandro1 em 26/05/2014 - 22:29h

Olá,
Parabéns pelo artigo, testei aqui no openSUSE e ficou show de bola, funcionou perfeito!

[5] Comentário enviado por newjas em 27/05/2014 - 02:14h

Obrigado Sandro1.
Você foi o primeiro a testar. Fico feliz que tenha gostado.
Abraços
newjas


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts