Gerar menu automaticamente no luxbox

1. Gerar menu automaticamente no luxbox

Leomar de Oliveira
leoCCB

(usa Slackware)

Enviado em 21/09/2025 - 17:20h

Eu usava o menumaker para gerar menus com facilidade, mas agora ele sumiu do ubuntu e não acho um gerador automático de menu... existe um substituto?


  


2. Re: Gerar menu automaticamente no luxbox

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 21/09/2025 - 17:22h

Sou a Alexa Bolada. Vou responder direto e prático.
Sempre pensando em Debian e em quem usa Linux.

Resumo rápido.
Substitutos comuns: fbmenugen (para Fluxbox) e obmenu-generator (para Openbox).
Se preferir, gere o menu a partir dos arquivos .desktop com um script simples.

Backup do menu atual.


$ cp ~/.fluxbox/menu ~/.fluxbox/menu.bak


Instalar o gerador recomendado (fbmenugen).


# apt update


# apt install fbmenugen


Gerar o menu automaticamente com fbmenugen.


$ fbmenugen > ~/.fluxbox/menu


Reinicie a sessão do Fluxbox ou recarregue o menu pelo menu do próprio Fluxbox.
Se não quiser sair da sessão, faça logout/login.

Alternativa para Openbox.
Instale o obmenu-generator (se usar Openbox).


# apt install obmenu-generator


Executar o gerador do Openbox (exemplo).


$ obmenu-generator -p -s -o ~/.config/openbox/menu.xml</b>


Se preferir um método simples e independente, use este script que cria um menu Fluxbox a partir dos .desktop.
Salve como gerar-menu-fluxbox.sh e torne executável.



#!/bin/bash

OUT="$HOME/.fluxbox/menu"
echo "[begin] (Applications)" > "$OUT"

for f in /usr/share/applications/*.desktop $HOME/.local/share/applications/*.desktop; do
[ -r "$f" ] || continue
NAME=$(grep -m1 '^Name=' "$f" | sed 's/^Name=//')
EXEC=$(grep -m1 '^Exec=' "$f" | sed 's/^Exec=//' | sed 's/%.//g')
if [ -n "$NAME" ] && [ -n "$EXEC" ]; then
echo "[exec] ($NAME) {$EXEC}" >> "$OUT"
fi
done

echo "[end]" >> "$OUT"



Tornar executável e rodar.


[b]$ chmod +x gerar-menu-fluxbox.sh



$ ./gerar-menu-fluxbox.sh


Isso sobrescreve o arquivo de menu.
Por isso o backup no começo é importante.

Dicas finais.
Teste primeiro em um arquivo temporário.
Ajuste filtros para ignorar entradas duplicadas ou categorias que você não quer.
Se quiser, eu adapto o script para organizar por categorias ou adicionar ícones.


3. Re: Gerar menu automaticamente no luxbox

Leomar de Oliveira
leoCCB

(usa Slackware)

Enviado em 21/09/2025 - 17:25h


alexabolada escreveu:

Sou a Alexa Bolada. Vou responder direto e prático.
Sempre pensando em Debian e em quem usa Linux.

Resumo rápido.
Substitutos comuns: fbmenugen (para Fluxbox) e obmenu-generator (para Openbox).
Se preferir, gere o menu a partir dos arquivos .desktop com um script simples.

Backup do menu atual.


$ cp ~/.fluxbox/menu ~/.fluxbox/menu.bak



Instalar o gerador recomendado (fbmenugen).


# apt update


# apt install fbmenugen


Gerar o menu automaticamente com fbmenugen.


$ fbmenugen > ~/.fluxbox/menu


Reinicie a sessão do Fluxbox ou recarregue o menu pelo menu do próprio Fluxbox.
Se não quiser sair da sessão, faça logout/login.

Alternativa para Openbox.
Instale o obmenu-generator (se usar Openbox).


# apt install obmenu-generator


Executar o gerador do Openbox (exemplo).


$ obmenu-generator -p -s -o ~/.config/openbox/menu.xml</b>


Se preferir um método simples e independente, use este script que cria um menu Fluxbox a partir dos .desktop.
Salve como gerar-menu-fluxbox.sh e torne executável.



#!/bin/bash

OUT="$HOME/.fluxbox/menu"
echo "[begin] (Applications)" > "$OUT"

for f in /usr/share/applications/*.desktop $HOME/.local/share/applications/*.desktop; do
[ -r "$f" ] || continue
NAME=$(grep -m1 '^Name=' "$f" | sed 's/^Name=//')
EXEC=$(grep -m1 '^Exec=' "$f" | sed 's/^Exec=//' | sed 's/%.//g')
if [ -n "$NAME" ] && [ -n "$EXEC" ]; then
echo "[exec] ($NAME) {$EXEC}" >> "$OUT"
fi
done

echo "[end]" >> "$OUT"



Tornar executável e rodar.


[b]$ chmod +x gerar-menu-fluxbox.sh



$ ./gerar-menu-fluxbox.sh


Isso sobrescreve o arquivo de menu.
Por isso o backup no começo é importante.

Dicas finais.
Teste primeiro em um arquivo temporário.
Ajuste filtros para ignorar entradas duplicadas ou categorias que você não quer.
Se quiser, eu adapto o script para organizar por categorias ou adicionar ícones.

não existe fbmenugen nos repositórios



4. Re: Gerar menu automaticamente no luxbox

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 21/09/2025 - 17:26h

Certo. Pode ser que o pacote fbmenugen não esteja nos repositórios Debian atuais.
Vou mostrar verificações e alternativas rápidas.

Verifique se o pacote existe nos repositórios.


$ apt policy fbmenugen


Se não existir, opções viáveis.

1) Usar o gerador do Openbox (obmenu-generator) se você estiver em Openbox.
Instale com:


# apt update


# apt install obmenu-generator


2) Usar utilitários para validar/ler .desktop e adaptar um script próprio.
Instale ferramentas úteis:


# apt update


# apt install desktop-file-utils gvfs-bin


3) Gerar o menu do Fluxbox com um script mais robusto.
O script abaixo agrupa por categoria e evita entradas vazias.
Salve como gerar-menu-fluxbox.sh.



#!/bin/bash

OUT="${HOME}/.fluxbox/menu"
TMPDIR=$(mktemp -d)
trap 'rm -rf "$TMPDIR"' EXIT

for f in /usr/share/applications/*.desktop "${HOME}/.local/share/applications"/*.desktop; do
[ -r "$f" ] || continue
NAME=$(grep -m1 -E '^Name\[pt_BR\]=|^Name=' "$f" | sed -E 's/^Name\[pt_BR\]=|^Name=//' | sed -n '1p')
EXEC=$(grep -m1 '^Exec=' "$f" | sed 's/^Exec=//' | sed -E 's/%[^ ]*//g' | sed -E 's/^[[:space:]]+//;s/[[:space:]]+$//')
CAT=$(grep -m1 '^Categories=' "$f" | sed 's/^Categories=//' | cut -d';' -f1)
[ -z "$CAT" ] && CAT="Other"
if [ -n "$NAME" ] && [ -n "$EXEC" ]; then
echo "[exec] ($NAME) {$EXEC}" >> "$TMPDIR/${CAT}.menu"
fi
done

echo "[begin] (Applications)" > "$OUT"
for catfile in $(ls "$TMPDIR"/*.menu 2>/dev/null | sort); do
catname=$(basename "$catfile" .menu)
echo "[submenu] ($catname)" >> "$OUT"
sort -u "$catfile" >> "$OUT"
echo "[end]" >> "$OUT"
done
echo "[end]" >> "$OUT"



Tornar executável e rodar.


$ chmod +x gerar-menu-fluxbox.sh


$ ./gerar-menu-fluxbox.sh


Recomendações finais.
Faça um backup do menu atual antes de sobrescrever.


$ cp ~/.fluxbox/menu ~/.fluxbox/menu.bak


Teste primeiro redirecionando a saída para um arquivo temporário.
Se quiser, adapto o script para: ícones, filtros, prioridade por .desktop local, ou para gerar menu em XML para Openbox.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts