E agora veremos como utilizar o painel do XFCE no OpenBox, sem a necessidade de utilizar a sessão XFCE.
E tudo começou com o fato do xfce4-panel ser um pacote recomendado pelo pacote xfce4-screenshooter (que utilizo às vezes para screenshots), tá bem! eu poderia instalá-lo com a opção –no-install-recommends, mas esqueçamos disso, o fato é que para facilitar o uso de meus familiares no OpenBox, utilizo o painel do LXDE (o lxpanel), visto que oferece menus, ícones e todas essas frescuradas e ao chamar o xfce4-panel pelo terminal o mesmo não abria devido a ausência da sessão XFCE, investigando a ajuda do programa descobri que podemos utilizá-lo sem a sessão XFCE fazendo uso da opção -d e resolvi a questão.
Dada a longa estória, se quiserem utilizá-lo no OpenBox, adicione a linha abaixo no arquivo ~/.config/openbox/autostart:
xfce4-panel -d &
Aos interessados, o autostart de meu OpenBox está assim:
## Desktop Wallpaper. nitrogen --restore & ## Compton Composite Manager. compton -cCfF & ## Painel XFCE. xfce4-panel -d & ## Numlockx. numlockx & ## Xbindkeys. xbindkeys & ## Conky. (sleep 3s && conky -q -c ~/.conkyrc-sidebar) & ## Transmission. transmission-gtk -m & ## Gerenciador de Energia. xfce4-power-manager & ## Xscreensaver. xscreensaver -no-splash &
Menu de saída.
É importante dizer, que sem a sessão XFCE, o botão de ação do painel tem função apenas decorativa, ou seja, apenas encerra-se a si próprio, por isso utilizo o script cb-exit modificado por mim:
Menu de saída para o OpenBox em pt_BR
Eis a nova versão:
#!/usr/bin/env python import pygtk pygtk.require('2.0') import gtk import os import getpass class cb_exit: def disable_buttons(self): self.cancel.set_sensitive(False) self.logout.set_sensitive(False) self.suspend.set_sensitive(False) self.reboot.set_sensitive(False) self.shutdown.set_sensitive(False) def cancel_action(self,btn): self.disable_buttons() gtk.main_quit() def logout_action(self,btn): self.disable_buttons() self.status.set_label("Saindo do OpenBox, por favor aguarde...") os.system("openbox --exit") def suspend_action(self,btn): self.disable_buttons() self.status.set_label("Suspendendo..., por favor aguarde...") os.system("cb-lock") os.system("dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend") gtk.main_quit() def reboot_action(self,btn): self.disable_buttons() self.status.set_label("Reiniciando, por favor aguarde...") os.system("dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart") def shutdown_action(self,btn): self.disable_buttons() self.status.set_label("Desligando o Sistema, por favor aguarde...") os.system("dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop") def create_window(self): self.window = gtk.Window() title = "Sair " + getpass.getuser() + "? Escolha uma alternativa:" self.window.set_title(title) self.window.set_border_width(5) self.window.set_size_request(500, 80) self.window.set_resizable(False) self.window.set_keep_above(True) self.window.stick self.window.set_position(1) self.window.connect("delete_event", gtk.main_quit) windowicon = self.window.render_icon(gtk.STOCK_QUIT, gtk.ICON_SIZE_MENU) self.window.set_icon(windowicon) #Create HBox for buttons self.button_box = gtk.HBox() self.button_box.show() #Cancel button self.cancel = gtk.Button(stock = gtk.STOCK_CANCEL) self.cancel.set_border_width(4) self.cancel.connect("clicked", self.cancel_action) self.button_box.pack_start(self.cancel) self.cancel.show() #Logout button self.logout = gtk.Button("_Sair") self.logout.set_border_width(4) self.logout.connect("clicked", self.logout_action) self.button_box.pack_start(self.logout) self.logout.show() #Suspend button self.suspend = gtk.Button("_Suspender") self.suspend.set_border_width(4) self.suspend.connect("clicked", self.suspend_action) self.button_box.pack_start(self.suspend) self.suspend.show() #Reboot button self.reboot = gtk.Button("_Reiniciar") self.reboot.set_border_width(4) self.reboot.connect("clicked", self.reboot_action) self.button_box.pack_start(self.reboot) self.reboot.show() #Shutdown button self.shutdown = gtk.Button("_Desligar") self.shutdown.set_border_width(4) self.shutdown.connect("clicked", self.shutdown_action) self.button_box.pack_start(self.shutdown) self.shutdown.show() #Create HBox for status label self.label_box = gtk.HBox() self.label_box.show() self.status = gtk.Label() self.status.show() self.label_box.pack_start(self.status) #Create VBox and pack the above HBox's self.vbox = gtk.VBox() self.vbox.pack_start(self.button_box) self.vbox.pack_start(self.label_box) self.vbox.show() self.window.add(self.vbox) self.window.show() def __init__(self): self.create_window() def main(): gtk.main() if __name__ == "__main__": go = cb_exit() main()
Menu OpenBox.
Se desejarem, segue também o arquivo ~/.config/openbox/menu.xml:
<?xml version="1.0" encoding="utf-8"?> <openbox_menu xmlns="http://openbox.org/3.5/menu"> <menu execute="obm-xdg /etc/xdg/menus/lxde-applications.menu" id="desktop-app-menu" label="Aplicativos"/> <menu id="root-menu" label="Openbox 3"> <separator label="Menu"/> <menu id="desktop-app-menu"/> <separator/> <item label="Editor de Textos"> <action name="Execute"> <execute>gnome-text-editor</execute> </action> </item> <item label="Gerenciador de Arquivos"> <action name="Execute"> <execute>thunar</execute> </action> </item> <item label="Navegador Web"> <action name="Execute"> <execute>x-www-browser</execute> </action> </item> <item label="Terminal"> <action name="Execute"> <execute>x-terminal-emulator</execute> </action> </item> <separator/> <menu id="settings" label="Configurações"> <item label="Alterar a Aparência"> <action name="Execute"> <execute>lxappearance</execute> </action> </item> <item label="Editar autostart"> <action name="Execute"> <execute>gnome-text-editor ~/.config/openbox/autostart</execute> </action> </item> <item label="Editar menu.xml"> <action name="Execute"> <execute>gnome-text-editor ~/.config/openbox/menu.xml</execute> </action> </item> <item label="Editar rc.xml"> <action name="Execute"> <execute>gnome-text-editor ~/.config/openbox/rc.xml</execute> </action> </item> <item label="Editar xinitrc"> <action name="Execute"> <execute>gnome-text-editor ~/.xinitrc</execute> </action> </item> <item label="Editor do Menu OpenBox"> <action name="Execute"> <execute>obmenu</execute> </action> </item> <item label="OpenBox Config Tool"> <action name="Execute"> <execute>obconf</execute> </action> </item> <item label="Reconfigurar OpenBox"> <action name="Reconfigure"/> </item> <item label="Reiniciar OpenBox"> <action name="Restart"/> </item> <item label="Trocar Wallpaper"> <action name="Execute"> <execute>nitrogen --sort=alpha /home/edps/Imagens/</execute> </action> </item> </menu> <separator/> <item label="Executar"> <action name="Execute"> <execute>gmrun</execute> </action> </item> <separator/> <item label="Sair"> <action name="Execute"> <execute>cb-exit</execute> </action> </item> </menu> </openbox_menu>
Como alternativas ao cb-exit, podemos utilizar 2 scripts para desligar ou reiniciar o sistema (basta definir as funções no menu do OpenBox):
desligar.sh
#!/bin/bash zenity --question --text="Desligar Sistema?" if [ $? == 0 ] then dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop else exit fi
reiniciar.sh
#!/bin/bash zenity --question --text="Reiniciar Sistema?" if [ $? == 0 ] then dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart else exit fi
Desta forma, o arquivo ~/.config/openbox/menu.xml ficaria assim:
<?xml version="1.0" encoding="utf-8"?> <openbox_menu xmlns="http://openbox.org/3.5/menu"> <menu execute="obm-xdg /etc/xdg/menus/lxde-applications.menu" id="desktop-app-menu" label="Aplicativos"/> <menu id="root-menu" label="Openbox 3"> <separator label="Menu"/> <menu id="desktop-app-menu"/> <separator/> <item label="Editor de Textos"> <action name="Execute"> <execute>gnome-text-editor</execute> </action> </item> <item label="Gerenciador de Arquivos"> <action name="Execute"> <execute>thunar</execute> </action> </item> <item label="Navegador Web"> <action name="Execute"> <execute>x-www-browser</execute> </action> </item> <item label="Terminal"> <action name="Execute"> <execute>x-terminal-emulator</execute> </action> </item> <separator/> <menu id="settings" label="Configurações"> <item label="Alterar a Aparência"> <action name="Execute"> <execute>lxappearance</execute> </action> </item> <item label="Editar autostart"> <action name="Execute"> <execute>gnome-text-editor ~/.config/openbox/autostart</execute> </action> </item> <item label="Editar menu.xml"> <action name="Execute"> <execute>gnome-text-editor ~/.config/openbox/menu.xml</execute> </action> </item> <item label="Editar rc.xml"> <action name="Execute"> <execute>gnome-text-editor ~/.config/openbox/rc.xml</execute> </action> </item> <item label="Editar xinitrc"> <action name="Execute"> <execute>gnome-text-editor ~/.xinitrc</execute> </action> </item> <item label="Editor do Menu OpenBox"> <action name="Execute"> <execute>obmenu</execute> </action> </item> <item label="OpenBox Config Tool"> <action name="Execute"> <execute>obconf</execute> </action> </item> <item label="Reconfigurar OpenBox"> <action name="Reconfigure"/> </item> <item label="Reiniciar OpenBox"> <action name="Restart"/> </item> <item label="Trocar Wallpaper"> <action name="Execute"> <execute>nitrogen --sort=alpha /home/edps/Imagens/</execute> </action> </item> </menu> <separator/> <item label="Executar"> <action name="Execute"> <execute>gmrun</execute> </action> </item> <separator/> <item label="Desligar"> <action name="Execute"> <execute>desligar.sh</execute> </action> </item> <separator/> <item label="Reiniciar"> <action name="Execute"> <execute>reiniciar.sh</execute> </action> </item> <separator/> <item label="Sair"> <action name="Execute"> <execute>openbox --exit</execute> </action> </item> </menu> </openbox_menu>
Vejam abaixo como ficou o OṕenBox após as modificações:



até a próxima!
Que dica linda! Vou testá-la no #! Realmente muito obrigado!
CurtirCurtir
Valeu!
CurtirCurtir