Bionicpup64: fixmenus does not work in Icewm

Post here if you feel others can duplicate your so discovered "bug"

Moderator: Forum moderators

Post Reply
Lassar
Posts: 107
Joined: Mon Jan 18, 2021 12:59 am
Been thanked: 1 time

Bionicpup64: fixmenus does not work in Icewm

Post by Lassar »

Using fixmenus in bionicpup64 does not work.

Using Icewm 1.4.3.0

Definitely buggy!

Here is my menu results from fixmenus.

Code: Select all


# Icewm menu for Puppy
# For Puppy 1.0.6 GuestToo, 2005, updated for latest Puppy by BK
# BK: XDG version, Puppy 2.14. icewm-xdgmenu create by rarsa.
# /usr/sbin/fixmenus script converts this to /root/.icewm/menu

menu	"Desktop" x48 {
Creates a icewm menu from an XDG menu structure.
Usage:
  icewm-xdgmenu xdgmenufile

  xdgmenufile: Fully qualified path to the XDG menu file. This is a mandatory parameter

For example:
  icewm-xdgmenu "/etc/xdg/menus/applications.menu"


to invoke it from icewm, add a menuprog entry to the menu configuration file

  menuprog Title icon icewm-xdgmenu xdgmenufile
}
menu	"System" pc48 {
Creates a icewm menu from an XDG menu structure.
Usage:
  icewm-xdgmenu xdgmenufile

  xdgmenufile: Fully qualified path to the XDG menu file. This is a mandatory parameter

For example:
  icewm-xdgmenu "/etc/xdg/menus/applications.menu"


to invoke it from icewm, add a menuprog entry to the menu configuration file

  menuprog Title icon icewm-xdgmenu xdgmenufile
}
menu "Setup" configuration48 {
Creates a icewm menu from an XDG menu structure.
Usage:
  icewm-xdgmenu xdgmenufile

  xdgmenufile: Fully qualified path to the XDG menu file. This is a mandatory parameter

For example:
  icewm-xdgmenu "/etc/xdg/menus/applications.menu"


to invoke it from icewm, add a menuprog entry to the menu configuration file

  menuprog Title icon icewm-xdgmenu xdgmenufile
}
separator
menu "Utility" utility48 {
Creates a icewm menu from an XDG menu structure.
Usage:
  icewm-xdgmenu xdgmenufile

  xdgmenufile: Fully qualified path to the XDG menu file. This is a mandatory parameter

For example:
  icewm-xdgmenu "/etc/xdg/menus/applications.menu"


to invoke it from icewm, add a menuprog entry to the menu configuration file

  menuprog Title icon icewm-xdgmenu xdgmenufile
}
menu "Filesystem" folder48 {
Creates a icewm menu from an XDG menu structure.
Usage:
  icewm-xdgmenu xdgmenufile

  xdgmenufile: Fully qualified path to the XDG menu file. This is a mandatory parameter

For example:
  icewm-xdgmenu "/etc/xdg/menus/applications.menu"


to invoke it from icewm, add a menuprog entry to the menu configuration file

  menuprog Title icon icewm-xdgmenu xdgmenufile
}
menu "Graphic" paint48 {
Creates a icewm menu from an XDG menu structure.
Usage:
  icewm-xdgmenu xdgmenufile

  xdgmenufile: Fully qualified path to the XDG menu file. This is a mandatory parameter

For example:
  icewm-xdgmenu "/etc/xdg/menus/applications.menu"


to invoke it from icewm, add a menuprog entry to the menu configuration file

  menuprog Title icon icewm-xdgmenu xdgmenufile
}
menu "Document" word48 {
Creates a icewm menu from an XDG menu structure.
Usage:
  icewm-xdgmenu xdgmenufile

  xdgmenufile: Fully qualified path to the XDG menu file. This is a mandatory parameter

For example:
  icewm-xdgmenu "/etc/xdg/menus/applications.menu"


to invoke it from icewm, add a menuprog entry to the menu configuration file

  menuprog Title icon icewm-xdgmenu xdgmenufile
}
menu "Business" spread48 {
Creates a icewm menu from an XDG menu structure.
Usage:
  icewm-xdgmenu xdgmenufile

  xdgmenufile: Fully qualified path to the XDG menu file. This is a mandatory parameter

For example:
  icewm-xdgmenu "/etc/xdg/menus/applications.menu"


to invoke it from icewm, add a menuprog entry to the menu configuration file

  menuprog Title icon icewm-xdgmenu xdgmenufile
}
menu "Personal" date48 {
Creates a icewm menu from an XDG menu structure.
Usage:
  icewm-xdgmenu xdgmenufile

  xdgmenufile: Fully qualified path to the XDG menu file. This is a mandatory parameter

For example:
  icewm-xdgmenu "/etc/xdg/menus/applications.menu"


to invoke it from icewm, add a menuprog entry to the menu configuration file

  menuprog Title icon icewm-xdgmenu xdgmenufile
}
menu "Network" connect48 {
Creates a icewm menu from an XDG menu structure.
Usage:
  icewm-xdgmenu xdgmenufile

  xdgmenufile: Fully qualified path to the XDG menu file. This is a mandatory parameter

For example:
  icewm-xdgmenu "/etc/xdg/menus/applications.menu"


to invoke it from icewm, add a menuprog entry to the menu configuration file

  menuprog Title icon icewm-xdgmenu xdgmenufile
}
menu "Internet" www48 {
Creates a icewm menu from an XDG menu structure.
Usage:
  icewm-xdgmenu xdgmenufile

  xdgmenufile: Fully qualified path to the XDG menu file. This is a mandatory parameter

For example:
  icewm-xdgmenu "/etc/xdg/menus/applications.menu"


to invoke it from icewm, add a menuprog entry to the menu configuration file

  menuprog Title icon icewm-xdgmenu xdgmenufile
}
menu "Multimedia" multimedia48 {
Creates a icewm menu from an XDG menu structure.
Usage:
  icewm-xdgmenu xdgmenufile

  xdgmenufile: Fully qualified path to the XDG menu file. This is a mandatory parameter

For example:
  icewm-xdgmenu "/etc/xdg/menus/applications.menu"


to invoke it from icewm, add a menuprog entry to the menu configuration file

  menuprog Title icon icewm-xdgmenu xdgmenufile
}
menu "Fun" games48 {
Creates a icewm menu from an XDG menu structure.
Usage:
  icewm-xdgmenu xdgmenufile

  xdgmenufile: Fully qualified path to the XDG menu file. This is a mandatory parameter

For example:
  icewm-xdgmenu "/etc/xdg/menus/applications.menu"


to invoke it from icewm, add a menuprog entry to the menu configuration file

  menuprog Title icon icewm-xdgmenu xdgmenufile
}
separator
prog	Help help48 defaulthtmlviewer file:///usr/share/doc/index.html
menu "Logout" shutdown48 {
prog "Exit to prompt" prompt16 wmexit
prog "Reboot Computer"  mini-arrow-right wmreboot
prog "Shutdown Computer" mini-stop wmpoweroff
separator
prog "Restart IceWM" icewm restartwm icewm-session --replace
prog "Update Menus" mini-windows fixmenus
prog "Restart X server" mini-x restartwm
}

used icewm-xdgmenu by itself and it works.

_root_.icewm_menu

Code: Select all


# Icewm menu for Puppy
# For Puppy 1.0.6 GuestToo, 2005, updated for latest Puppy by BK
# BK: XDG version, Puppy 2.14. icewm-xdgmenu create by rarsa.
# /usr/sbin/fixmenus script converts this to /root/.icewm/menu

menu	"Desktop" x48 {
PUPPYMENU icewm-xdgmenu /etc/xdg/menus/puppy-desktop.menu
}
menu	"System" pc48 {
PUPPYMENU icewm-xdgmenu /etc/xdg/menus/puppy-system.menu
}
menu "Setup" configuration48 {
PUPPYMENU icewm-xdgmenu /etc/xdg/menus/puppy-setup.menu
}
separator
menu "Utility" utility48 {
PUPPYMENU icewm-xdgmenu /etc/xdg/menus/puppy-utility.menu
}
menu "Filesystem" folder48 {
PUPPYMENU icewm-xdgmenu /etc/xdg/menus/puppy-filesystem.menu
}
menu "Graphic" paint48 {
PUPPYMENU icewm-xdgmenu /etc/xdg/menus/puppy-graphic.menu
}
menu "Document" word48 {
PUPPYMENU icewm-xdgmenu /etc/xdg/menus/puppy-document.menu
}
menu "Business" spread48 {
PUPPYMENU icewm-xdgmenu /etc/xdg/menus/puppy-calculate.menu
}
menu "Personal" date48 {
PUPPYMENU icewm-xdgmenu /etc/xdg/menus/puppy-personal.menu
}
menu "Network" connect48 {
PUPPYMENU icewm-xdgmenu /etc/xdg/menus/puppy-network.menu
}
menu "Internet" www48 {
PUPPYMENU icewm-xdgmenu /etc/xdg/menus/puppy-internet.menu
}
menu "Multimedia" multimedia48 {
PUPPYMENU icewm-xdgmenu /etc/xdg/menus/puppy-multimedia.menu
}
menu "Fun" games48 {
PUPPYMENU icewm-xdgmenu /etc/xdg/menus/puppy-fun.menu
}
separator
prog	Help help48 defaulthtmlviewer file:///usr/share/doc/index.html
menu "Logout" shutdown48 {
prog "Exit to prompt" prompt16 wmexit
prog "Reboot Computer"  mini-arrow-right wmreboot
prog "Shutdown Computer" mini-stop wmpoweroff
separator
prog "Restart IceWM" icewm restartwm icewm-session --replace
prog "Update Menus" mini-windows fixmenus
prog "Restart X server" mini-x restartwm
}

