Como o
fluxbox-xdg-menu e o
MenuMaker não mais funcionam em meu
Debian, corri atrás de uma solução para incrementar o menu do meu
FluxBox com ícones.
A solução encontrada chama-se
fbmenugen, a qual tive conhecimento no
AUR, pra variar:
Instalação
No
Arch Linux, usem:
wget https://aur.archlinux.org/packages/fb/fbmenugen/fbmenugen.tar.gz
tar -zxf fbmenugen.tar.gz
$ cd fbmenugen
$ makepkg -si
Ou:
packer | yaourt -S fbmenugen
E nas demais distros:
wget -nv http://trizen.googlecode.com/files/fbmenugen-0.7.2.tar.gz
tar -zxf fbmenugen-0.7.2.tar.gz
$ chmod +x fbmenugen
$ sudo mv fbmenugen /usr/local/bin/
$ fbmenugen --help
$ fbmenugen -i
Abaixo, vejam o ".conf" modificado por mim, alterando terminal, editor de textos, navegador e desabilitando o
Pidgin:
nano ~/.config/fbmenugen/configuration.pl
Mais abaixo, vemos a linha referente ao "kill -9", no Pidgin! (rsrsrs). Desabilite a linha:
{item => [$items{instant_messaging}, 'Instant messaging', 'system-users']},
Caso queiram opções extras no menu, digo, como sub-menus para as aplicações GTK, do
Xfce, do
Gnome etc, modifiquem (descomentem) uma das linhas abaixo:
#{cat => ['qt', 'QT Applications', 'qtlogo']},
#cat => ['gtk', 'GTK Applications', 'gnome-applications']},
#{cat => ['x_xfce', 'XFCE Applications', 'applications-other']},
#{cat => ['gnome', 'GNOME Applications', 'gnome-applications']},
#{cat => ['consoleonly', 'CLI Applications', 'applications-utilities']},
Eu preferi deixá-los desabilitados!
E se desejarem incluir alguma
app ao menu, usem o seguinte modelo:
{raw => ' [exec] (TÍTULO_NO_MENU) {COMANDO A SER EXECUTADO} <CAMINHO_DO_ÍCONE>'},
Sobre os ícones, usem o locate para encontrá-los, exemplo:
locate nitrogen
/home/h4rd3r/.config/nitrogen
.
..
...
/usr/share/icons/AwOken/clear/128x128/apps/nitrogen.png
/usr/share/icons/AwOken/clear/24x24/apps/nitrogen.png
/usr/share/icons/AwOkenDark/clear/128x128/apps/nitrogen.png
/usr/share/icons/AwOkenDark/clear/24x24/apps/nitrogen.png
/usr/share/icons/AwOkenWhite/clear/128x128/apps/nitrogen.png
/usr/share/icons/AwOkenWhite/clear/24x24/apps/nitrogen.png
/usr/share/icons/hicolor/128x128/apps/nitrogen.png
/usr/share/icons/hicolor/16x16/apps/nitrogen.png
/usr/share/icons/hicolor/22x22/apps/nitrogen.png
/usr/share/icons/hicolor/32x32/apps/nitrogen.png
/usr/share/icons/hicolor/48x48/apps/nitrogen.png
...
..
.
Para o caso do Nitrogen, usei: /usr/share/icons/hicolor/32x32/apps/nitrogen.png
Abaixo, vejam meu arquivo
~/.config/fbmenugen/configuration.pl, já devidamente traduzido para pt_BR, com funções extras (wallpaper, executar etc), ordenação das seções do menu e substituição das apps, inicialmente incluídas como favoritas etc.
#!/usr/bin/perl
# fbmenugen config file
#
# SCHEMA supports the following keys: item, cat, config, exit, fluxbox, regenerate, raw, sep
#
# Posible values for each of this types are:
# For 'item': [COMMAND, NAME, ICON]
# For 'sep': undef - horizontal separator
# For 'cat': Any of the posible categories. 'cat => [CATEGORY, NAME, IMAGE]' - image is optional
# For 'raw': [COMMAND, NAME, ICON]
# Example: {raw => ' [exec] (Geeqie) {geeqie -r } </usr/share/pixmaps/geeqie.png>'},
# NOTE:
# * Keys and values are case sensitive. Keep all keys lowercase.
# * ICON can be a either a direct path to a icon or a valid icon name
# * Category names are case insensitive. (ex: X-XFCE and x_xfce are equivalent)
# For regular expressions
# * is better to use qr/REGEX/ instead of 'REGEX'
my %items = (
terminal => 'terminator',
editor => "leafpad",
file_manager => 'thunar',
web_browser => 'opera',
run_command => 'gmrun',
lock_command => 'xscreensaver-command -lock',
);
our $CONFIG = {
# Menu title
title => 'Debian Squeeze @ Fluxbox',
# Example: [ "$ENV{'HOME'}/.local/share/applications", '/my/path' ]
desktop_files_paths => ['/usr/share/applications'],
# File where to look for icon theme (default: ~/.gtkrc-2.0)
gtk_rc_file => undef,
# When 'Terminal=true'
open_in_terminal => "$items{terminal} -e %s",
# Editor command
open_in_editor => "$items{editor}",
# Ignore desktop files if their filenames match a regex
ignore_file_name_re => undef,
# Ignore applications if their names match a regex
ignore_app_name_re => undef,
# Ignore applications if their commands match a regex
ignore_app_command_re => undef,
# Ignore desktop files if their content match a regex
ignore_file_content_re => undef,
# Remove from every command something matched by a regex (/g)
command_rem_re => undef,
# Look in this directories first (when generating icons.db)
dirs_first_to_look => [],
# Look in this directories as a second icon theme (when generating icons.db)
dirs_middle_to_look => [],
# Look in this directories, as a backup plan (when generating icons.db)
dirs_last_to_look => [],
};
our $SCHEMA = [
# COMMAND LABEL ICON
{item => [$items{editor}, 'Editor de Textos', 'text-editor']},
{item => [$items{file_manager}, 'Gerenciador de Arquivos', 'file-manager']},
{item => [$items{web_browser}, 'Navegador Web', 'web-browser']},
{item => [$items{terminal}, 'Terminal', 'terminal']},
#{item => [$items{instant_messaging}, 'Mensageiro Instantâneo', 'system-users']},
{raw => ' [exec] (Trocar Wallpaper) {nitrogen /home/h4rd3r/Imagens}
</usr/share/icons/hicolor/32x32/apps/nitrogen.png>'},
{sep => undef},
# NAME LABEL ICON
{cat => ['utility', 'Acessórios', 'applications-utilities']},
{cat => ['settings', 'Configurações', 'applications-accessories']},
{cat => ['development', 'Desenvolvimento', 'applications-development']},
{cat => ['education', 'Educativos', 'applications-science']},
{cat => ['office', 'Escritório', 'applications-office']},
{cat => ['graphics', 'Gráficos', 'applications-graphics']},
{cat => ['game', 'Jogos', 'applications-games']},
{cat => ['audiovideo', 'Multimídia', 'applications-multimedia']},
{cat => ['network', 'Rede', 'applications-internet']},
{cat => ['system', 'Sistema', 'applications-system']},
#{cat => ['qt', 'QT Applications', 'qtlogo']},
#{cat => ['gtk', 'GTK Applications', 'gnome-applications']},
#{cat => ['x_xfce', 'XFCE Applications', 'applications-other']},
#{cat => ['gnome', 'GNOME Applications', 'gnome-applications']},
#{cat => ['consoleonly', 'CLI Applications', 'applications-utilities']},
# LABEL ICON
{config => ['Configurar Menu', 'preferences-desktop']},
{fluxbox => ['Fluxbox Menu', 'package_settings']},
{sep => undef},
{item => [$items{run_command}, 'Executar', 'system-run']},
{regenerate => ['Recriar Menu', 'gtk-refresh']},
{item => [$items{lock_command}, 'Travar a tela', 'lock']},
{sep => undef},
{exit => ['Sair', 'exit']},
];
Sempre que fizerem modificações no arquivo ~/.config/fbmenugen/configuration.pl, não se esqueçam de executar:
fbmenugen -i
Ou, no menu FluxBox clicar na opção: Regenerate (Recriar Menu)
Ficou tão bom, que até penso em voltar ao FluxBox como WM padrão, já que todos vocês sabem que meu xodó é o
OpenBox.
No link abaixo, vejam uma screenshot do meu FluxBox já devidamente configurado:
Referências
Imagens extras podem ser vistas nas duas dicas que postei em meu blog: