Kommander2Python

Shell scripts, Kommander, GUIs...

Moderador: Moderadores

vampire_thunder
COMPANHEIRO BIG
Mensagens: 301
Registrado em: 29 Mar 2007, 20:20

Kommander2Python

Mensagem por vampire_thunder » 17 Out 2009, 11:35

Olá, galera!
Um dos recursos que gostava muito no Big 4 era o de trocar a imagem do fundo do Grub. O "programinha" era feito no Kommander. Consegui fazer o código rodar no Ubuntu 9.04, com o Kommander do KDE4, mas aqui ele está dando uns bugs. É preciso inserir a imagem duas vezes, com risco de corromper o arquivo message.
Pensei então em converter o código para python, mas como não tenho experiência com linguagem nenhuma, gostaria de saber se alguém sabe e se propõe a fazer isso.
Eis o que estou rodando no Ubuntu:

Código: Selecionar todos

<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
<class>Form1</class>
<widget class="Dialog">
    <property name="name">
        <cstring>Form1</cstring>
    </property>
    <property name="geometry">
        <rect>
            <x>0</x>
            <y>0</y>
            <width>374</width>
            <height>443</height>
        </rect>
    </property>
    <property name="caption">
        <string>Alterar imagem do Grub</string>
    </property>
    <property name="associations" stdset="0">
        <stringlist>
            <string></string>
            <string>@exec(if test $(id -u) != 0; then
dcop @dcopid KommanderIf setEnabled ExecButton1 false
dcop @dcopid KommanderIf setEnabled ExecButton2 false
dcop @dcopid KommanderIf setEnabled ExecButton3 false
kdialog --msgbox "Somente o usuário root pode utilizar esse configurador."
fi)

mkdir /etc/biggrub/tmp
cd /etc/biggrub/tmp
cpio -i < /boot/message


if [ -e "/etc/biggrub/tmp/panim.jpg" ]; then
dcop @dcopid KommanderIf setChecked CheckBox1 true 
fi


@preview.setText("/etc/biggrub/pback.jpg")
</string>
            <string></string>
        </stringlist>
    </property>
    <widget class="Label">
        <property name="name">
            <cstring>Label3</cstring>
        </property>
        <property name="geometry">
            <rect>
                <x>20</x>
                <y>10</y>
                <width>330</width>
                <height>31</height>
            </rect>
        </property>
        <property name="text">
            <string>Alterar imagem do Grub.</string>
        </property>
        <property name="alignment">
            <set>AlignCenter</set>
        </property>
        <property name="associations" stdset="0">
            <stringlist>
                <string></string>
            </stringlist>
        </property>
    </widget>
    <widget class="PixmapLabel">
        <property name="name">
            <cstring>preview</cstring>
        </property>
        <property name="geometry">
            <rect>
                <x>22</x>
                <y>46</y>
                <width>329</width>
                <height>233</height>
            </rect>
        </property>
        <property name="paletteBackgroundColor">
            <color>
                <red>230</red>
                <green>230</green>
                <blue>230</blue>
            </color>
        </property>
        <property name="frameShape">
            <enum>GroupBoxPanel</enum>
        </property>
        <property name="scaledContents">
            <bool>true</bool>
        </property>
        <property name="populationText">
            <string></string>
        </property>
        <property name="associations" stdset="0">
            <stringlist>
                <string>@widgetText</string>
            </stringlist>
        </property>
    </widget>
    <widget class="Label">
        <property name="name">
            <cstring>Label2</cstring>
        </property>
        <property name="geometry">
            <rect>
                <x>2</x>
                <y>418</y>
                <width>355</width>
                <height>17</height>
            </rect>
        </property>
        <property name="text">
            <string>Selecione a nova imagem para o Grub</string>
        </property>
        <property name="alignment">
            <set>AlignCenter</set>
        </property>
        <property name="associations" stdset="0">
            <stringlist>
                <string></string>
            </stringlist>
        </property>
    </widget>
    <widget class="ButtonGroup">
        <property name="name">
            <cstring>ButtonGroup2_2</cstring>
        </property>
        <property name="geometry">
            <rect>
                <x>21</x>
                <y>310</y>
                <width>330</width>
                <height>50</height>
            </rect>
        </property>
        <property name="title">
            <string>Aplicar efeitos na imagem</string>
        </property>
        <property name="associations" stdset="0">
            <stringlist>
                <string>@widgetText</string>
                <string></string>
            </stringlist>
        </property>
        <widget class="RadioButton">
            <property name="name">
                <cstring>RadioButton4</cstring>
            </property>
            <property name="geometry">
                <rect>
                    <x>150</x>
                    <y>20</y>
                    <width>40</width>
                    <height>22</height>
                </rect>
            </property>
            <property name="text">
                <string>&1</string>
            </property>
            <property name="associations" stdset="0">
                <stringlist>
                    <string></string>
                    <string>1.png</string>
                </stringlist>
            </property>
        </widget>
        <widget class="RadioButton">
            <property name="name">
                <cstring>RadioButton1</cstring>
            </property>
            <property name="geometry">
                <rect>
                    <x>30</x>
                    <y>20</y>
                    <width>77</width>
                    <height>22</height>
                </rect>
            </property>
            <property name="text">
                <string>Nenh&um</string>
            </property>
            <property name="associations" stdset="0">
                <stringlist>
                    <string></string>
                    <string>0.png</string>
                </stringlist>
            </property>
        </widget>
        <widget class="RadioButton">
            <property name="name">
                <cstring>RadioButton5</cstring>
            </property>
            <property name="geometry">
                <rect>
                    <x>249</x>
                    <y>20</y>
                    <width>40</width>
                    <height>22</height>
                </rect>
            </property>
            <property name="text">
                <string>&2</string>
            </property>
            <property name="checked">
                <bool>true</bool>
            </property>
            <property name="associations" stdset="0">
                <stringlist>
                    <string></string>
                    <string>2.png</string>
                </stringlist>
            </property>
        </widget>
    </widget>
    <widget class="ButtonGroup">
        <property name="name">
            <cstring>ButtonGroup2</cstring>
        </property>
        <property name="geometry">
            <rect>
                <x>10</x>
                <y>370</y>
                <width>347</width>
                <height>36</height>
            </rect>
        </property>
        <property name="frameShape">
            <enum>NoFrame</enum>
        </property>
        <property name="frameShadow">
            <enum>Plain</enum>
        </property>
        <property name="lineWidth">
            <number>0</number>
        </property>
        <property name="title">
            <string></string>
        </property>
        <property name="associations" stdset="0">
            <stringlist>
                <string></string>
                <string></string>
            </stringlist>
        </property>
        <widget class="CloseButton">
            <property name="name">
                <cstring>CloseButton2</cstring>
            </property>
            <property name="geometry">
                <rect>
                    <x>264</x>
                    <y>5</y>
                    <width>76</width>
                    <height>26</height>
                </rect>
            </property>
            <property name="text">
                <string>Fec&har</string>
            </property>
            <property name="associations" stdset="0">
                <stringlist>
                    <string></string>
                </stringlist>
            </property>
        </widget>
        <widget class="ExecButton">
            <property name="name">
                <cstring>ExecButton2</cstring>
            </property>
            <property name="geometry">
                <rect>
                    <x>171</x>
                    <y>5</y>
                    <width>76</width>
                    <height>26</height>
                </rect>
            </property>
            <property name="text">
                <string>Apl&icar</string>
            </property>
            <property name="associations" stdset="0">
                <stringlist>
                    <string>@ButtonGroup2.setEnabled(false)
@Label2.setText("Processando...")
@aplicar
@Label2.setText("Imagem do Grub alterada.")
@ButtonGroup2.setEnabled(true)
</string>
                </stringlist>
            </property>
        </widget>
        <widget class="ExecButton">
            <property name="name">
                <cstring>ExecButton1</cstring>
            </property>
            <property name="geometry">
                <rect>
                    <x>8</x>
                    <y>5</y>
                    <width>157</width>
                    <height>26</height>
                </rect>
            </property>
            <property name="text">
                <string>Seleci&onar Imagem</string>
            </property>
            <property name="associations" stdset="0">
                <stringlist>
                    <string>@Label2.setText("Selecione a imagem.")

@exec(convert @Input.openfile(/usr/share/wallpapers, *.png *.jpg *.gif *.bmp *.svg) -resize 800x600\! /etc/biggrub/orig.jpg)

@exec(composite -compose atop /etc/biggrub/\@ButtonGroup2_2 /etc/biggrub/orig.jpg /etc/biggrub/pback.jpg)

@preview.setText("/etc/biggrub/pback.jpg")

@preview.setText("/etc/biggrub/pback.jpg")
@Label2.setText("Para utilizar a imagem selecionada clique em aplicar.")</string>
                </stringlist>
            </property>
        </widget>
    </widget>
    <widget class="CheckBox">
        <property name="name">
            <cstring>CheckBox1</cstring>
        </property>
        <property name="geometry">
            <rect>
                <x>30</x>
                <y>280</y>
                <width>220</width>
                <height>30</height>
            </rect>
        </property>
        <property name="text">
            <string>Pin&guins passeando na tela</string>
        </property>
        <property name="populationText">
            <string></string>
        </property>
        <property name="associations" stdset="0">
            <stringlist>
                <string>rm -f /etc/biggrub/aplicar/panim_a.jpg
rm -f /etc/biggrub/aplicar/panim.jpg</string>
                <string></string>
                <string>cp -f /etc/biggrub/panim_a.jpg /etc/biggrub/aplicar/panim_a.jpg
cp -f /etc/biggrub/panim.jpg /etc/biggrub/aplicar/panim.jpg
</string>
            </stringlist>
        </property>
    </widget>
    <widget class="ScriptObject">
        <property name="name">
            <cstring>aplicar</cstring>
        </property>
        <property name="geometry">
            <rect>
                <x>0</x>
                <y>350</y>
                <width>32</width>
                <height>32</height>
            </rect>
        </property>
        <property name="associations" stdset="0">
            <stringlist>
                <string>rm -Rf /etc/biggrub/aplicar
mkdir /etc/biggrub/aplicar
cd /etc/biggrub/aplicar/
cpio -i < /boot/message
cp -f /etc/biggrub/pback.jpg /etc/biggrub/aplicar/pback.jpg
cp -f /etc/biggrub/gfxboot.cfg /etc/biggrub/aplicar/gfxboot.cfg
@CheckBox1
ls . |cpio -o > /boot/message</string>
            </stringlist>
        </property>
    </widget>
