New xdg menu for Puppy
-
- Posts: 5
- Joined: Sat 10 Apr 2010, 03:35
Hi Mobeus,
I wanted to use JWM with Fatdog64, but the menus weren't what I'm
used to. I've managed to tweak a few things but would like to really
take charge of things without having to dig into the guts of the system.
it looks like most of the menu structure is built by the script /usr/bin/jwm_menu_create,
while fixmenus is just a symlink to that script.
that Slackbones64 sounds very interesting, I would really like to know
more. Is there a release, beta, alpha?
Buck
Edit: I searched and found some info on Slackbones64 will definately
check it out.
I wanted to use JWM with Fatdog64, but the menus weren't what I'm
used to. I've managed to tweak a few things but would like to really
take charge of things without having to dig into the guts of the system.
it looks like most of the menu structure is built by the script /usr/bin/jwm_menu_create,
while fixmenus is just a symlink to that script.
that Slackbones64 sounds very interesting, I would really like to know
more. Is there a release, beta, alpha?
Buck
Edit: I searched and found some info on Slackbones64 will definately
check it out.
Hi gulk,
The standard lxpanel has menu-cache as a dependency. Menu-cache has a binary named menu-cached that runs in the background as a daemon, and this monitors a whole bunch of directories and files looking for changes and it keeps a constantly updated list in the users home directory. I'm not quite sure but I think menu-cache signals lxpanel to update it's menu when a change is detected, then lxpanel regenerates it's menu.
All of that really doesn't take much time or resources to accomplish. I doubt if anyone could notice it.
Regards,
Mobeus
The standard lxpanel has menu-cache as a dependency. Menu-cache has a binary named menu-cached that runs in the background as a daemon, and this monitors a whole bunch of directories and files looking for changes and it keeps a constantly updated list in the users home directory. I'm not quite sure but I think menu-cache signals lxpanel to update it's menu when a change is detected, then lxpanel regenerates it's menu.
All of that really doesn't take much time or resources to accomplish. I doubt if anyone could notice it.
Regards,
Mobeus
/root for the home team
Progress.
Now programs that normally do not show up in Puppy menus will be put in the "Other" menu.
This Other menu will only be visible when there is a program that does not have a matching menu category.
Now programs that normally do not show up in Puppy menus will be put in the "Other" menu.
This Other menu will only be visible when there is a program that does not have a matching menu category.
- Attachments
-
- other-menu.png
- (39.74 KiB) Downloaded 793 times
/root for the home team
Looks like a good effort to get a GTK editor. I'd encourage wider panel support, especially for GTK environments.
A quick google only unearthed:
1. Arch's xdg-menu, perl-based, supports
A quick google only unearthed:
1. Arch's xdg-menu, perl-based, supports
2. LXMenuEditor, java-based, supports LXDE and XFCEtwm
ion3
WindowMaker
fvwm2
icewm
blackbox
fluxbox
openbox
awesome
from XDG stuff. KDE, Gnome, Xfce, Enlightenment are already XDG compatible.
Hi greengeek,
Glad you find it useful. Xfce is xdg compliant, but the spec itself is flexible and different desktops will interpret the menu files in somewhat different ways, and some do not support some important, but optional, features.
My program and menus should work with xfce, because everything I’m doing is xdg compliant. I haven’t tested xfce yet but I don’t expect any major problems (famous last words). I’ve looked at LXMenuEditor and it has the same shortcomings as most other ones I’ve tried; a hard coded root menu. It is not xdg compliant.
Let me say it one more time
This package will implement freedesktop.org xdg menus for Puppy in a way that any xdg compliant window manager and or panel will be able to use without modification. In addition to that it will work for the window managers and panels that the official woof-built Puppy supports at this time, and it will work with Puppy’s fixmenu script, and it will allow full menu customization.
Regards,
Mobeus
Glad you find it useful. Xfce is xdg compliant, but the spec itself is flexible and different desktops will interpret the menu files in somewhat different ways, and some do not support some important, but optional, features.
My program and menus should work with xfce, because everything I’m doing is xdg compliant. I haven’t tested xfce yet but I don’t expect any major problems (famous last words). I’ve looked at LXMenuEditor and it has the same shortcomings as most other ones I’ve tried; a hard coded root menu. It is not xdg compliant.
Let me say it one more time
This package will implement freedesktop.org xdg menus for Puppy in a way that any xdg compliant window manager and or panel will be able to use without modification. In addition to that it will work for the window managers and panels that the official woof-built Puppy supports at this time, and it will work with Puppy’s fixmenu script, and it will allow full menu customization.
Regards,
Mobeus
/root for the home team
Well, the menu infrastructure and the menu generator are almost ready for trials, but the editor is on hold until the infrastructure is deemed complete.greengeek wrote: I'd like to trial it yesterday please.
I would like a few volunteers to try just the menu using clean frugal installs on some different Puppys with different window managers and panels. That would be a good start to uncover the inevitable issues that will pop up. There’s some more testing to be done here and then I’ll put together a package with some documentation. One issue yet to be addressed is the XDG_MENU_PREFIX environment variable which Puppy does not supply, and many desktop environments rely on.
/root for the home team
Hi Mobeus,Mobeus wrote:I would like a few volunteers to try just the menu using clean frugal installs on some different Puppys with different window managers and panels.
I run Micko's Compiz sfs with pcmanfm/lxpanel to manage desktop and menu (what he calls "xwin dummy2"), so it won't be testing from a pristine frugal install. The pristine frugal install would be a Slacko 5.5 and Slacko 5.3 which I still have on the computer.
Let me know.
Regards,
gulk
yes... watching on with interest.greengeek wrote:I'd like to trial it yesterday please.
Puppy Linux Blog - contact me for access
+1. Fatdog has openbox/lxpanel (with menu-cached) as default, and rather old version of JWM as backup.01micko wrote:yes... watching on with interest.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]
Hi simargl,
I’ll address this in a somewhat reverse order... and forgive me for covering ground you already know, please.
The purpose of fixmenus is to auto-update the menus for certain window managers after installing a pet and at boot. Maybe at the start of X too, not sure about that. You should not have to type fixmenus unless you manually install a package or manually make a menu change.
If the latest fixmenus does not update fluxbox it is because it calls jwm2fluxbox to create the menu, and as far as I can determine this script no longer exists. It looks as if the script in use today is fluxbox_menu_refresh. It is this script and it’s supporting files that determine the menu layout of fluxbox in Puppy.
In order for everything to work with Puppy, the xdg *.menu and menu-generator part of my project is designed to work with fixmenus and it’s associated scripts. The menu it generates is a translation (with icons) of the complete xdg menu that gnome-menus generates from the correct [XDG_MENU_PREFIX]-applications.menu used by the current user’s window manager. This output is delivered to the scripts like fluxbox_menu_refresh and they assemble the menu, just as they do now.
Regards,
Mobeus
PS still trying to get my radeon working with AlphaOS
I’ll address this in a somewhat reverse order... and forgive me for covering ground you already know, please.
The purpose of fixmenus is to auto-update the menus for certain window managers after installing a pet and at boot. Maybe at the start of X too, not sure about that. You should not have to type fixmenus unless you manually install a package or manually make a menu change.
If the latest fixmenus does not update fluxbox it is because it calls jwm2fluxbox to create the menu, and as far as I can determine this script no longer exists. It looks as if the script in use today is fluxbox_menu_refresh. It is this script and it’s supporting files that determine the menu layout of fluxbox in Puppy.
In order for everything to work with Puppy, the xdg *.menu and menu-generator part of my project is designed to work with fixmenus and it’s associated scripts. The menu it generates is a translation (with icons) of the complete xdg menu that gnome-menus generates from the correct [XDG_MENU_PREFIX]-applications.menu used by the current user’s window manager. This output is delivered to the scripts like fluxbox_menu_refresh and they assemble the menu, just as they do now.
Regards,
Mobeus
PS still trying to get my radeon working with AlphaOS
/root for the home team
Progress:
Fluxbox support completed.
Time in seconds to generate the various menus:
All menus include icons.
Fluxbox support completed.
Time in seconds to generate the various menus:
All menus include icons.
Code: Select all
# ./gen_pup_xdg openbox
0.151
# ./gen_pup_xdg jwm
0.113
# ./gen_pup_xdg icewm
0.112
# ./gen_pup_xdg fbpanel
0.112
# ./gen_pup_xdg fluxbox
1.193
/root for the home team
Hi simargl,
Thanks, I’ll try that with /etc/rc.conf & let you know on your thread.
Then I will build the menu editor in a way that will work for most Linux that use the freedesktop.org standard, including Puppy, and yet not be Puppy specific.
Regards
Thanks, I’ll try that with /etc/rc.conf & let you know on your thread.
Other Linux OS do not need this package. The package in this thread is all about making the Puppy menu system more standards compliant, like Linux in general, and do so in a way that will not break the existing support system that is in place for these other window managers, including the icon theme switcher and PPM. It is a very small modification to Puppy, yet will allow good things that are difficult with the current setup.I would suggest to add all needed supporting scripts from original
Puppy to your package so it is like all-in-one and become more Linux general than Puppy specific project.
Then I will build the menu editor in a way that will work for most Linux that use the freedesktop.org standard, including Puppy, and yet not be Puppy specific.
You mean like openbox-menu? I think my menu generator will work the same way. I’ll have to try it.Great thing about openbox is ability to use
pipe menus, so applications list can be automatically generated every time
Code: Select all
(in menu.xml)
<menu id="desktop-app-menu"
label="Applications"
execute="<path-to-exec>/gen_pup_xdg openbox" />
(in openbox root menu)
<menu id="desktop-app-menu" />
/root for the home team
Progress:
Improved fluxbox menu generation.
Version 1 time
Version 2 time
Much better. I can live with that.
Improved fluxbox menu generation.
Version 1 time
Code: Select all
# ./gen_pup_xdg fluxbox
1.193
Code: Select all
# ./gen_pup_xdg-02 fluxbox
0.142
# ./gen_pup_xdg-02 fluxbox
0.134
# ./gen_pup_xdg-02 fluxbox
0.147
# ./gen_pup_xdg-02 fluxbox
0.144
/root for the home team