Tint2 com menu do Openbox

Publicado por Leandro Nkz em 17/06/2013

[ Hits: 18.604 ]

Blog: http://brweatherproject.blogspot.com/

 


Tint2 com menu do Openbox



Olá a todos!

Nesta dica, apresento uma maneira de adicionar um menu para o levíssimo painel Tint2.

O Tint2 é um painel bem leve e totalmente customizável. Mas, um de seus maiores problemas, é a falta de um menu compatível. Simplesmente ainda não foi implementado um menu próprio para ele. Assim, perde-se boa parte de sua utilidade, uma vez que um menu no painel, é algo essencial para muitos usuários, acostumados com outros DEs com painéis, como o LXDE, GNOME, KDE, etc.

Neste tutorial, iremos adicionar o menu do Openbox (aquele acessível ao clicar com o botão direito do mouse no Desktop), no Tint2, tornando-o um legítimo menu de painel.

Obs.: lembrando que esta é apenas uma solução alternativa (leia-se "gambiarra").

Primeiro, instale o pacote xdotool na sua distribuição. Para quem usa o Debian (e distribuições derivadas), basta executar:

sudo apt-get install xdotool

Já para quem usa o Slackware, instale através do SlackBuilds:
Com este utilitário, podemos disparar ações do mouse/teclado, através de comandos via terminal.

Um exemplo, para ativar o clique com o botão direito do mouse (botão número 3), via comando, digite:

xdotool click 3

O ponto principal da dica é: usar o xdotool para "chamar" o menu do Openbox. Normalmente, a combinação de teclas para exibir o menu do Openbox é Alt+Space, mas você pode checar/modificar isso no arquivo ~/.config/openbox/rc.xml.

Para descobrir qual é a combinação atual, digite:

grep "root-menu" -B 2 ~/.config/openbox/rc.xml

Deve aparecer:
<keybind key="A-space">
  <action name="ShowMenu">
    <menu>root-menu</menu>
--
  <mousebind action="Press" button="Right">
    <action name="ShowMenu">
      <menu>root-menu</menu>
Logo concluímos que, no meu caso, o menu aparece com a combinação Alt+Space ou quando clicamos com o botão direito do mouse na área de trabalho (linha <mousebind action="Press" button="Right">).

Obs.: se aparecer somente a ação do botão do mouse, você pode acrescentar o atalho manualmente. Basta acrescentar no arquivo ~/.config/openbox/rc.xml:

<keybind key="A-space">
  <action name="ShowMenu">
    <menu>root-menu</menu>
  </action>
</keybind>

Na sessão de "keybinds" do arquivo de configuração. Você pode conferir um "rc.xml" completo aqui.

Depois de configurar o atalho, atualize o Openbox:

openbox --reconfigure

Para testar o xdotool com o menu, digite:

xdotool key alt+space

Obs.: altere de acordo com a combinação que você usa.

Criando um lançador

Agora, só nos resta criar um lançador e inserir no Tint2 (desde que este ofereça suporte à lançadores de aplicativos).

Crie um arquivo com um nome qualquer e com a extensão ".desktop" (aqui chamo de "openbox_menu.desktop"), com o seguinte conteúdo:

[Desktop Entry]
Encoding=UTF-8
Name=Openbox Menu
Comment=Openbox Menu
X-GNOME-FullName=Openbox Menu
Exec=xdotool key [comando para chamar o menu]
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=[ícone de menu]
Categories=Menu;
MimeType=
StartupNotify=true
NoDisplay=true

Importante: configure a linha "Exec" com o comando que execute o menu do Openbox, e a linha "Icon" com um ícone de sua preferência.

No meu Slackware, baixei um ícone lá da página "Slackware Banners, Logos, Propaganda", deixei as bordas transparentes com o GIMP e salvei em /usr/share/pixmaps com o nome de "start-here-slackware.png".

Já no Debian, fiz o download do logotipo na página oficial (formato GIMP), alterei o tamanho e salvei com o nome de "start-here-debian.png".

O meu arquivo ".desktop" ficou assim:

