[Artigo] Mostrando icones de .exe em seu Gnome

Started by Reeves, 21 de September , 2009, 09:40:03 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Reeves



Em anexo: Script que automatiza a tarefa de visualizar icones de .exe no Gnome.

Eu acho legal poder visualizar os icones dos .exe justamente por uma questão de organização, localização..
e é tudo muito simples e após feito o processo fica automatico.
Este tutorial é para gnome e fiz ele em sistema operacional baseado em debian usando apt, fique a vontade para usar yum, yast, emerge... ou mesmo baixar os pacotes.


Ok, vamos instalar o icoutils
sudo apt-get install icoutils

Após isso, vamos adicionar o MIME type para os .exe para que seu gnome os reconheça.
Iremos adicionar um arquivo chamado user-extension-exe.xml
dentro de /home/SEU_USUARIO/.local/share/mime/packages/

Crie user-extension-exe.xml com o seguinte conteudo.
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
        <mime-type type="application/x-exe">
                <comment>Windows executable</comment>
                <glob pattern="*.exe"/>
        </mime-type>
</mime-info>



Agora, vá para o Home de seu usuário
cd /home/USUARIO/

Execute o update de mimi type:
update-mime-database .local/share/mime/

Vamos verificar se o MIME Type para .exe foi adicionado a config do gnome, para isso pegue qualquer arquivo.exe e vamos ao teste.
gnomevfs-info arquivo.exe | grep MIME
deverá aparecer algo como: "MIME type : application/x-exe"


Ultimos passos!

Vamos criar o nosso exe-icon.sh que irá automatizar a exibição dos nossos .exe
usando a conta de root, iremos criar o exe-ico.sh dentro de /usr/bin com o conteudo a seguir:
#!/bin/sh

f=`mktemp`

if wrestool "$1" -x -t14 > $f && [ -s $f ]; then
id=`icotool -l $f | awk '{
ci=int(substr($2,index($2,"=")+1));
cw=int(substr($3,index($3,"=")+1));
cb=int(substr($5,index($5,"=")+1));

if (cw > w || (cw == w && cb > b)) {
b = cb;
w = cw;
i = ci;
}
}
END {
print i;
}'`

icotool -x --index=$id $f -o "$2"
convert -resize 48x48 "$2" "$2" # optional
else
cp '/usr/share/icons/crystalsvg/48x48/mimetypes/exec_wine.png' "$2"
fi

rm $f


vamos dar a permição de execução ao nosso programa com:
chmod 755 /usr/bin/exe-ico.sh


Agora para finalizar vamos passar para o gnome como agir e correr para o abraço!

gconftool --type string --set /desktop/gnome/thumbnailers/application@x-exe/command "exe-ico.sh %i %o"
gconftool --type bool --set /desktop/gnome/thumbnailers/application@x-exe/enable true


Pronto, agora seus .exe estarão exibindo seus respectivos icones!

Abraços.





Greatz: Davor Cihlar
  °vº   NÃO USE DROGAS,
/(_)\  USE GNU/LINUX
^ ^

Mateus

Thanks pela contribuição, a comunidade linux poderia fazer as coisas, de maneira que ficasse mais fácil para os usuários noobs, por exemplo...um shellscript que automatizasse o processo todo cairia bem ^^
H4X with axes 8)

Reeves

#2
opa boa ideia Mateus...

Está pronto, funciona em quase todas distribuições linux rodando gnome.
testado em: Debian, Ubuntu, Fedora, Slackware  OK


Abaixo o shellscript que faz todo o serviço e em anexo ao tópico acima. o mesmo script compactado!
em caso de dúvidas estou ae.

#!/bin/sh
clear
echo ' 21/09/2009
Desenvolvido por: Reeves | Reeves@darkers.com.br
Sob Licença GNU/GPL';
echo -e '
  _________                          .__  __         
/   _____/ ____   ____  __ _________|__|/  |_ ___.__.
\_____  \_/ __ \_/ ___\|  |  \_  __ \  \   __<   |  |
/        \  ___/\  \___|  |  /|  | \/  ||  |  \___  |
/_______  /\___  >\___  >____/ |__|  |__||__|  / ____|
        \/     \/     \/                       \/     
________                __                       
\______ \ _____ _______|  | __ ___________  ______
|    |  \\__  \\_  __ \  |/ // __ \_  __ \/  ___/
|    `   \/ __ \|  | \/    <\  ___/|  | \/\___ \
/_______  (____  /__|  |__|_ \\___  >__|  /____  >
        \/     \/           \/    \/           \/

  Darkers.com.br  Have fun.  :)

';


echo -e 'Este Script automatiza o processo para ver icones .exe em seu Gnome.
Execute-o como root e acesso a internet

Iremos baixar os fontes do pacote icoutils, compilar, instalar, adicionar MIMI Type ao sistema e jogar o script exe-ico.sh dentro de /usr/bin para automatizar.

';
read -p "Precione qualquer tecla para dar inicio ao processo..."
wget -c http://savannah.nongnu.org/download/icoutils/icoutils-0.28.0.tar.gz
tar -xvzf icoutils-0.28.0.tar.gz
cd icoutils-0.28.0
./configure
make && make install clean
rm -rf icoutils-0.28.0
rm -rf icoutils-0.28.0.tar.gz
echo -e '


Digite a localização do home em que deseja intalar.
ex: /home/raul'
read home
cd $home
echo -e '<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
        <mime-type type="application/x-exe">
                <comment>Windows executable</comment>
                <glob pattern="*.exe"/>
        </mime-type>
</mime-info> ' >> $home/.local/share/mime/packages/user-extension-exe.xml

update-mime-database $home/.local/share/mime/

echo -e "#!/bin/sh
f=`mktemp`
if wrestool "$1" -x -t14 > $f && [ -s $f ]; then
id=`icotool -l $f | awk '{
ci=int(substr($2,index($2,"=")+1));
cw=int(substr($3,index($3,"=")+1));
cb=int(substr($5,index($5,"=")+1));

if (cw > w || (cw == w && cb > b)) {
b = cb;
w = cw;
i = ci;
}
}
END {
print i;
}'`
icotool -x --index=$id $f -o "$2"
convert -resize 48x48 "$2" "$2"
else
cp '/usr/share/icons/crystalsvg/48x48/mimetypes/exec_wine.png' "$2"
fi
rm $f" >> /usr/bin/exe-ico.sh;
chmod 755 /usr/bin/exe-ico.sh;
gconftool --type string --set /desktop/gnome/thumbnailers/application@x-exe/command "exe-ico.sh %i %o";
gconftool --type bool --set /desktop/gnome/thumbnailers/application@x-exe/enable true;
echo -e '



Processo Finalizado!   :)'
  °vº   NÃO USE DROGAS,
/(_)\  USE GNU/LINUX
^ ^