Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/12/2011, à 21:47

VPCL

Quitter Open Box

Bonsoir à tous,
je cherche à installer des boutons d' extinction, déconnexion et redémarrage sur Open Box. Pour cela j' ai téléchargé "Script Quitter", j' ai décompressé le fichier,dans le script j'ai indiqué le chemin du fond d' écran puis je l' ai rendu exécutable.Jusque là pas de problème.
Mais ensuite impossible de le lancer.J'ai bien suivi les instruction trouvées sur le site d'Archlinux mais cela ne fonctionne pas.

Pourriez vous m' aider SVP?

Cordialement,VPCL.

Hors ligne

#2 Le 11/12/2011, à 15:46

Skubu

Re : Quitter Open Box

Salut,

Quel(s) version(s) de python as-tu ?

Chez moi, cette commande fonctionne :

python2 ~/.script-quitter/ob_logout

Il faut, je crois, aussi installer python-imaging. À confirmer. Essaies sans pour commencer.


Debian / Archlinux | Gnome / KDE

Hors ligne

#3 Le 11/12/2011, à 18:39

loubrix

Re : Quitter Open Box

si je me suis pas trompé de doc sur le site d'Archlinux, ton "Script Quitter" fait appel à Sudo pour appeler "shutdown"; sauf que c'est maintenant inutile: un simple utilisateur peut arrêter son système sans appel à Sudo grâce à D-Bus.
donc la commande pour redémarrer est:

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart

et celle pour arrêter:

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

ça peut très facilement être inclus dans le menu d'Openbox, en ajoutant ceci dans menu.xml:

<item id="exit" label="Déconnexion">
            <action name="Execute">
                <execute>
                    openbox --exit
                </execute>
            </action>
        </item>
<item id="reboot" label="Redémarrer">
            <action name="Execute">
                <execute>
                    dbus-send --system --print-reply --dest=&quot;org.freedesktop.ConsoleKit&quot; /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
                </execute>
            </action>
        </item>
        <item id="halt" label="Éteindre">
            <action name="Execute">
                <execute>
                    dbus-send --system --print-reply --dest=&quot;org.freedesktop.ConsoleKit&quot; /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
                </execute>
            </action>
        </item>

ça peut aussi s'ajouter dans le menu de Fbpanel si tu l'utilises (je te dirai comment au besoin), ou dans un script...

PS: comme les commandes sont longues, elles apparaissent sur 2 lignes, mais en fait c'est sur une seule...

Dernière modification par loubrix (Le 11/12/2011, à 18:42)


Asus X50VL - Ubuntu 12.04 AMD64
HP G62 - Ubuntu 12.10 AMD64
Fujitsu-Siemens Amilo EL - Lubuntu 12.04 i686
Manjaro, une rolling pour débutants

Hors ligne

#4 Le 11/12/2011, à 21:35

VPCL

Re : Quitter Open Box

Skubu,
j'ai les versions 2.7.2+ et 3.2.2, la commande que tu m'as indiquée ne fonctionne pas, j'essayerai plus tard en installant Python-Imaging.

Loubrix,
j' ai complété mon menu suivant tes conseils et cela fonctionne.Cependant, au redémarrage j' obtiens le message suivant:
Erreur de syntaxe... Ligne 165...Premature end of data in tag openbox-menu line 2.

Merci à vous deux et bonne soirée,VPCL.

Hors ligne

#5 Le 11/12/2011, à 23:40

VPCL

Re : Quitter Open Box

AIE!!!
Obmenu ne répond plus.J'ai désinstallé puis réinstallé Openbox  mais ce que j' avais configuré est resté.
Si j' ai bien compris, il faudrait que je supprime le fichier: ~/.config/openbox/rc.xml mais comment faire?

Bonne soirée,VPCL.

Dernière modification par VPCL (Le 11/12/2011, à 23:41)

Hors ligne

#6 Le 11/12/2011, à 23:56

chibbata

Re : Quitter Open Box

salut
verifie dans /etc/xdg/openbox
il doit y avoir un fichier rc.xml,celui d'origine

j'ai une installation de archlinux qui utilise oblogout
les commandes d'arret,reboot,logout sont :
shutdown = sudo shutdown -h 0
restart = sudo reboot
logout = openbox --exit

ou
éteindre: gksudo shutdown -h now
redémarrer: gksudo shutdown -r now

Dernière modification par chibbata (Le 12/12/2011, à 00:13)

Hors ligne

#7 Le 12/12/2011, à 00:17

VPCL

Re : Quitter Open Box

