#!/bin/sh # # generate_menu for Fluxbox # # Copyright (c) 2002 Han Boetes # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. # # $Id: fluxbox-generate_menu,v 1.22 2002/12/29 10:37:47 fluxgen Exp $ WHOAMI=`whoami` [ "$WHOAMI" = "root" ] && PATH=/bin:/usr/bin/:/usr/local/bin:/usr/X11R6/bin # Functions display_usage() { cat < /dev/null` if [ -x "$file" ]; then if [ $# -gt 1 ]; then shift $* fi return 0 else return 1 fi } append() { echo " $*" >> ${FILENAME} } append_menu() { echo "$*" >> ${FILENAME} } append_submenu() { [ "${REMOVE}" ] && echo >> ${FILENAME} # only an empty line in templates append_menu "[submenu] ($1)" } append_menu_end() { append_menu "[end]" [ "${REMOVE}" ] && echo >> ${FILENAME} # only an empty line in templates } menu_entry() { append "[exec] (`grep -v GenericName $* | grep Name= | cut -d = -f 2`) \ {`grep -v TryExec $* | grep Exec= | cut -d = -f 2`}" } menu_entry_dircheck() { if [ -d "$*" ]; then menu_entry_dir "$*" fi } menu_entry_dir() { for b in `ls "$*"/*.desktop 2>/dev/null `; do menu_entry "${b}" done } normal_find() { while [ "$1" ]; do find_it $1 append "[exec] ($1) {$1}" shift done } clean_up() { # -e "/^$/d" -e "/^$/d" cat ${FILENAME} | sed -e "/^\[submenu]/{ N /^\[submenu].*\n\[end]/d }" > ${FILENAME}.tmp mv -f ${FILENAME}.tmp ${FILENAME} } # Set Defaults FILENAME="${HOME}/.fluxbox/menu" MENUTITLE="Fluxbox" HOMEPAGE="fluxbox.org" USERMENU="${HOME}/.fluxbox/usermenu" # Read the menuconfig file if it exists or else create it. if [ -e ${HOME}/.fluxbox/menuconfig ];then . ${HOME}/.fluxbox/menuconfig else if [ ! "$WHOAMI" = root ];then # this is only for users. cat< ${HOME}/.fluxbox/menuconfig # This file is read by fluxbox-generate_menu. If you don't like a # default you can change it here. Don't forget to remove the # in front # of the line. # Your favourite terminal # MY_TERM=aterm # Your favourite browser # MY_BROWSER=mozilla # Name of the outputfile # FILENAME=${HOME}/.fluxbox/menu # Data-dir # PKGDATADIR=/usr/share # Gnome data-dir # in case gnome is installed in another datadir. # GPKGDATADIR=/opt/gnome/share # Kde data-dir # KPKGDATADIR=/opt/kde/share # MENUTITLE=Fluxbox 0.1.14 # standard url for console-browsers # HOMEPAGE=fluxbox.org # location with your own menu-entries # USERMENU=~/.fluxbox/usermenu # Boolean variables. # Setting a variable to no won't help. Comment them out if you don't want them. # Setting are overruled by the command-line options. # Include all backgrounds in your backgrounds-directory # BACKGROUNDMENUITEM=yes # Include kde-menus # KDEMENU=yes # Include gnome-menus # GNOMEMENU=yes # Don't cleanup the menu # REMOVE=no EOF fi fi # Get options. while getopts ":Bkhragb:t:p:w:u:n:q:o:m:" COMMAND_LINE_ARGUMENT ; do case "${COMMAND_LINE_ARGUMENT}" in B) BACKGROUNDMENUITEM=yes ;; k) KDEMENU=yes ;; g) GNOMEMENU=yes ;; t) MY_TERM=${OPTARG} ;; b) MY_BROWSER=${OPTARG} ;; o) FILENAME=${OPTARG} ;; p) PKGDATADIR=${OPTARG} ;; n) GPKGDATADIR=${OPTARG} ;; q) KPKGDATADIR=${OPTARG} ;; m) MENUTITLE=${OPTARG} ;; w) HOMEPAGE=${OPTARG} ;; u) USERMENU=${OPTARG} ;; r) REMOVE=no ;; h) display_help ; exit 0 ;; a) display_authors ; exit 0 ;; *) display_usage ; exit 1 ;; esac done # Check defaults # Can we actually create ${FILENAME} touch ${FILENAME} 2> /dev/null if [ $? -ne 0 ] ; then echo "Fatal error: can't create $FILENAME" >&2 exit 1 fi # backup menu if [ -w "${FILENAME}" ]; then if [ -f ${FILENAME}.firstbak ];then cp ${FILENAME} ${FILENAME}.firstbak fi mv ${FILENAME} ${FILENAME}.bak fi # packagedatadir if [ ! -d "${PKGDATADIR}" -o "${PKGDATADIR}" = "" ]; then if [ "`uname`" = "Linux" ];then PKGDATADIR=/usr/share else PKGDATADIR=/usr/local/share fi fi # gnome packagedatadir if [ ! -d "${GPKGDATADIR}" -o "${GPKGDATADIR}" = "" ]; then GPKGDATADIR=${PKGDATADIR} fi # kde packagedatadir if [ ! -d "${KPKGDATADIR}" -o "${KPKGDATADIR}" = "" ]; then KPKGDATADIR=${PKGDATADIR} fi # find the default terminal find_it $MY_TERM if [ $? -ne 0 ];then [ -n "$MY_TERM" ] && echo "Warning: you choose an invalid term." >&2 #The precise order is up for debate. for term in Eterm aterm rxvt wterm xterm konsole gnome-terminal; do if find_it $term; then DEFAULT_TERM=$term break fi done else DEFAULT_TERM=$MY_TERM fi # find the default browser find_it $MY_BROWSER if [ $? -ne 0 ];then [ -n "$MY_BROWSER" ] && echo "Warning: you choose an invalid browser." >&2 #The precise order is up for debate. for browser in opera skipstone phoenix mozilla galeon konqueror dillo netscape links w3m lynx; do if find_it $browser; then DEFAULT_BROWSER=$browser break fi done else DEFAULT_BROWSER=$MY_BROWSER fi # a unix system without any terms. that's odd if [ -z "$DEFAULT_TERM" ];then cat <&2 Warning: I can't find any terminal-emulators in your PATH. Please fix your PATH or specify your favourite terminal with the -t option EOF fi # menu defaults (if translation forget to set one of them) BACKGROUNDMENU="Backgrounds" BACKGROUNDMENUTITLE="Set the Background" BROWSERMENU="Browsers" CONFIGUREMENU="Configure" EDITORMENU="Editors" EXITITEM="Exit" FBSETTINGSMENU="fluxbox menu" GAMESMENU="Games" GNOMEMENUTEXT="Gnome-menus" GRAPHICMENU="Graphics" KDEMENUTEXT="KDE-menus" MISCMENU="Misc" MULTIMEDIAMENU="Multimedia" MUSICMENU="Music" NETMENU="Net" OFFICEMENU="Office" RELOADITEM="Reload config" RESTARTITEM="Restart" STYLEMENUTITLE="Choose a style..." SYSTEMSTYLES="System Styles" TERMINALMENU="Terminals" USERSTYLES="User Styles" WORKSPACEMENU="Workspace List" XUTILSMENU="X-utils" # Check translation case ${LC_ALL} in ru_RU*) #Russian locales #BACKGROUNDMENU="Backgrounds" #BACKGROUNDMENUTITLE="Set the Background" #OFFICEMENU="Office" #SYSTEMSTYLES="óÔÉÌÉ" #USERSTYLES="óÔÉÌÉ" BROWSERMENU="âÒÁÕÚÅÒÙ" CONFIGUREMENU="îÁÓÔÒÏÊËÁ" EDITORMENU="òÅÄÁËÔÏÒÙ" EXITITEM="÷ÙÊÔÉ" FBSETTINGSMENU="FB-ÎÁÓÔÒÏÊËÉ" GNOMEMENUTEXT="Gnome-ÍÅÎÀ" GRAPHICMENU="çÒÁÆÉËÁ" KDEMENUTEXT="KDE-ÍÅÎÀ" MISCMENU="ðÒÏÞÅÅ" MUSICMENU="ú×ÕË" NETMENU="óÅÔØ" RELOADITEM="ðÅÒÅÎÁÓÔÒÏÉÔØ" RESTARTITEM="ðÅÒÅÚÁÐÕÓÔÉÔØ" STYLEMENUTITLE="÷ÙÂÅÒÉÔÅ ÓÔÉÌØ" TERMINALMENU="ôÅÒÍÉÎÁÌÙ" WORKSPACEMENU="òÁÂÏÞÉÅ ÐÒÏÓÔÒÁÎÓÔ×Á" XUTILSMENU="X-ÕÔÉÌÉÔÙ" ;; de_DE*) # german locales #BACKGROUNDMENU="Backgrounds" #BACKGROUNDMENUTITLE="Set the Background" #OFFICEMENU="Bueroprogramme" #SYSTEMSTYLES="Stile" #USERSTYLES="Stile" BROWSERMENU="Internet-Browser" CONFIGUREMENU="Einstellungen" EDITORMENU="Editoren" EXITITEM="Beenden" FBSETTINGSMENU="Fluxbox-Einstellungen" GNOMEMENUTEXT="Gnome-Menues" GRAPHICMENU="Grafik" KDEMENUTEXT="Kde-Menues" MISCMENU="Sonstiges" MUSICMENU="Musik" NETMENU="Netzwerk" RELOADITEM="Konfiguration neu laden" RESTARTITEM="Neustarten" STYLEMENUTITLE="Einen Stil auswaehlen..." TERMINALMENU="Terminals" WORKSPACEMENU="Arbeitsflaechenliste" XUTILSMENU="X-Anwendungen" ;; sv_SE*) #Swedish locales #BACKGROUNDMENU="Backgrounds" #BACKGROUNDMENUTITLE="Set the Background" #OFFICEMENU="Office" #SYSTEMSTYLES="Stiler" #USERSTYLES="Stiler" BROWSERMENU="Browsers" CONFIGUREMENU="Konfiguration" EDITORMENU="Editorer" EXITITEM="Exit" FBSETTINGSMENU="FB-inställningar" GNOMEMENUTEXT="Gnome-menyer" GRAPHICMENU="Grafik" KDEMENUTEXT="KDE-menyer" MISCMENU="Blandat" MUSICMENU="Musik" NETMENU="Net" RELOADITEM="Ladda om konfig" RESTARTITEM="Starta om" STYLEMENUTITLE="Välj en stil" TERMINALMENU="Terminaler" WORKSPACEMENU="Arbetsytor" XUTILSMENU="X-program" ;; nl_NL*) #Nederlandse locales BACKGROUNDMENU="Achtergrond" BACKGROUNDMENUTITLE="Kies een achtergrond" BROWSERMENU="Browsers" CONFIGUREMENU="Instellingen" EDITORMENU="Editors" EXITITEM="Afsluiten" FBSETTINGSMENU="FB-Instellingen" GNOMEMENUTEXT="Gnome-menu" GRAPHICMENU="Grafisch" KDEMENUTEXT="KDE-menu" MISCMENU="Onregelmatig" MUSICMENU="Muziek" NETMENU="Net" OFFICEMENU="Office" RELOADITEM="Vernieuw instellingen" RESTARTITEM="Restart" STYLEMENUTITLE="Kies een styl" SYSTEMSTYLES="Systeem Stylen" TERMINALMENU="Terminals" USERSTYLES="Gebruikers Stylen" WORKSPACEMENU="Werkveld Lijst" XUTILSMENU="X-utils" ;; fi_FI*) #Finnish locales #BACKGROUNDMENU="Backgrounds" #BACKGROUNDMENUTITLE="Set the Background" #OFFICEMENU="Office" #SYSTEMSTYLES="Tyylit" #USERSTYLES="Tyylit" BROWSERMENU="Selaimet" CONFIGUREMENU="Konfigurointi" EDITORMENU="Editorit" EXITITEM="Lopeta" FBSETTINGSMENU="FB:n Asetukset" GNOMEMENUTEXT="Gnomen valikot" GRAPHICMENU="Grafiikka" KDEMENUTEXT="KDE:n valikot" MISCMENU="Sekalaista" MUSICMENU="Musikki" NETMENU="Verkko" RELOADITEM="Päivitä" RESTARTITEM="Käynnistä uudelleen" STYLEMENUTITLE="Valitse tyyli" TERMINALMENU="Terminaalit" WORKSPACEMENU="Työaluet" XUTILSMENU="X-Ohjelmat" ;; ja_JP*) #Japanese locales #BACKGROUNDMENU="Backgrounds" #BACKGROUNDMENUTITLE="Set the Background" #OFFICEMENU="Office" #SYSTEMSTYLES="¥¹¥¿¥¤¥ë" #USERSTYLES="¥¹¥¿¥¤¥ë" BROWSERMENU="¥Ö¥é¥¦¥¶" CONFIGUREMENU="ÀßÄê" EDITORMENU="¥¨¥Ç¥£¥¿" EXITITEM="½ªÎ»" FBSETTINGSMENU="FluxboxÀßÄê" GNOMEMENUTEXT="Gnome¥á¥Ë¥å¡¼" GRAPHICMENU="²èÁü" KDEMENUTEXT="KDE¥á¥Ë¥å¡¼" MISCMENU="¤¤¤í¤¤¤í" MUSICMENU="²»³Ú" NETMENU="¥Í¥Ã¥È¥ï¡¼¥¯" RELOADITEM="ºÆÆɤ߹þ¤ß" RESTARTITEM="ºÆµ¯Æ°" STYLEMENUTITLE="¥¹¥¿¥¤¥ëÁªÂò..." TERMINALMENU="¥¿¡¼¥ß¥Ê¥ë" WORKSPACEMENU="¥ï¡¼¥¯¥¹¥Ú¡¼¥¹" XUTILSMENU="X¥æ¡¼¥Æ¥£¥ê¥Æ¥£" ;; fr_FR*) # french locales #BACKGROUNDMENU="Backgrounds" #BACKGROUNDMENUTITLE="Set the Background" #OFFICEMENU="Office" #SYSTEMSTYLES="Styles de la Systeme" #USERSTYLES="Styles de la " BROWSERMENU="Navigateurs" CONFIGUREMENU="Configurer" EDITORMENU="Editeurs" EXITITEM="Sortir" FBSETTINGSMENU="FB-Settings" GNOMEMENUTEXT="menus-Gnome" GRAPHICMENU="Graphisme" KDEMENUTEXT="menus-KDE" MISCMENU="Misc" MUSICMENU="Musique" NETMENU="Net" RELOADITEM="Recharger config" RESTARTITEM="Redémarrer" STYLEMENUTITLE="Choisir un style..." TERMINALMENU="Terminaux" WORKSPACEMENU="Liste des bureaux" XUTILSMENU="X-utils" ;; it_IT*) # italian locales #BACKGROUNDMENU="Backgrounds" #BACKGROUNDMENUTITLE="Set the Background" #OFFICEMENU="Office" #SYSTEMSTYLES="Stile" #USERSTYLES="Stile" BROWSERMENU="Browsers" CONFIGUREMENU="Configurazione" EDITORMENU="Editori" EXITITEM="Esci" FBSETTINGSMENU="Preferenze" GAMESMENU="Giochi" GNOMEMENUTEXT="Gnome" GRAPHICMENU="Grafica" KDEMENUTEXT="KDE" MISCMENU="Varie" MUSICMENU="Musica" NETMENU="Internet" RELOADITEM="Rileggi la configurazione" RESTARTITEM="Riavvia" STYLEMENUTITLE="Scegli uno stile" TERMINALMENU="Terminali" WORKSPACEMENU="Aree di lavoro" XUTILSMENU="X-utils" ;; ro_RO*) # Romanian locales #OFFICEMENU="Office" #RESTARTITEM="Restart" BACKGROUNDMENU="Fundaluri" BACKGROUNDMENUTITLE="Alege fundalul" BROWSERMENU="Navigatoare" CONFIGUREMENU="Configurare" EDITORMENU="Editoare" EXITITEM="Iesire" FBSETTINGSMENU="Meniul Fluxbox" GAMESMENU="Jocuri" GNOMEMENUTEXT="Meniu Gnome" GRAPHICMENU="Grafica" KDEMENUTEXT="Meniu KDE" MISCMENU="Diverse" MULTIMEDIAMENU="Multimedia" MUSICMENU="Muzica" NETMENU="Net" RELOADITEM="Reincarca configuratia" STYLEMENUTITLE="Alege un stil..." SYSTEMSTYLES="Stiluri sistem" TERMINALMENU="Terminale" USERSTYLES="Stiluri utilizator" WORKSPACEMENU="Lista workspace-uri" XUTILSMENU="Utilitare X" ;; *) ;; esac # Start of menu cat << EOF > ${FILENAME} # Generated by fluxbox-genereate_menu # # If you read this it means you want to edit this file manualy, so here # are some usefull tips: # # - You can add your own menu-entries to ~/.fluxbox/usermenu and will be # included # # - If you miss apps please let me know and I will add them for the next # release. # # - The -r option prevents removing of empty menu entries and makes # thing much more readable. # # - To prevent any other app from overwriting your menu # you can change the menu name in .fluxbox/init to: # session.menuFile: /home/you/.fluxbox/my-menu EOF echo "[begin] (${MENUTITLE})" >> ${FILENAME} append "[exec] (${DEFAULT_TERM}) {${DEFAULT_TERM}}" case "$DEFAULT_BROWSER" in links|w3m|lynx) append "[exec] (${DEFAULT_BROWSER}) {${DEFAULT_TERM} -e ${DEFAULT_BROWSER} ${HOMEPAGE}}" ;; mozilla|phoenix|galeon|dillo|netscape) append "[exec] (${DEFAULT_BROWSER}) {${DEFAULT_BROWSER}}" ;; konqueror) append "[exec] (konqueror) {kfmclient openProfile webbrowsing}" ;; opera) append "[exec] (opera) {env QT_XFT=true opera}" ;; esac find_it fbrun append "[exec] (Run) {fbrun}" append_submenu "${TERMINALMENU}" normal_find xterm gnome-terminal Eterm konsole aterm rxvt append_menu_end append_submenu "${NETMENU}" append_submenu "${BROWSERMENU}" normal_find netscape galeon mozilla dillo find_it opera append "[exec] (opera) {env QT_XFT=true opera}" find_it konqueror append "[exec] (konqueror) {kfmclient openProfile webbrowsing}" find_it links append "[exec] (links) {${DEFAULT_TERM} -e links ${HOMEPAGE}}" find_it w3m append "[exec] (w3m) {${DEFAULT_TERM} -e w3m ${HOMEPAGE}}" find_it lynx append "[exec] (lynx) {${DEFAULT_TERM} -e lynx ${HOMEPAGE}}" append_menu_end append_submenu IM normal_find gaim kopete gnomemeeting find_it licq append "[exec] (licq) {env QT_XFT=true licq}" append_menu_end append_submenu Mail normal_find sylpheed kmail evolution find_it mutt append "[exec] (mutt) {${DEFAULT_TERM} -e mutt}" append_menu_end append_submenu IRC normal_find xchat find_it irssi append "[exec] (irssi) {${DEFAULT_TERM} -e irssi}" find_it BitchX append "[exec] (BitchX) {${DEFAULT_TERM} -e BitchX -N}" || \ find_it bitchx append "[exec] (BitchX) {${DEFAULT_TERM} -e bitchx -N}" find_it ircii append "[exec] (ircii) {${DEFAULT_TERM} -e ircii -s}" append_menu_end normal_find gftp pan append_menu_end append_submenu "${EDITORMENU}" normal_find nedit gvim xemacs emacs gedit xedit kword kwrite kate append_menu_end append_submenu "${MULTIMEDIAMENU}" append_submenu "${GRAPHICMENU}" normal_find gimp xv gqview xpaint kpaint kiconedit xscreensaver-demo find_it gears append "[exec] (Mesa gears) {gears}" find_it morph3d append "[exec] (Mesa morph) {morph3d}" find_it reflect append "[exec] (Mesa reflect) {reflect}" append_menu_end append_submenu "${MUSICMENU}" normal_find xmms noatun alsaplayer gqmpeg aumix xmixer gmix kmix grecord \ kmidi xplaycd soundtracker grip easytag lopster audacity find_it cdcd append "[exec] (cdcd) {${DEFAULT_TERM} -e cdcd}" find_it cplay append "[exec] (cplay) {${DEFAULT_TERM} -e cplay}" find_it alsamixer append "[exec] (AlsaMixer) {${DEFAULT_TERM} -e alsamixer}" append_menu_end append_submenu "${MISCMENU}" normal_find xine aviplay gtv gmplayer xmovie xcdroast xgdb ddd realplay find_it dvdrip append "[exec] (dvdrip) {nohup dvdrip}" append_menu_end append_submenu "${XUTILSMENU}" normal_find xfontsel xman xload xfigxbiff editres viewres xclock append_menu_end append_menu_end append_submenu "${OFFICEMENU}" normal_find xclock xcalc kcalc find_it gcalc append "[exec] (gcalc) {gcalc}" || \ find_it gnome-calculator append "[exec] (gcalc) {gnome-calculator}" find_it ooffice append "[exec] (Open Office) {ooffice}" find_it soffice append "[exec] (Star Office) {soffice}" normal_find abiword kword wordperfect katoob acroread xpdf append_menu_end append_submenu "${GAMESMENU}" normal_find bzflag gnibbles gnobots2 tuxpuck gataxx glines \ gnect mahjongg gnomine gnome-stones gnometris gnotravex \ gnotski iagno knights same-gnome xboard freecell pysol \ gtali tuxracer xpenguins xsnow xeyes xpenguins \ quake2 quake3 skoosh append_menu_end # gnome menu if [ -d ${GPKGDATADIR}/gnome/apps -a "${GNOMEMENU}" ]; then append_submenu "${GNOMEMENUTEXT}" for a in `ls ${GPKGDATADIR}/gnome/apps/` ; do if [ -d ${GPKGDATADIR}/gnome/apps/"${a}" ] ; then append_submenu "${a}" menu_entry_dir "${GPKGDATADIR}/gnome/apps/${a}" menu_entry_dircheck "/etc/X11/applnk/${a}" append_menu_end fi done append_menu_end fi # kde submenu if [ -d ${KPKGDATADIR}/applnk/ -a "${KDEMENU}" ]; then append_submenu "${KDEMENUTEXT}" for a in `ls ${KPKGDATADIR}/applnk/` ; do if [ -d ${KPKGDATADIR}/applnk/"${a}" ]; then append_submenu "${a}" for x in ${KPKGDATADIR}/applnk/"${a}"/*; do if [ -d ${KPKGDATADIR}/applnk/"${a}"/"${x}" ]; then append_submenu "${x}" menu_entry_dir ${KPKGDATADIR}/applnk/"${a}"/"${x}" append_menu_end fi done menu_entry_dir ${KPKGDATADIR}/applnk/"${a}" append_menu_end fi done menu_entry_dir ${KPKGDATADIR}/applnk/ append_menu_end fi #User menu if [ -r "${USERMENU}" ];then cat ${USERMENU} >> ${FILENAME} fi append_submenu "${FBSETTINGSMENU}" append "[config] (${CONFIGUREMENU})" append_menu "[submenu] (${SYSTEMSTYLES}) {${STYLEMENUTITLE}}" append "[stylesdir] (${PKGDATADIR}/fluxbox/styles)" append_menu_end append_menu "[submenu] (${USERSTYLES}) {${STYLEMENUTITLE}}" append "[stylesdir] (~/.fluxbox/styles)" append_menu_end if [ "$BACKGROUNDMENUITEM" = "yes" ];then append_menu "[submenu] (${BACKGROUNDMENU}) {${BACKGROUNDMENUTITLE}}" for i in ${HOME}/.fluxbox/backgrounds/* ; do append "[exec] (`basename "$i"`) {bsetbg -f "$i" }" done append_menu_end fi append "[workspaces] (${WORKSPACEMENU})" append_submenu Tools find_it fluxconf append "[exec] (FluxConf) {fluxconf}" find_it fluxkeys append "[exec] (FluxKeys) {fluxkeys}" find_it fluxmenu append "[exec] (FluxMenu) {fluxmenu}" # if gxmessage exitst use it; else use xmessage find_it gxmessage append \ "[exec] (Windowname) {xprop|grep WM_CLASS|cut -d \\\" -f 2|gxmessage -file - -center}" || \ find_it xmessage append \ "[exec] (Windowname) {xprop|grep WM_CLASS|cut -d \\\" -f 2|xmessage -file - -center}" find_it import append "[exec] (screenshot) {import screenshot.png && qiv -W 50 screenshot.png}" find_it fbrun append "[exec] (Run) {fbrun}" find_it fluxbox-generate_menu append "[exec] (Regen menu) {fluxbox-generate_menu}" append_menu_end append "[reconfig] (${RELOADITEM})" append "[restart] (${RESTARTITEM})" append "[exit] (${EXITITEM})" append_menu_end append_menu_end # this function removes empty menu items. It can not yet remove nested # empty submenus :\ if [ ! "${REMOVE}" ];then clean_up fi echo "Menu succesfully generated."