fixmenus

Code: Select all


#!/bin/sh
#v2.14 Puppy now has XDG menus.
#this script builds the menus from template files.
#Any templates can be placed into /etc/xdg/templates, and the file must be
#named to show its final destination. For example, the template for JWM:
# _root_.jwmrc
#...the '_' will be converted to a '/', so the generated JWM config file is:
# /root/.jwmrc
# 5jan2008: fbpanel,lxpanel support developed by plinej.
#100404 BK added 'variconlinks' for my fbpanel pkg.
#100427 when called via /etc/rc.d/rc.update, HOME is '/' (needed by some of the menu generating apps).
#120207 translation of some SSS strings. refer /usr/share/sss/menu_strings/
#120208 fix in case this script gets called with LANG=C
#120209 this script now called from /usr/sbin/quicksetup, whenever locale is changed.
#120216 sss translation file now uses simple sed expressions.
#120524 bug fix.

#100427
[ ! "$HOME" ] && HOME='/root'
[ "$HOME" = "/" ] && HOME='/root'
export HOME

[ -f $HOME/.jwm/menuheights ] && . $HOME/.jwm/menuheights

# remove csh shell files #precaution
CSH=$(find /etc/profile.d -name *.csh)
[ "$CSH" ] && rm /etc/profile.d/*.csh

if [ "$LANG" = "C" ];then #120208
 LANG="`grep '^LANG=' /etc/profile | cut -f 2 -d '=' | cut -f 1 -d ' '`"
 export LANG
fi
LANG1="`echo -n $LANG | cut -f 1 -d '_'`"  #120207 ex: de

TEMPLATES="`ls -1 /etc/xdg/templates | tr '\n' ' '`"

for ONETPL in $TEMPLATES #ex: _root_.jwmrc
do
 [ "$ONETPL" = "README.txt" ] && continue
 ONEDEST="`echo -n "$ONETPL" | sed -e 's/_/\//g'`"
 ONESRC="/etc/xdg/templates/$ONETPL"
 echo "Generating $ONEDEST..."
 
 [ -f $ONEDEST ] && mv -f $ONEDEST ${ONEDEST}-previous

 cat $ONESRC |
 while read ONELINE
 do
  EXECMENU="`echo -n "$ONELINE" | grep -o '^PUPPYMENU.*' | cut -f 2-5 -d ' '`"
  if echo "$ONELINE" | grep -q "MENHEIGHT" ;then #131213 designed to be backward compatible
   [ "$MENHEIGHT" ] && echo $ONELINE | sed "s%MENHEIGHT%$MENHEIGHT%" >> $ONEDEST \
   || echo $ONELINE | sed "s%MENHEIGHT%16%" >> $ONEDEST
  elif [ "$EXECMENU" = "" ];then
   echo "$ONELINE" >> $ONEDEST
  else
   ${EXECMENU} ${MENHEIGHT} >> ${ONEDEST}
  fi
 done

 #120207 translate some strings... 120216...
 if [ "$LANG1" != "en" ];then
  if [ -f /usr/share/sss/menu_strings/menu_strings.${LANG1} ];then
   sPTN="/^\[${ONETPL}\]/,/^$/p" #this is a multi-line block find expression.
   CODEBLOCK="`sed -n "$sPTN" /usr/share/sss/menu_strings/menu_strings.${LANG1} | sed -e '/^#/d' -e '/%%/d' -e '/^$/d' -e '/^\[/d'`" #extracts just the relevant block of lines.
   if [ "$CODEBLOCK" ];then
    echo "$CODEBLOCK" > /tmp/fixmenus-translationblock
    #121124 ensure that all [ ] are escaped... 121125 revert... 121126 restore, plus escape '.' chars...
    sed -i -e 's%\[%\\[%g' -e 's$\]$\\]$g' -e 's%\\\\\[%\\[%g' -e 's%\\\\\]%\\]%g' /tmp/fixmenus-translationblock
    sed -i -e 's%\.%\\.%g' -e 's%\\\\\.%\\.%g' /tmp/fixmenus-translationblock #note: 2nd ptn gets rid of prior escape char, so there remains just one.
    sed -i -f /tmp/fixmenus-translationblock ${ONEDEST}
   fi
  fi
 fi

done

#w001 support for fbpanel, lxpanel, openbox, fluxbox, pekwm...
[ `which variconlinks` ] && variconlinks #100404 for my fbpanel pkg.
[ `which tempicons` ] && tempicons
[ `which fbpanel_menu_refresh` ] && fbpanel_menu_refresh
[ `which lxpanel_menu_refresh` ] && lxpanel_menu_refresh
[ `which jwm2fluxbox` ] && jwm2fluxbox  ##current fluxbox_menu_refresh doesn't support menu icons while this does
[ `which obmenu-refresh` ] && obmenu-refresh
[ `which jwm2pekwm` ] && jwm2pekwm

###END###

Fixmenus definitely needs to be updated for bionicpup64.

Last edited by Flash on Thu Nov 25, 2021 5:53 pm, edited 1 time in total.
Reason: Original title: fixmenus does not work
User avatar
bigpup
Moderator
Posts: 6420
Joined: Tue Jul 14, 2020 11:19 pm
Location: Earth, South Eastern U.S.
Has thanked: 766 times
Been thanked: 1327 times

Re: fixmenus does not work

Post by bigpup »

Have you run Quickpet>Info>Bionicpup updates?
Rebooted and updated the save, so changes are now being used?

Forum Global Moderator
The things you do not tell us, are usually the clue to fixing the problem.
When I was a kid, I wanted to be older.
This is not what I expected :o

User avatar
bigpup
Moderator
Posts: 6420
Joined: Tue Jul 14, 2020 11:19 pm
Location: Earth, South Eastern U.S.
Has thanked: 766 times
Been thanked: 1327 times

Re: fixmenus does not work

Post by bigpup »

Using fixmenus in bionicpup64 does not work.

Exactly what are you trying to add to the menu?

Does it have a .desktop file for it in /usr/share/applications/?
If no.
Fixmenus has nothing to use for information, to put something in the menu.
The .desktop file for the program, has the needed information.

Forum Global Moderator
The things you do not tell us, are usually the clue to fixing the problem.
When I was a kid, I wanted to be older.
This is not what I expected :o

Lassar
Posts: 107
Joined: Mon Jan 18, 2021 12:59 am
Been thanked: 1 time

Re: Bionicpup64: fixmenus does not work in Icewm

Post by Lassar »

Something is funky here.

Later on it worked perfectly.

Post Reply

Return to “Bug Reports”