[Desktop Entry]
Encoding=UTF-8
Name=Openbox Menu
Comment=Openbox Menu
X-GNOME-FullName=Openbox Menu
Exec=xdotool key alt+space
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=start-here-slackware
Categories=Menu;
MimeType=
StartupNotify=false
NoDisplay=true

Obs.: o ícone chama-se "start-here-slackware.png" pois, caso eu utilize um tema que possua um ícone próprio para esta distribuição (como o Faenza), ele será automaticamente modificado.

Dê permissão de execução ao arquivo:

chmod +x openbox_menu.desktop

E para testar, basta dar dois cliques no arquivo criado. Se tudo der certo, aparecerá o menu do Openbox onde o seu mouse estiver.

Agora, basta mover o arquivo para /usr/share/applications (opcional, apenas para fins de organização):

# mv openbox_menu.desktop /usr/share/applications

Tint2

Esta parte não vou entrar em maiores detalhes, uma vez que há uma dica a respeito no VOL (escrita pelo edps):
Mas, aqui vai uma dica:

Slackware - o pacote tint2-r652 já possui o recursos de lançadores. Baixe-o daqui:
Debian - o pacote do Debian Wheezy (tint2_0.11+svn20121014-1) já possui o recurso de lançadores. Se você ainda usa o Squeeze (como eu), pode adquirir os pacotes Deb aqui:
Para habilitar os lançadores, utilize esta configuração do Tint2 (salve-a em ~/.confi/tint2/tint2rc) como base:

# Tint2 config file
# Autor: Leandro Nkz <http://www.vivaolinux.com.br/~leandro>

##Layouts

# ID 1
##Painel principal

rounded = 0
border_width = 1
background_color = #000000 70
border_color = #FFFFFF 20

# ID 2
##Janela ativa

rounded = 0
border_width = 2
background_color = #FFFFFF 20
border_color = #FFFFFF 48

# ID 3
##Janela inativa

rounded = 0
border_width = 0
background_color = #FFFFFF 10
border_color = #FFFFFF 68

# ID 4
##Tray

rounded = 0
border_width = 0
background_color = #FFFFFF 0
border_color = #FFFFFF 16

##Panel
#Itens:
#L = Launcher - Lançadores
#T = Task bar - Menu de janelas
#S = System tray - Área de notificação
#B = Battery - Bateria
#C = Clock - Relógio

panel_items = LTSBC
panel_monitor = all
panel_position = bottom center horizontal
panel_size = 100% 30
panel_margin = 0 -1
panel_padding = 2 0 2
panel_dock = 0
wm_menu = 0
panel_layer = top
panel_background_id = 1

##Lançador de aplicativos
#Configure de acordo com a sua preferência
#Estou utilizando os ícones fs-icons-ubuntu-sky-mono-light-2

launcher_padding = 0 3 5
launcher_tooltip = 1
launcher_icon_theme = fs-icons-ubuntu-sky-mono-light-2
launcher_icon_size = 21
launcher_item_app = /usr/share/applications/openbox_menu.desktop
launcher_item_app = /usr/share/applications/firefox.desktop
launcher_item_app = /usr/share/applications/thunar.desktop
launcher_item_app = /usr/share/applications/lxterminal.desktop
launcher_item_app = /usr/share/applications/gvim.desktop

##Taskbar
taskbar_mode = single_desktop
taskbar_padding = 2 1 2
taskbar_background_id = 1
taskbar_active_background_id = 0

##Tasks
urgent_nb_of_blink = 8
task_icon = 1
task_text = 1
task_centered = 0
task_maximum_size = 150 35
task_padding = 6 2
task_background_id = 3
task_active_background_id = 2
task_urgent_background_id = 2
task_iconified_background_id = 3
task_tooltip = 0

##Task Icons
task_icon_asb = 70 0 0
task_active_icon_asb = 100 0 0
task_urgent_icon_asb = 100 0 0
task_iconified_icon_asb = 70 0 0

##Task Fonts
task_font = sans 7
task_font_color = #FFFFFF 68
task_active_font_color = #FFFFFF 90
task_urgent_font_color = #FFFFFF 83
task_iconified_font_color = #FFFFFF 68
font_shadow = 0

##System Tray
systray = 1
systray_padding = 4 4 4
systray_sort = ascending
systray_background_id = 4
systray_icon_size = 21
systray_icon_asb = 100 0 0

##Relógio
##Necessário ter o pacote "gsimplecal" instalado

time1_format = %H:%M:%S
time1_font = sans 8
time2_format = %a, %d %B %Y
time2_font = sans 6
clock_font_color = #FFFFFF 74
clock_padding = 1 0
clock_background_id = 0
clock_rclick_command = gsimplecal
clock_lclick_command = gsimplecal

##Tooltips
tooltip_padding = 2 2
tooltip_show_timeout = 0.7
tooltip_hide_timeout = 0.3
tooltip_background_id = 1
tooltip_font = sans 10
tooltip_font_color = #FFFFFF 100

##Ações do mouse na taskbar
mouse_middle = close
mouse_right = none
mouse_scroll_up = toggle
mouse_scroll_down = iconify

##Bateria
battery = 1
battery_low_status = 40
battery_low_cmd = notify-send "battery low"
battery_hide = never
bat1_font = sans 8
bat2_font = sans 6
battery_font_color = #FFFFFF 74
battery_padding = 0 0
battery_background_id = 4

Inicie o seu painel Tint2 e voilá:

tint2 &

Incrementando o menu do Openbox

Por padrão, o Openbox possui um menu um tanto quanto sem sal. Para incrementá-lo, vamos instalar o obmenu-generator:
Mas como o obmenu-generator original apresenta a interface em inglês, e possui alguns programas padrão (editor Geany, terminal xterm e navegador Google Chrome), eu tomei a liberdade de traduzir o menu para o português a acrescentar uma forma mais simples de alterar estes programas padrões.

Instalação:

Instale as dependências do Perl: Data::Dump e Linux::Desktop::Files.

Você pode fazer isso através do utilitário cpan:

# perl -MCPAN -e shell
> install Data::Dump
> install Linux::DesktopFiles


Agora, baixe o obmenu-generator modificado, de:
Agora abra-o com um editor de textos e altere o campo (a partir da linha 58):

##### Configurações personalizadas #####
#Obs.: é recomendável deixar, ao menos 2 temas de ícones ativos
#Assim, se não houver um determinado ícone em uma categoria, ele usará do próximo tema

my $ICONS = "$home_dir/.icons/fs-icons-ubuntu-sky";
my $ICONS2 = "$home_dir/.icons/Faenza";
my $ICONS3 = "";

#Título do menu (deixe vazio para desabilitar)
my $TITLE = "Slackware 14.0";

my $FILEMANAGER = "thunar";
my $TERMINAL = "lxterminal --geometry=100x30";
my $EDITOR = "gvim";
my $NAVEGADOR = "firefox";

##Adicione novas entradas no topo do menu:
# USO: "{item => ['comando',     'Nome',  'ícone']},";
my $CUSTOM_ITEM = <<"CUSTOM_ITEM";
{item => ['thunar',                         'Gerenciador de arquivos',  'file-manager']},
{item => ['lxterminal --geometry=100x30',   'Terminal',                 'terminal']},
{item => ['gvim',                           'Editor de textos',         'text-editor']},
{item => ['firefox',                         'Navegador',                'web-browser']},
{item => ['gmail --gui',                    'Gmail', 'gmail']},

CUSTOM_ITEM

Está bem comentado, de modo que pode ser facilmente compreendido. Nos campos $FILEMANAGER, $TERMINAL, $EDITOR e $NAVEGADOR você configura, respectivamente: o seu gerenciador de arquivos, emulador de terminal, editor de textos e navegador de internet. Já no campo $TITLE, você personaliza o "título" que aparecerá no menu.

Já no campo $CUSTOM_ITEM, você pode acrescentar novas entradas para atalhos rápidos de aplicativos. Neste caso, eu adicionei o Thunar, LXTerminal, Gvim, Firefox, e um script para a checagem de e-mails

Após isso, dê permissão de execução e mova o arquivo "obmenu-generator" para /usr/local/bin:

chmod +x obmenu-generator
# mv obmenu-generator /usr/local/bin


Por fim, configure (se não houver, crie) o arquivo ~/.config/openbox/menu.xml, deixando-o assim:

<?xml version="1.0" encoding="UTF-8"?>

<openbox_menu xmlns="http://openbox.org/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://openbox.org/
                file:///usr/share/openbox/menu.xsd">

<menu id="root-menu" label="Openbox 3" execute="/usr/local/bin/obmenu-generator -i">
</menu>

</openbox_menu>

E atualize o Openbox:

openbox --reconfigure

Adicionando novos menus/itens

Você também pode adicionar novas entradas no menu. É só copiar o conteúdo do menu (no formato XML) e salvá-lo no diretório de configuração (localizada em ~/.config/obmenu-generator), com o nome de "menu1.xml" ou "menu2.xml".

Exemplo:

Esta configuração adiciona um pipe menu com alguns atalhos do Audacious:

<menu id="1" label="Audacious" icon="/home/leandro/.icons/Faenza/apps/16/audacious.png">
    <item label="Play/Pause">
        <action name="Execute">
            <execute>audacious -t</execute>
        </action>
    </item>
    <separator />
    <item label="Stop">
        <action name="Execute">
            <execute>audacious -s</execute>
        </action>
    </item>
    <separator />
   <item label="Previous">
        <action name="Execute">
            <execute>audacious -r</execute>
        </action>
    </item>
    <separator />
    <item label="Next">
        <action name="Execute">
            <execute>audacious -f</execute>
        </action>
    </item>
    <separator />
   <item label="GUI">
        <action name="Execute">
            <execute>audtool mainwin-show on</execute>
        </action>
    </item>
</menu>

Dica: todo pipe menu começa com a tag "<menu id..." e fecha com "</menu>".

Já esta configuração, cria dois itens (atalhos para dois scripts):

<item label="Script de backup" icon="/home/leandro/.icons/Faenza/mimetypes/16/shellscript.png">
    <action name="Execute">
        <execute>lxterminal -e /home/leandro2/.backup.sh</execute>
    </action>
</item>
<item label="Script de atualização" icon="/home/leandro/.icons/Faenza/mimetypes/16/shellscript.png">
    <action name="Execute">
        <execute>lxtermina -e /usr/local/bin/atualiza.sh</execute>
    </action>
</item>
<separator />

A primeira eu salvei em ~/.config/obmenu-generator/menu1.xml, já a segunda eu salvei em ~/.config/obmenu-generator/menu2.xml.

Vejam o resultado:
Linux: Tint2 com menu do Openbox
Menu no Debian Squeeze, com Openbox 3.4 (sem suporte a ícones no menu)
Linux: Tint2 com menu do Openbox
Menu no Slackware 14.0 com Openbox 3.5
Linux: Tint2 com menu do Openbox
Itens extras: menu do Audacious e atalhos para scripts
Linux: Tint2 com menu do Openbox
Menu simples. Sem atalhos e menus extras
Screenshot aqui no VOL:

Referências


Dica também publicada no Mundo GNU:
Outras dicas deste autor

Firefox - Script para empacotamento e instalação ao modo Debian

Habilitando busca incremental de comandos no terminal GNU/Linux

Solução para Kernel panic em Dual-boot com Grub2 para Mandriva-Mageia

Java - Anti-aliasing de fontes em aplicações gráficas

Como editar, renomear entradas e inserir uma imagem de fundo no Grub 2 com o Grub Customizer

Leitura recomendada

Solução para chiado no som do Skype no Debian

Páginas de erros com imagens no Squid

Adicionando rotas persistentes no SuSE

Teclado abnt2 no Slackware 13.0

Como liberar o telnet no CL 8.0

  

Comentários
[1] Comentário enviado por diborsoi em 21/06/2013 - 15:21h

Caro Leandro Nkz,
Como se chama o "gadget" que esta nos screenshots do Slackware?
Grato.

[2] Comentário enviado por leandro em 21/06/2013 - 16:22h

Aquele painel à direita, com informações do sistema?

É um Conky.

Veja um tutorial aqui: http://www.vivaolinux.com.br/artigo/Monitore-o-seu-Linux-com-o-Conky/

A configuração que utilizo é esta: http://pastebin.com/uGFw9wdJ

Abraço e obrigado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts