summaryrefslogtreecommitdiff
path: root/util/fluxbox-generate_menu
diff options
context:
space:
mode:
Diffstat (limited to 'util/fluxbox-generate_menu')
-rwxr-xr-xutil/fluxbox-generate_menu76
1 files changed, 32 insertions, 44 deletions
diff --git a/util/fluxbox-generate_menu b/util/fluxbox-generate_menu
index 3a33157..b7215f1 100755
--- a/util/fluxbox-generate_menu
+++ b/util/fluxbox-generate_menu
@@ -22,13 +22,14 @@
22# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23# DEALINGS IN THE SOFTWARE. 23# DEALINGS IN THE SOFTWARE.
24# 24#
25# $Id: fluxbox-generate_menu,v 1.46 2003/08/03 04:12:03 rathnor Exp $ 25# $Id: fluxbox-generate_menu,v 1.47 2003/08/04 14:13:33 rathnor Exp $
26 26
27# 27#
28# Portability notes: 28# Portability notes:
29# To guarantee this script works on all platforms that support fluxbox 29# To guarantee this script works on all platforms that support fluxbox
30# please keep the following restrictions in mind: 30# please keep the following restrictions in mind:
31# 31#
32# don't use if ! command;, use command; if [ $? -ne 0 ];
32# don't use [ -e file ] use [ -r file ] 33# don't use [ -e file ] use [ -r file ]
33# don't use $(), use `` 34# don't use $(), use ``
34# don't use ~, use ${HOME} 35# don't use ~, use ${HOME}
@@ -123,21 +124,21 @@ case `uname` in
123esac 124esac
124 125
125append() { 126append() {
126 echo " $*" >> ${FILENAME} 127 echo " $*" >> ${MENUFILENAME}
127} 128}
128 129
129append_menu() { 130append_menu() {
130 echo "$*" >> ${FILENAME} 131 echo "$*" >> ${MENUFILENAME}
131} 132}
132 133
133append_submenu() { 134append_submenu() {
134 [ "${REMOVE}" ] && echo >> ${FILENAME} # only an empty line in templates 135 [ "${REMOVE}" ] && echo >> ${MENUFILENAME} # only an empty line in templates
135 append_menu "[submenu] ($1)" 136 append_menu "[submenu] ($1)"
136} 137}
137 138
138append_menu_end() { 139append_menu_end() {
139 append_menu "[end]" 140 append_menu "[end]"
140 [ "${REMOVE}" ] && echo >> ${FILENAME} # only an empty line in templates 141 [ "${REMOVE}" ] && echo >> ${MENUFILENAME} # only an empty line in templates
141} 142}
142 143
143menu_entry() { 144menu_entry() {
@@ -194,11 +195,11 @@ normal_find() {
194 195
195clean_up() { 196clean_up() {
196# -e "/^$/d" -e "/^$/d" 197# -e "/^$/d" -e "/^$/d"
197cat ${FILENAME} | sed -e "/^\[submenu]/{ 198cat ${MENUFILENAME} | sed -e "/^\[submenu]/{
198N 199N
199/^\[submenu].*\n\[end]/d 200/^\[submenu].*\n\[end]/d
200}" > ${FILENAME}.tmp 201}" > ${MENUFILENAME}.tmp
201mv -f ${FILENAME}.tmp ${FILENAME} 202mv -f ${MENUFILENAME}.tmp ${MENUFILENAME}
202} 203}
203 204
204# menu defaults (if translation forget to set one of them) 205# menu defaults (if translation forget to set one of them)
@@ -530,7 +531,7 @@ case ${LC_ALL} in
530esac 531esac
531 532
532# Set Defaults 533# Set Defaults
533FILENAME="${FILENAME:=${HOME}/.fluxbox/menu}" 534MENUFILENAME="${MENUFILENAME:=${HOME}/.fluxbox/menu}"
534MENUTITLE="${MENUTITLE:=Fluxbox}" 535MENUTITLE="${MENUTITLE:=Fluxbox}"
535HOMEPAGE="${HOMEPAGE:=fluxbox.org}" 536HOMEPAGE="${HOMEPAGE:=fluxbox.org}"
536USERMENU="${USERMENU:=${HOME}/.fluxbox/usermenu}" 537USERMENU="${USERMENU:=${HOME}/.fluxbox/usermenu}"
@@ -555,7 +556,7 @@ if [ ! "${INSTALL}" = "Yes" ];then
555# MY_BROWSER=mozilla 556# MY_BROWSER=mozilla
556 557
557# Name of the outputfile 558# Name of the outputfile
558# FILENAME=${HOME}/.fluxbox/menu 559# MENUFILENAME=${HOME}/.fluxbox/menu
559 560
560# MENUTITLE=\`fluxbox -version|cut -d " " -f-2\` 561# MENUTITLE=\`fluxbox -version|cut -d " " -f-2\`
561 562
@@ -612,7 +613,7 @@ while getopts ":Bkhragb:t:p:w:u:n:q:o:m:-:" COMMAND_LINE_ARGUMENT ; do
612 g) GNOMEMENU=yes ;; 613 g) GNOMEMENU=yes ;;
613 t) MY_TERM=${OPTARG} ;; 614 t) MY_TERM=${OPTARG} ;;
614 b) MY_BROWSER=${OPTARG} ;; 615 b) MY_BROWSER=${OPTARG} ;;
615 o) FILENAME=${OPTARG} ;; 616 o) MENUFILENAME=${OPTARG} ;;
616 p) PREFIX=${OPTARG} ;; 617 p) PREFIX=${OPTARG} ;;
617 n) GNOME_PREFIX=${OPTARG} ;; 618 n) GNOME_PREFIX=${OPTARG} ;;
618 q) KDE_PREFIX=${OPTARG} ;; 619 q) KDE_PREFIX=${OPTARG} ;;
@@ -633,19 +634,19 @@ while getopts ":Bkhragb:t:p:w:u:n:q:o:m:-:" COMMAND_LINE_ARGUMENT ; do
633done 634done
634# Check defaults 635# Check defaults
635 636
636# Can we actually create ${FILENAME} 637# Can we actually create ${MENUFILENAME}
637touch ${FILENAME} 2> /dev/null 638touch ${MENUFILENAME} 2>/dev/null
638if [ $? -ne 0 ]; then 639if [ $? -ne 0 ]; then
639 echo "Fatal error: can't create $FILENAME" >&2 640 echo "Fatal error: can't create or write to $MENUFILENAME" >&2
640 exit 1 641 exit 1
641fi 642fi
642 643
643# backup menu 644# backup menu
644if [ -w "${FILENAME}" ]; then 645if [ -w "${MENUFILENAME}" ]; then
645 if [ -f ${FILENAME}.firstbak ]; then 646 if [ -f ${MENUFILENAME}.firstbak ]; then
646 cp ${FILENAME} ${FILENAME}.firstbak 647 cp ${MENUFILENAME} ${MENUFILENAME}.firstbak
647 fi 648 fi
648 mv ${FILENAME} ${FILENAME}.bak 649 mv ${MENUFILENAME} ${MENUFILENAME}.bak
649fi 650fi
650 651
651# prefix 652# prefix
@@ -677,7 +678,7 @@ fi
677# find the default terminal 678# find the default terminal
678find_it $MY_TERM 679find_it $MY_TERM
679if [ $? -ne 0 ]; then 680if [ $? -ne 0 ]; then
680 [ -n "$MY_TERM" ] && echo "Warning: you chose an invalid term." >&2 681 echo "Warning: you chose an invalid term." >&2
681 #The precise order is up for debate. 682 #The precise order is up for debate.
682 for term in Eterm aterm rxvt wterm xterm konsole gnome-terminal; do 683 for term in Eterm aterm rxvt wterm xterm konsole gnome-terminal; do
683 if find_it $term; then 684 if find_it $term; then
@@ -692,8 +693,8 @@ fi
692 693
693# find the default browser 694# find the default browser
694find_it $MY_BROWSER 695find_it $MY_BROWSER
695if [ $? -ne 0 ]; then 696if [ $? -ne 0]; then
696 [ -n "$MY_BROWSER" ] && echo "Warning: you chose an invalid browser." >&2 697 echo "Warning: you chose an invalid browser." >&2
697 #The precise order is up for debate. 698 #The precise order is up for debate.
698 for browser in MozillaFirebird firebird opera skipstone phoenix mozilla galeon konqueror dillo netscape links w3m lynx; do 699 for browser in MozillaFirebird firebird opera skipstone phoenix mozilla galeon konqueror dillo netscape links w3m lynx; do
699 if find_it $browser; then 700 if find_it $browser; then
@@ -716,7 +717,7 @@ fi
716 717
717 718
718# Start of menu 719# Start of menu
719cat << EOF > ${FILENAME} 720cat << EOF > ${MENUFILENAME}
720# Generated by fluxbox-generate_menu 721# Generated by fluxbox-generate_menu
721# 722#
722# If you read this it means you want to edit this file manually, so here 723# If you read this it means you want to edit this file manually, so here
@@ -736,7 +737,7 @@ cat << EOF > ${FILENAME}
736 737
737EOF 738EOF
738 739
739echo "[begin] (${MENUTITLE})" >> ${FILENAME} 740echo "[begin] (${MENUTITLE})" >> ${MENUFILENAME}
740 741
741 742
742append "[exec] (${DEFAULT_TERM}) {${DEFAULT_TERM}}" 743append "[exec] (${DEFAULT_TERM}) {${DEFAULT_TERM}}"
@@ -856,7 +857,7 @@ append_submenu "${GAMESMENU}"
856 gnect mahjongg gnomine gnome-stones gnometris gnotravex \ 857 gnect mahjongg gnomine gnome-stones gnometris gnotravex \
857 gnotski iagno knights eboard xboard freecell pysol \ 858 gnotski iagno knights eboard xboard freecell pysol \
858 gtali tuxracer xpenguins xsnow xeyes xpenguins \ 859 gtali tuxracer xpenguins xsnow xeyes xpenguins \
859 quake2 quake3 skoosh same-gnome enigma xbill 860 quake2 quake3 skoosh same-gnome enigma xbill icebreaker
860 find_it et append "[exec] (Enemy Territory) {et}" 861 find_it et append "[exec] (Enemy Territory) {et}"
861append_menu_end 862append_menu_end
862 863
@@ -880,7 +881,7 @@ fi
880 881
881#User menu 882#User menu
882if [ -r "${USERMENU}" ]; then 883if [ -r "${USERMENU}" ]; then
883 cat ${USERMENU} >> ${FILENAME} 884 cat ${USERMENU} >> ${MENUFILENAME}
884fi 885fi
885 886
886append_submenu "${FBSETTINGSMENU}" 887append_submenu "${FBSETTINGSMENU}"
@@ -948,29 +949,16 @@ append_submenu "${FBSETTINGSMENU}"
948 append_menu_end 949 append_menu_end
949 950
950 append_submenu ${WINDOWMANAGERS} 951 append_submenu ${WINDOWMANAGERS}
951 find_it starticewm append "[restart] (icewm) {starticewm}" ||\ 952 #hard to properly maintain since there are so many exceptions to the rule.
952 find_it icewm append "[restart] (icewm) {icewm}" 953 for wm in icewm ion kde sawfish enlightenment openbox evilwm waimea xfce pekwm;do
953 find_it ion append "[restart] (ion) {ion}" 954 find_it start${wm} append "[restart] (${wm}) {start${wm}}" ||\
954 find_it startkde append "[restart] (kde) {startkde}" 955 find_it ${wm} append "[restart] (${wm}) {${wm}}"
955 find_it startsawfish append "[restart] (sawfish) {startsawfish}" ||\ 956 done
956 find_it sawfish append "[restart] (sawfish) {sawfish}"
957 find_it startgnome append "[restart] (gnome) {startgnome}" ||\ 957 find_it startgnome append "[restart] (gnome) {startgnome}" ||\
958 find_it gnome-session append "[restart] (gnome) {gnome-session}" 958 find_it gnome-session append "[restart] (gnome) {gnome-session}"
959
959 find_it startwindowmaker append "[restart] (windowmaker) {startwindowmaker}" ||\ 960 find_it startwindowmaker append "[restart] (windowmaker) {startwindowmaker}" ||\
960 find_it wmaker append "[restart] (windowmaker) {wmaker}" 961 find_it wmaker append "[restart] (windowmaker) {wmaker}"
961 find_it startenlightenment append "[restart] (enlightenment) {startenlightenment}" ||\
962 find_it enlightenment append "[restart] (enlightenment) {enlightenment}"
963 find_it startafterstep append "[restart] (afterstep) {startafterstep}" ||\
964 find_it afterstep append "[restart] (afterstep) {afterstep}"
965 find_it startopenbox append "[restart] (openbox) {startopenbox}" ||\
966 find_it openbox append "[restart] (openbox) {openbox}"
967 find_it startevilwm append "[restart] (evilwm) {startevilwm}" ||\
968 find_it evilwm append "[restart] (evilwm) {evilwm}"
969 find_it startwaimea append "[restart] (waimea) {startwaimea}" ||\
970 find_it waimea append "[restart] (waimea) {waimea}"
971 find_it startxfce append "[restart] (xfce) {startxfce}"
972 find_it startpekwm append "[restart] (pekwm) {startpekwm}" ||\
973 find_it pekwm append "[restart] (pekwm) {pekwm}"
974 append_menu_end 962 append_menu_end
975 963
976 append "[reconfig] (${RELOADITEM})" 964 append "[reconfig] (${RELOADITEM})"