Utilizando o painel do XFCE no OpenBox


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:

após substituir o LxPanel...
após substituir o LxPanel…
Gerenciamento da sessão via cb-exit...
Gerenciamento da sessão via cb-exit…
Após o reinício.
Após o reinício.

até a próxima!

Anúncios
Utilizando o painel do XFCE no OpenBox

2 comentários sobre “Utilizando o painel do XFCE no OpenBox

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s