Il est bien présent.
Donc il faut que je supprime ma configuration:
rm ~/.config/openbox/menu.xml
puis création d'un nouveau fichier:
sudo nano  ~/.config/openbox/menu.xml
et enfin copier coller du fichier que tu m' as indiqué.

Correct ou je suis complètement à coté de la plaque?

Hors ligne

#8 Le 12/12/2011, à 00:31

chibbata

Re : Quitter Open Box

renomme le fichier menu.xml en menu.xml.old dans ~/.config/openbox/menu.xml
c'est un fichier caché,pour le voir
ouvres pcmanfm,dans le menu voir
coche montrer les fichiers cachés
la meme chose avec un autres gestionnaire de fichier,cherches dans les menus la meme option
puis vas dans /etc/xdg/openbox,copier le fichier et coller dans ~/.config/openbox/

Dernière modification par chibbata (Le 12/12/2011, à 00:33)

Hors ligne

#9 Le 12/12/2011, à 00:40

Skubu

Re : Quitter Open Box

moi je ferai :

mv ~/.config/openbox/menu.xml ~/.config/openbox/menu.xml.backup

mieux vaut le conserver pour te souvenir de ce que tu as fait et suppr le une fois ton nouveau menu.xml parfait.
Puis :

sudo cp /etc/xdg/openbox/menu.xml ~/.config/openbox/

pour retrouver le menu d'origine.


Mais on s'est égaré là...

Reprenons, tu as essayé cette commande :

python2.7 /chemin/vers/.script-quitter/ob_logout

?


As-tu eu quelque chose comme ça : 1323646084.png ?

Note : les îcones peuvent être différentes.



Si oui, teste chacune des options pour voir s'il est totalement fonctionnel; si non installes python-imaging

sudo apt-get install python-imaging

Retentes la commande et si tu n'as toujours rien, postes nous ce que renvoie la commande.


Au cas où le tien utiliserait shutdown, reboot ou halt, je mets à disposition le mien qui reprend les commandes citées par loubrix.

#!/usr/bin/env python2.5

##
#   Script to Exit , logout , reboot , suspend  [ gdm / openbox ]
#
#   http://crunchbanglinux.org/forums/topic/295/updated-openboxlogout-script/
##

import gtk
import os
import pwd
from PIL import Image, ImageFilter

class MyApp():
    def __init__(self):

        self.window = gtk.Window()
        self.window.set_title("Log Out ..")
        self.window.connect("destroy", self.doquit)
        self.window.connect("key-press-event", self.onkeypress)
        self.window.set_decorated(False)

        self.mainpanel = gtk.Fixed()
        self.window.add(self.mainpanel)

        self.screen_x , self.screen_y = gtk.gdk.screen_width(), gtk.gdk.screen_height()

        x = ( self.screen_x / 2 ) - ( 140 * 4 / 2 ) - 30
        y = ( self.screen_y / 2 ) - 100

        ## 1st Line
        self.add_bouton("application-exit",x+30,y+30)
        self.add_bouton("system-log-out",x+170,y+30)
        self.add_bouton("system-restart",x+310,y+30)
        self.add_bouton("system-shutdown",x+450,y+30)
       
        self.add_label("Cancel",x+80, y+170)
        self.add_label("Log out",x+215, y+170)
        self.add_label("Reboot",x+357, y+170)
        self.add_label("Shutdown",x+486, y+170)


        self.set_background()

    def set_background(self):
        img_file = "/tmp/root_window.jpg"
        w = gtk.gdk.get_default_root_window()
        sz = w.get_size()
        pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,sz[0],sz[1])
        pb = pb.get_from_drawable(w,w.get_colormap(),0,0,0,0,sz[0],sz[1])
        if (pb != None):
            pb.save(img_file,"jpeg")
            image = Image.open(img_file)
            color = 'black'
            alpha = 0.5
            mask = Image.new("RGB", image.size, color)
            image = Image.blend(image, mask, alpha)
            image.save(img_file,"jpeg")

        pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(img_file, self.screen_x, self.screen_y)
        pixmap, mask = pixbuf.render_pixmap_and_mask()
        # width, height = pixmap.get_size()
        self.window.set_app_paintable(True)
        self.window.resize(self.screen_x, self.screen_y)
        self.window.realize()
        self.window.window.set_back_pixmap(pixmap, False)
        self.window.move(0,0)
        del pixbuf
        del pixmap



    def add_bouton(self, name, x, y):
        image = gtk.Image()
        image.set_from_file("img/foom/" + name + ".png")
        image.show()
        # un bouton pour contenir le widget image
        bouton = gtk.Button()
        bouton.set_relief(gtk.RELIEF_NONE)
        bouton.set_focus_on_click(False)
        bouton.set_border_width(0)
        bouton.set_property('can-focus', False)
        bouton.add(image)
        bouton.show()
        self.mainpanel.put(bouton, x,y)
        bouton.connect("clicked", self.clic_bouton, name)

    def add_label(self, name, x, y):
        label = gtk.Label(name)
        label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("white"))
        self.mainpanel.put(label, x, y)

    # Cette fonction est invoquee quand on clique sur un bouton.
    def clic_bouton(self, widget, data=None):

        if (data=='application-exit'):
            self.doquit()

        elif (data=='system-log-out'):
            os.system('openbox --exit')

        elif (data=='system-restart'):
            os.system('dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart')

        elif (data=='system-shutdown'):
            os.system('dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop')


    def onkeypress(self, widget=None, event=None, data=None):
        if event.keyval == gtk.keysyms.Escape:
            self.doquit()

    def doquit(self, widget=None, data=None):
        gtk.main_quit()

    def run(self):
        self.window.show_all()
        gtk.main()

