fbmenugen - Menus do Fluxbox com ícones

Publicado por edps em 27/06/2012

[ Hits: 7.406 ]

Blog: https://edpsblog.wordpress.com/

 


fbmenugen - Menus do Fluxbox com ícones



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:
Outras dicas deste autor

Firefox sem complicação!

Instalação do driver da nVidia no sidux

Editor de Menus para o LXDE

Fstab - Montando CD de instalação do Debian

Gerando imagem ISO com dd e gravando-a em Pendrive

Leitura recomendada

Touchpad Synaptics - tap-click não funciona (Slackware 13)

Como alterar interpretador de comandos padrão do usuário no Ubuntu 18.04 (do SH para BASH)

Renomeando um usuário no Linux

Pro Savage no Ubuntu 10.10

Problemas na Inicialização do Ubuntu: "Entrada não suportada"

  

Comentários
[1] Comentário enviado por Zirou em 18/06/2015 - 20:51h

Fiz o processo todo, e necessário reiniciar ou e preciso executar algum comando.
Desculpa brother, sou novo em linux

[2] Comentário enviado por edps em 18/06/2015 - 21:22h


... Depende da distro, qual é o seu sistema?

Essa dica é antiga, para realmente funcionar você precisa instalar o módulo Perl: Linux::DesktopFiles

Que para as distros Debian-based (Debian, Ubuntu e toda a turma) pode ser visto em:

http://www.vivaolinux.com.br/artigo/Modulos-CPAN-no-Debian-e-distros-GNULinux-em-geral/?pagina=5


Ou manualmente (para QUALQUER DISTRO):

$ wget https://cpan.metacpan.org/authors/id/T/TR/TRIZEN/Linux-DesktopFiles-0.09.tar.gz
$ tar xf Linux-DesktopFiles-0.09.tar.gz
$ cd Linux-DesktopFiles-0.09
$ perl Build.PL
$ ./Build
$ ./Build test
$ sudo ./Build install


Ou via CPAN:

$ su -l
# perl -MCPAN -e shell
cpan[*]> install Bundle::CPAN
cpan[*]> install Bundle::CPANxxl
cpan[*]> reload cpan
cpan[*]> install Linux::DesktopFiles


Para o Slackware:

# sbopkg -i perl-linux-desktop-files


Abaixo segue o link do esquema do menu devidamente traduzido para o pt_BR:

http://pastebin.com/Px9RwgPL

[3] Comentário enviado por Zirou em 18/06/2015 - 23:11h

Entendi minha distribuição e Debian 8.1 Jessie



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts