Tint2 com menu do Openbox

Publicado por Leandro Nkz em 17/06/2013

[ Hits: 13.198 ]

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

Armazenamento em nuvem redundante com Dropbox e Copy

Openbox encerrando ao executar programas GTK+ 3 [Resolvido]

LibreOffice - Corrigindo aspas duplas/simples

Como adicionar PPA's no Debian

Habilitando busca incremental de comandos no terminal GNU/Linux

Leitura recomendada

O que fazer após instalar Solus 4

Linux Mint em português do Brasil

Configurando o xorg.conf no Ubuntu - II

Desativando placa de vídeo dedicada (GPU) AMD/NVIDIA no Ubuntu/Linux Mint

Funções do mouse no teclado numérico

  

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