#-------------------------
if __name__ == "__main__":
#-------------------------
    ## need to change directory
    SRC_PATH = os.path.dirname( os.path.realpath( __file__ ) )
    os.chdir(SRC_PATH)
    app = MyApp()
    app.run()

Si tu le veux en français, de la ligne 37 à 40 traduis "Cancel", Log out", "Reboot" et "Shutdown" par "Annuler", Déconnexion", Redémarrer" et "Éteindre".


Voilà, bon courage. smile

Dernière modification par Skubu (Le 12/12/2011, à 00:57)


Debian / Archlinux | Gnome / KDE

Hors ligne

#10 Le 12/12/2011, à 01:13

VPCL

Re : Quitter Open Box

Premier point, la methode de chibbata a parfaitement fonctionné.
Second point, Script Quitter est dans le fichier "Téléchargements", où dois l' installer et comment (copier- coller?)

Hors ligne

#11 Le 12/12/2011, à 10:07

loubrix

Re : Quitter Open Box

@VPCL: il faudrait montrer à quoi correspond la ligne 165 chez toi (dans TON menu.xml)...
ce que je t'ai donné est un copier-coller de mon menu.xml, venant de ma config sous Arch qui fonctionne; je dirais que tu as fait une erreur en recopiant (coupure de ligne transformée en retour chariot).

@Chibbata: l'utilisation de Sudo t'oblige à modifier /etc/sudoers (pour éviter la demande de mot de passe); sous Arch on s'en fout: si tu fais une erreur, il te reste un vrai compte root; sous Ubuntu, planter Sudo signifierait "plus de compte root", c'est pourquoi je conseille d'éviter cette solution (bien que Visudo vérifie la syntaxe avant de valider la modif).

pour un bon script-quitter, la solution de Skubu est la bonne, mais vérifie la version de Python installée chez toi ("#!/usr/bin/env python2.5").


Asus X50VL - Ubuntu 12.04 AMD64
HP G62 - Ubuntu 12.10 AMD64
Fujitsu-Siemens Amilo EL - Lubuntu 12.04 i686
Manjaro, une rolling pour débutants

Hors ligne

#12 Le 12/12/2011, à 23:12

Skubu

Re : Quitter Open Box

@VPCL : Tu le mets où tu veux mais je te conseille soit dans /home/"user"/ en répertoire caché soit dans /home/"user"/.config/openbox/

"user" est a remplacé par ton nom d'utilisateur.


Sinon je reviens sur la traduction. Le script ne gère pas les accents (problème de table ASCII)... De plus, les mots français sont généralement plus long que leur voisin anglais, ils apparaîtront mal centrés donc à toi de jouer avec les x+"..." sur les mêmes lignes citées ci-dessus.


Debian / Archlinux | Gnome / KDE

Hors ligne

#13 Le 12/12/2011, à 23:48

chibbata

Re : Quitter Open Box

salut
il ne faut pas oublier de rendre le script executable,click droit sur le fichier,proprietés,onglet permission,cocher rendre le fichier executable

Hors ligne

#14 Le 13/12/2011, à 17:19

VPCL

Re : Quitter Open Box

J'ai déplacé le fichier comme indiqué mais j' ai une erreur dans le chemin  du fond d'écran:

'/home/user/.config/nitrogen/.bg-saved.cfd
j'ai essayé de nombreuses versions possible mais sans succès.

Hors ligne

#15 Le 15/12/2011, à 13:07

Skubu

Re : Quitter Open Box

Vois pas le rapport. hmm ^^


Debian / Archlinux | Gnome / KDE

Hors ligne