</widget>
<layoutdefaults spacing="6" margin="11"/>
</UI>
[url=http://img242.imageshack.us/my.php?image=s5033771cuttl2.jpg][img]http://img242.imageshack.us/img242/5417/s5033771cuttl2.th.jpg[/img][/url]

Avatar do usuário
cleitonlima
MESTRE BIG
Mensagens: 1816
Registrado em: 01 Jul 2008, 19:10
Localização: Rio de Janeiro, Cidade Maravilhosa.
Contato:

Mensagem por cleitonlima » 17 Out 2009, 16:51

vampire_thunder, fica calmo que não vai precisar de gambiarra pra nada que estava presente no Big 4.2 funcionar no 5. O novo Big Centro de Controle já está bem avançado, feito em uma nova linguagem.

é só esperar.

vampire_thunder
COMPANHEIRO BIG
Mensagens: 301
Registrado em: 29 Mar 2007, 20:20

Mensagem por vampire_thunder » 18 Out 2009, 02:46

Eu dei uma olhada no BigBashView, mas eu só queria converter o código, pra poder usar no Ubuntu.
[url=http://img242.imageshack.us/my.php?image=s5033771cuttl2.jpg][img]http://img242.imageshack.us/img242/5417/s5033771cuttl2.th.jpg[/img][/url]

Avatar do usuário
cleitonlima
MESTRE BIG
Mensagens: 1816
Registrado em: 01 Jul 2008, 19:10
Localização: Rio de Janeiro, Cidade Maravilhosa.
Contato:

Mensagem por cleitonlima » 18 Out 2009, 10:52

vampire_thunder, quem te contou que o Centro de Controle novo naum funciona no Ubuntu? Ele foi feito exatamente para isso, para funcionar no Big e no (k)Ubuntu. É só adicionar o repositório do Big e ser feliz,

vampire_thunder
COMPANHEIRO BIG
Mensagens: 301
Registrado em: 29 Mar 2007, 20:20

Mensagem por vampire_thunder » 18 Out 2009, 12:08

Eu sei.

Mas o centro de controle novo já tem essa opção de mudar a imagem do grub?
[url=http://img242.imageshack.us/my.php?image=s5033771cuttl2.jpg][img]http://img242.imageshack.us/img242/5417/s5033771cuttl2.th.jpg[/img][/url]

Avatar do usuário
cleitonlima
MESTRE BIG
Mensagens: 1816
Registrado em: 01 Jul 2008, 19:10
Localização: Rio de Janeiro, Cidade Maravilhosa.
Contato:

Mensagem por cleitonlima » 18 Out 2009, 16:01

vampire_thunder, essa eu vou ficar devendo. Mas com uma boa pesquisada no google você encontra a maneira de fazer isso sem precisar do Kommander.

vampire_thunder
COMPANHEIRO BIG
Mensagens: 301
Registrado em: 29 Mar 2007, 20:20

Mensagem por vampire_thunder » 18 Out 2009, 16:13

Já procurei.
O problema é que o código foi escrito para o Kommander. Seria preciso reescrevê-lo. Por isso abri o tópico.

Avatar do usuário
cleitonlima
MESTRE BIG
Mensagens: 1816
Registrado em: 01 Jul 2008, 19:10
Localização: Rio de Janeiro, Cidade Maravilhosa.
Contato:

Mensagem por cleitonlima » 18 Out 2009, 16:36

Pra ninguém dizer que eu sou malvado e mandei vc se virar pra procurar, fica a dica do Startup Manager:

http://wiki.ubuntu-br.org/StartUpManager

vampire_thunder
COMPANHEIRO BIG
Mensagens: 301
Registrado em: 29 Mar 2007, 20:20

Mensagem por vampire_thunder » 18 Out 2009, 18:36

Agradeço a ajuda, mas não é isso que eu quero.
Esse script acima pega o arquivo message que está na pasta /boot, descompacta, troca a imagem de fundo (pback.jpg) aplicando um efeito desejado e recompacta.
Imagem

Mas para esse processo funcionar, usando o kommander do kde4, eu preciso escolher a imagem e aplicar duas vezes, fazendo todo o processo, com risco do arquivo message corromper. Por isso achei que talvez a linguagem python fosse melhor nesse caso, ou até o shel script, talvez.

Avatar do usuário
BIGBRUNO
BIG ADMINISTRADOR!
Mensagens: 4731
Registrado em: 24 Jun 2004, 04:20
Localização: DF/Brasil
Contato:

Mensagem por BIGBRUNO » 22 Out 2009, 12:40

O problema agora é que a versão do Grub mudou e ainda não encontrei como deixa-lo mais bonito.

Nesse script tudo que ele faz é descompactar o arquivo image, converter a imagem desejada pro formato certo usando imagemagick, substituir e compactar novamente.

vampire_thunder
COMPANHEIRO BIG
Mensagens: 301
Registrado em: 29 Mar 2007, 20:20

Mensagem por vampire_thunder » 22 Out 2009, 21:20

O Big Linux 5 está usando o Grub2?
Bruno, o Grub 2 aceita os mesmos temas do grub-gfxboot.
Estava com o grub-gfxboot instalado, fui tentar compilar o Wubi, que pedia o grub2-pc, instalei e o tema permaneceu.
[url=http://img242.imageshack.us/my.php?image=s5033771cuttl2.jpg][img]http://img242.imageshack.us/img242/5417/s5033771cuttl2.th.jpg[/img][/url]

Avatar do usuário
BIGBRUNO
BIG ADMINISTRADOR!
Mensagens: 4731
Registrado em: 24 Jun 2004, 04:20
Localização: DF/Brasil
Contato:

Mensagem por BIGBRUNO » 23 Out 2009, 00:53

vampire_thunder, A partir do Alpha3 está com o Grub2, certeza que instalou e trocou o Grub1?

Todos os locais que li dizem que ele não está com suporte a GFX

vampire_thunder
COMPANHEIRO BIG
Mensagens: 301
Registrado em: 29 Mar 2007, 20:20

Mensagem por vampire_thunder » 23 Out 2009, 02:08

Com certeza, pois são incompatíveis. Quando instala o 2, ele remove o 1. No entanto, não instalei de forma limpa, ele aproveitou o meu menu.lst, e o tema se manteve.
Mas, como eu disse, instalei o pacote grub-pc:
GRand Unified Bootloader, version 2 (PC/BIOS version)

GRUB is a portable, powerful bootloader. This version of GRUB is based on a
cleaner design than its predecessors, and provides the following new features:

- Scripting in grub.cfg using BASH-like syntax.
- Support for modern partition maps such as GPT.
- Modular generation of grub.cfg via update-grub. Packages providing GRUB
add-ons can plug in their own script rules and trigger updates by invoking
update-grub2.
- VESA-based graphical mode with background image support and complete 24-bit
color set.
- Support for extended charsets. Users can write UTF-8 text to their menu
entries.

This package contains a version of GRUB that has been built for use with
traditional PC/BIOS architecture.

Canonical oferece atualizações críticas para grub-pc até outubro 2010.
E claro, também aceita imagens:
http://blogs.koolwal.net/2008/12/16/how ... sh-images/
http://www.howtoforge.com/how-to-add-a- ... buntu-9.04

Trancado

Voltar para “Scripts e Automações”

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes