From owner-freebsd-ports-bugs@FreeBSD.ORG Fri Feb 1 22:20:02 2008 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 39E2516A421 for ; Fri, 1 Feb 2008 22:20:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 1C98C13C45B for ; Fri, 1 Feb 2008 22:20:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m11MK1no029628 for ; Fri, 1 Feb 2008 22:20:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m11MK1Ro029627; Fri, 1 Feb 2008 22:20:01 GMT (envelope-from gnats) Resent-Date: Fri, 1 Feb 2008 22:20:01 GMT Resent-Message-Id: <200802012220.m11MK1Ro029627@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Dmitry Klimov Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EEE9516A421 for ; Fri, 1 Feb 2008 22:13:11 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id DFF7613C44B for ; Fri, 1 Feb 2008 22:13:11 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.2/8.14.2) with ESMTP id m11MBI77029049 for ; Fri, 1 Feb 2008 22:11:18 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.2/8.14.1/Submit) id m11MBIXu029048; Fri, 1 Feb 2008 22:11:18 GMT (envelope-from nobody) Message-Id: <200802012211.m11MBIXu029048@www.freebsd.org> Date: Fri, 1 Feb 2008 22:11:18 GMT From: Dmitry Klimov To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: ports/120212: some small features for x11-wm/genmenu X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Feb 2008 22:20:02 -0000 >Number: 120212 >Category: ports >Synopsis: some small features for x11-wm/genmenu >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Fri Feb 01 22:20:01 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Dmitry Klimov >Release: FreeBSD 6.3-PRERELEASE >Organization: >Environment: FreeBSD 6.3-PRERELEASE >Description: Patch adds to genmenu(small, slow, but pretty good and simple menu generator) support for urxvt(as terminal), IceWM(as window manager), and primitive "proglist" command line parameter(useful for user-defined application list). usage: %genmenu -p myproglist where proglist is like ---------------8<---begin-of-proglist--------------- terminals | aterm Eterm rxvt urxvt xterm gnome-terminal multi-gnome-terminal konsole + browsers | netscape mozilla firefox galeon skipstone konqueror dillo opera !links !lynx !w3m + ---------------8<---end-of-proglist----------------- (It has the same format as MENUITEMS variable in original script) >How-To-Repeat: >Fix: Patch attached with submission follows: --- /usr/local/bin/genmenu 2007-11-27 17:43:15.000000000 +0300 +++ genmenu 2007-11-28 12:29:00.000000000 +0300 @@ -45,15 +45,29 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# parsing input parameters +until [ -z "$1" ] +do + if [ "$1" = "-f" ] + then + if [ -f "$2" ] + then + MENUITEMS=`cat $2 | grep -v "^[[:blank:]]*#"` + fi + fi +shift +done + # ----------------------------------------------------------------------------- # Configuration # The programs to check for. Menus are generated in the order they appear here # Format: "|" = start items, "!" = run in a terminal, "+" = end submenu. - +if [ -z "$MENUITEMS" ] +then MENUITEMS=" -terminals | aterm Eterm rxvt xterm gnome-terminal multi-gnome-terminal konsole + +terminals | aterm Eterm rxvt urxvt xterm gnome-terminal multi-gnome-terminal konsole + browsers | netscape mozilla firefox galeon skipstone konqueror dillo opera !links !lynx !w3m + @@ -88,7 +102,7 @@ development | glimmer glade kdevelop designer kbabel idle ghex khexedit memprof !tclsh !python !gdb xxgdb !xev + system | gtop !top kpm bp6mon gw guname gnorpm red-carpet monkeytalk bug-buddy gnomecc gkrellm !sndconfig tksysv ksysv gnome-ppp kppp qtisdnlinux internet-config firewall-config printconf-gui +" - +fi # Shells to check for CHKSHELLS="mc sh bash ash sash csh tcsh ksh pdksh zsh" @@ -96,6 +110,7 @@ # Blackbox specific apps to check for BLACKBOX_APPS="blackbox | bbkeys bbkeysconf bbappconf toolbox whiteBOX bbrb bbmail bbsload bbppp bbdate bbws bbpager bbtime bbweather bbpal bbrun bbapm +" +ICEWM_APPS="icewm | icebgset icecc icecursorcfg iceiconcvt iceked icemc icerrun icesndcfg icets icwmcp icewoed" # FluxBox specific apps to check for FLUXBOX_APPS="fluxbox | fluxconf fluxkeys +" @@ -123,7 +138,7 @@ # Terminals to check for (note: only shown in the terminal selection list) -CHKTERMINALS="aterm Eterm rxvt xterm gnome-terminal multi-gnome-terminal konsole" +CHKTERMINALS="aterm Eterm rxvt urxvt xterm gnome-terminal multi-gnome-terminal konsole" # Screensaver command @@ -444,6 +459,10 @@ { echo " [exec] ($1) {$2}" } +ice_prog() +{ + echo " prog \"$1\" - $2" +} wm_prog() { @@ -464,6 +483,10 @@ { echo -e "$1[submenu] ($(mintospc "$2"))$3" } +ice_submenu() +{ + echo -e "$1menu \"$(mintospc "$2")\" folder "$3" {\n" +} wm_submenu() { @@ -487,6 +510,7 @@ case $WM in *box) bb_prog "$(ucfirst "$(app_translate $app)")" "$TERMINAL -e $(defaults $app)" ;; wmaker) wm_prog "$(ucfirst "$(app_translate $app)")" "$TERMINAL -e "$(defaults $app)"" ;; + icewm) ice_prog "$(ucfirst "$(app_translate $app)")" "$TERMINAL -e "$(defaults $app)"" ;; e) e_prog "$(ucfirst "$(app_translate $app)")" "$TERMINAL -e "$(defaults $app)"" >> $ECONFDIR/genmenu/${ESUBTITLE}.menu esac @@ -494,6 +518,7 @@ case $WM in *box) bb_prog "$(ucfirst "$(app_translate $app)")" "$(defaults $app)" ;; wmaker) wm_prog "$(ucfirst "$(app_translate $app)")" "$(defaults $app)" ;; + icewm) ice_prog "$(ucfirst "$(app_translate $app)")" "$(defaults $app)" ;; e) e_prog "$(ucfirst "$(app_translate $app)")" "$(defaults $app)" >> $ECONFDIR/genmenu/${ESUBTITLE}.menu esac fi @@ -509,6 +534,7 @@ case $WM in *box) bb_submenu " " "Applications" "\n" ;; + icewm) ice_submenu " " "Applications" "\n" ;; wmaker) wm_submenu " (\"Applications\"," "\n" ;; e) e_submenu "Applications" "\n" > $ECONFDIR/genmenu.menu esac @@ -530,6 +556,7 @@ if [ "$sublock" = "0" ]; then case $WM in *box) bb_submenu " " "$(ucfirst $item)" ;; + icewm) ice_submenu " " "$(ucfirst $item)" ;; *) if [ "$WM" = "wmaker" -a "$item" != "-" ]; then wm_submenu " (\"$(ucfirst $item)\"," "\n" @@ -549,6 +576,7 @@ if [ "$item" = "+" ]; then case $WM in *box) echo -e " [end]\n" ;; + icewm) echo -e " }\n" ;; wmaker) if [ "$item" = "+" -a "$item_nr" -lt "$(($NR_MENUITEMS - 1))" ]; then echo -ne "\n ),\n" @@ -564,7 +592,8 @@ done case $WM in - *box) echo -e " [end]\n" + *box) echo -e " [end]\n";; + icewm) echo -e " }\n" esac } @@ -677,7 +706,17 @@ echo -e " [end]\n" } - +ice_others() +{ + local thiswm + echo " menu \"Others\" folder {" + for thiswm in $WINDOWMANAGERS; do + if [ "$thiswm" != "$1" ]; then + findprog $thiswm && echo " restart \"$(ucfirst "$(wm_translate $thiswm)")\" - $thiswm" + fi + done + echo -e "}\n" +} wm_restart () { echo " (\"Restart\", RESTART)," @@ -758,7 +797,14 @@ fi bb_exit } +ice_writemenu() +{ + programs + if [ "$DOOTHERS" = "1" ]; then + ice_others $WM + fi +} wm_writemenu() { wm_begin @@ -827,6 +873,27 @@ rm -f ${bbrc}.tmp } +ice_interactive() +{ + local wmrc menu + + ICECONFDIR="$HOME/.icewm" + menu="$HOME/.icewm/menu" + + if [ ! -d "$ICECONFDIR" ]; then + echo -e "\nUnable to find $ICECONFDIR, please run IceWM to generate it!\n" + exit 1 + fi + + if [ -e "$menu" ]; then + yesno "$menu does already exist. Overwrite?" || exit 1 + fi + + echo -e "\nWriting IceWM menu\n" + ice_writemenu >$menu + echo +} + wm_interactive() { local wmrc menu @@ -949,6 +1016,16 @@ wm_interactive } } + findprog icewm && { + yesno "Generate IceWM menu?" && { + WM="icewm" + MENUITEMS="$tmp_menuitems" + realmenu + # need to know when it ends for the nasty proplist format + count_menuitems + ice_interactive + } + } findprog enlightenment && { yesno "Generate Enlightenment menu?" && { >Release-Note: >Audit-Trail: >Unformatted: