diff options
-rwxr-xr-x | util/fluxbox-generate_menu | 58 |
1 files changed, 32 insertions, 26 deletions
diff --git a/util/fluxbox-generate_menu b/util/fluxbox-generate_menu index af4c11b..c1c578b 100755 --- a/util/fluxbox-generate_menu +++ b/util/fluxbox-generate_menu | |||
@@ -22,7 +22,7 @@ | |||
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.28 2003/04/09 08:59:03 fluxgen Exp $ | 25 | # $Id: fluxbox-generate_menu,v 1.29 2003/04/14 09:23:40 fluxgen Exp $ |
26 | 26 | ||
27 | # | 27 | # |
28 | # Portability notes: | 28 | # Portability notes: |
@@ -91,9 +91,9 @@ fluxbox-generate_menu was brought to you by: | |||
91 | 91 | ||
92 | Henrik Kinnunen: Project leader. | 92 | Henrik Kinnunen: Project leader. |
93 | Han Boetes: Packaging, debugging and scripts. | 93 | Han Boetes: Packaging, debugging and scripts. |
94 | Simon Bowden: Cleanups and compatibility for sun. | ||
94 | Jeramy B. Smith: Packaging assistance, gnome and kde menu system. | 95 | Jeramy B. Smith: Packaging assistance, gnome and kde menu system. |
95 | Filippo Pappalardo: Italian locales and -t option. | 96 | Filippo Pappalardo: Italian locales and -t option. |
96 | Simon Bowden: Cleanups and compatibility for sun. | ||
97 | $WHOAMI: Innocent bystander. | 97 | $WHOAMI: Innocent bystander. |
98 | 98 | ||
99 | EOF | 99 | EOF |
@@ -480,17 +480,20 @@ case ${LC_ALL} in | |||
480 | esac | 480 | esac |
481 | 481 | ||
482 | # Set Defaults | 482 | # Set Defaults |
483 | FILENAME="${HOME}/.fluxbox/menu" | 483 | FILENAME="${FILENAME:=${HOME}/.fluxbox/menu}" |
484 | MENUTITLE="Fluxbox" | 484 | MENUTITLE="${MENUTITLE:=Fluxbox}" |
485 | HOMEPAGE="fluxbox.org" | 485 | HOMEPAGE="${HOMEPAGE:=fluxbox.org}" |
486 | USERMENU="${HOME}/.fluxbox/usermenu" | 486 | USERMENU="${USERMENU:=${HOME}/.fluxbox/usermenu}" |
487 | 487 | ||
488 | # Read the menuconfig file if it exists or else create it. | 488 | # Read the menuconfig file if it exists or else create it. |
489 | if [ -r ${HOME}/.fluxbox/menuconfig ];then | 489 | # But not during install time, use envvar for sun |
490 | . ${HOME}/.fluxbox/menuconfig | 490 | if [ ! ${INSTALL}="Yes" ];then |
491 | else | 491 | if [ -r ${HOME}/.fluxbox/menuconfig ]; then |
492 | if [ ! "$WHOAMI" = root ];then # this is only for users. | 492 | . ${HOME}/.fluxbox/menuconfig |
493 | cat<<EOF> ${HOME}/.fluxbox/menuconfig | 493 | else |
494 | if [ ! "$WHOAMI" = root ]; then # this is only for users. | ||
495 | if touch ${HOME}/.fluxbox/menuconfig; then | ||
496 | cat<<EOF> ${HOME}/.fluxbox/menuconfig | ||
494 | # This file is read by fluxbox-generate_menu. If you don't like a | 497 | # This file is read by fluxbox-generate_menu. If you don't like a |
495 | # default you can change it here. Don't forget to remove the # in front | 498 | # default you can change it here. Don't forget to remove the # in front |
496 | # of the line. | 499 | # of the line. |
@@ -539,9 +542,12 @@ else | |||
539 | # REMOVE=no | 542 | # REMOVE=no |
540 | 543 | ||
541 | EOF | 544 | EOF |
545 | else | ||
546 | echo "Warning: I could't create ${HOME}/.fluxbox/menuconfig" >&2 | ||
547 | fi | ||
548 | fi | ||
542 | fi | 549 | fi |
543 | fi | 550 | fi |
544 | |||
545 | # Get options. | 551 | # Get options. |
546 | while getopts ":Bkhragb:t:p:w:u:n:q:o:m:" COMMAND_LINE_ARGUMENT ; do | 552 | while getopts ":Bkhragb:t:p:w:u:n:q:o:m:" COMMAND_LINE_ARGUMENT ; do |
547 | case "${COMMAND_LINE_ARGUMENT}" in | 553 | case "${COMMAND_LINE_ARGUMENT}" in |
@@ -567,14 +573,14 @@ done | |||
567 | 573 | ||
568 | # Can we actually create ${FILENAME} | 574 | # Can we actually create ${FILENAME} |
569 | touch ${FILENAME} 2> /dev/null | 575 | touch ${FILENAME} 2> /dev/null |
570 | if [ $? -ne 0 ] ; then | 576 | if [ $? -ne 0 ]; then |
571 | echo "Fatal error: can't create $FILENAME" >&2 | 577 | echo "Fatal error: can't create $FILENAME" >&2 |
572 | exit 1 | 578 | exit 1 |
573 | fi | 579 | fi |
574 | 580 | ||
575 | # backup menu | 581 | # backup menu |
576 | if [ -w "${FILENAME}" ]; then | 582 | if [ -w "${FILENAME}" ]; then |
577 | if [ -f ${FILENAME}.firstbak ];then | 583 | if [ -f ${FILENAME}.firstbak ]; then |
578 | cp ${FILENAME} ${FILENAME}.firstbak | 584 | cp ${FILENAME} ${FILENAME}.firstbak |
579 | fi | 585 | fi |
580 | mv ${FILENAME} ${FILENAME}.bak | 586 | mv ${FILENAME} ${FILENAME}.bak |
@@ -582,7 +588,7 @@ fi | |||
582 | 588 | ||
583 | # packagedatadir | 589 | # packagedatadir |
584 | if [ ! -d "${PKGDATADIR}" -o -z "${PKGDATADIR}" ]; then | 590 | if [ ! -d "${PKGDATADIR}" -o -z "${PKGDATADIR}" ]; then |
585 | if [ "`uname`" = "Linux" ];then | 591 | if [ "`uname`" = "Linux" ]; then |
586 | PKGDATADIR=/usr/share | 592 | PKGDATADIR=/usr/share |
587 | else | 593 | else |
588 | PKGDATADIR=/usr/local/share | 594 | PKGDATADIR=/usr/local/share |
@@ -602,7 +608,7 @@ fi | |||
602 | 608 | ||
603 | # find the default terminal | 609 | # find the default terminal |
604 | find_it $MY_TERM | 610 | find_it $MY_TERM |
605 | if [ $? -ne 0 ];then | 611 | if [ $? -ne 0 ]; then |
606 | [ -n "$MY_TERM" ] && echo "Warning: you chose an invalid term." >&2 | 612 | [ -n "$MY_TERM" ] && echo "Warning: you chose an invalid term." >&2 |
607 | #The precise order is up for debate. | 613 | #The precise order is up for debate. |
608 | for term in Eterm aterm rxvt wterm xterm konsole gnome-terminal; do | 614 | for term in Eterm aterm rxvt wterm xterm konsole gnome-terminal; do |
@@ -618,7 +624,7 @@ fi | |||
618 | 624 | ||
619 | # find the default browser | 625 | # find the default browser |
620 | find_it $MY_BROWSER | 626 | find_it $MY_BROWSER |
621 | if [ $? -ne 0 ];then | 627 | if [ $? -ne 0 ]; then |
622 | [ -n "$MY_BROWSER" ] && echo "Warning: you chose an invalid browser." >&2 | 628 | [ -n "$MY_BROWSER" ] && echo "Warning: you chose an invalid browser." >&2 |
623 | #The precise order is up for debate. | 629 | #The precise order is up for debate. |
624 | for browser in opera skipstone phoenix mozilla galeon konqueror dillo netscape links w3m lynx; do | 630 | for browser in opera skipstone phoenix mozilla galeon konqueror dillo netscape links w3m lynx; do |
@@ -633,7 +639,7 @@ fi | |||
633 | 639 | ||
634 | 640 | ||
635 | # a unix system without any terms. that's odd | 641 | # a unix system without any terms. that's odd |
636 | if [ -z "$DEFAULT_TERM" ];then | 642 | if [ -z "$DEFAULT_TERM" ]; then |
637 | cat <<EOF>&2 | 643 | cat <<EOF>&2 |
638 | Warning: I can't find any terminal-emulators in your PATH. | 644 | Warning: I can't find any terminal-emulators in your PATH. |
639 | Please fix your PATH or specify your favourite terminal with the -t option | 645 | Please fix your PATH or specify your favourite terminal with the -t option |
@@ -643,10 +649,10 @@ fi | |||
643 | 649 | ||
644 | # Start of menu | 650 | # Start of menu |
645 | cat << EOF > ${FILENAME} | 651 | cat << EOF > ${FILENAME} |
646 | # Generated by fluxbox-genereate_menu | 652 | # Generated by fluxbox-generate_menu |
647 | # | 653 | # |
648 | # If you read this it means you want to edit this file manualy, so here | 654 | # If you read this it means you want to edit this file manually, so here |
649 | # are some usefull tips: | 655 | # are some useful tips: |
650 | # | 656 | # |
651 | # - You can add your own menu-entries to ~/.fluxbox/usermenu | 657 | # - You can add your own menu-entries to ~/.fluxbox/usermenu |
652 | # | 658 | # |
@@ -778,7 +784,7 @@ append_menu_end | |||
778 | if [ -d ${GPKGDATADIR}/gnome/apps -a "${GNOMEMENU}" ]; then | 784 | if [ -d ${GPKGDATADIR}/gnome/apps -a "${GNOMEMENU}" ]; then |
779 | append_submenu "${GNOMEMENUTEXT}" | 785 | append_submenu "${GNOMEMENUTEXT}" |
780 | for a in `ls ${GPKGDATADIR}/gnome/apps/` ; do | 786 | for a in `ls ${GPKGDATADIR}/gnome/apps/` ; do |
781 | if [ -d ${GPKGDATADIR}/gnome/apps/"${a}" ] ; then | 787 | if [ -d ${GPKGDATADIR}/gnome/apps/"${a}" ]; then |
782 | append_submenu "${a}" | 788 | append_submenu "${a}" |
783 | menu_entry_dir "${GPKGDATADIR}/gnome/apps/${a}" | 789 | menu_entry_dir "${GPKGDATADIR}/gnome/apps/${a}" |
784 | menu_entry_dircheck "/etc/X11/applnk/${a}" | 790 | menu_entry_dircheck "/etc/X11/applnk/${a}" |
@@ -810,7 +816,7 @@ if [ -d ${KPKGDATADIR}/applnk/ -a "${KDEMENU}" ]; then | |||
810 | fi | 816 | fi |
811 | 817 | ||
812 | #User menu | 818 | #User menu |
813 | if [ -r "${USERMENU}" ];then | 819 | if [ -r "${USERMENU}" ]; then |
814 | cat ${USERMENU} >> ${FILENAME} | 820 | cat ${USERMENU} >> ${FILENAME} |
815 | fi | 821 | fi |
816 | 822 | ||
@@ -826,14 +832,14 @@ append_submenu "${FBSETTINGSMENU}" | |||
826 | append_menu_end | 832 | append_menu_end |
827 | 833 | ||
828 | # Backgroundmenu | 834 | # Backgroundmenu |
829 | if [ "$BACKGROUNDMENUITEM" = "yes" ];then | 835 | if [ "$BACKGROUNDMENUITEM" = "yes" ]; then |
830 | append_menu "[submenu] (${BACKGROUNDMENU}) {${BACKGROUNDMENUTITLE}}" | 836 | append_menu "[submenu] (${BACKGROUNDMENU}) {${BACKGROUNDMENUTITLE}}" |
831 | if [ `ls -1 ${HOME}/.fluxbox/backgrounds 2>/dev/null |wc -l` -gt 30 ]; then | 837 | if [ `ls -1 ${HOME}/.fluxbox/backgrounds 2>/dev/null |wc -l` -gt 30 ]; then |
832 | menucounter=1 ; counter=1 | 838 | menucounter=1 ; counter=1 |
833 | append_menu "[submenu] (${BACKGROUNDMENU} $menucounter) {${BACKGROUNDMENUTITLE}}" | 839 | append_menu "[submenu] (${BACKGROUNDMENU} $menucounter) {${BACKGROUNDMENUTITLE}}" |
834 | for i in ${HOME}/.fluxbox/backgrounds/* ${PKGDATADIR}/fluxbox/backgrounds/* ; do | 840 | for i in ${HOME}/.fluxbox/backgrounds/* ${PKGDATADIR}/fluxbox/backgrounds/* ; do |
835 | counter=`expr $counter + 1` | 841 | counter=`expr $counter + 1` |
836 | if [ $counter -eq 30 ];then | 842 | if [ $counter -eq 30 ]; then |
837 | counter=1 | 843 | counter=1 |
838 | menucounter=`expr $menucounter + 1` | 844 | menucounter=`expr $menucounter + 1` |
839 | append_menu_end | 845 | append_menu_end |
@@ -876,7 +882,7 @@ append_menu_end | |||
876 | # this function removes empty menu items. It can not yet remove nested | 882 | # this function removes empty menu items. It can not yet remove nested |
877 | # empty submenus :\ | 883 | # empty submenus :\ |
878 | 884 | ||
879 | if [ ! "${REMOVE}" ];then | 885 | if [ ! "${REMOVE}" ]; then |
880 | clean_up | 886 | clean_up |
881 | fi | 887 | fi |
882 | 888 | ||