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:
Menu no Debian Squeeze, com Openbox 3.4 (sem suporte a ícones no menu)
Menu no Slackware 14.0 com Openbox 3.5
Itens extras: menu do Audacious e atalhos para scripts
Menu simples. Sem atalhos e menus extras
Screenshot aqui no VOL:
Referências
Dica também publicada no Mundo GNU: