New xdg menu for Puppy

A home for all kinds of Puppy related projects
Message
Author
Buck Huffman
Posts: 5
Joined: Sat 10 Apr 2010, 03:35

#16 Post by Buck Huffman »

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.

User avatar
gulk
Posts: 86
Joined: Mon 21 Apr 2008, 19:04

#17 Post by gulk »

Hi Mobeus,

thanks for the tip; it was so obvious that I missed it.
Now, as far as the magical appearance of items in the menu, what is happening here? Is LxPanel going through your .desktop folder everytime you select the menu? I can't see any lag, but isn't it kind of inefficient?

gulk

User avatar
Mobeus
Posts: 94
Joined: Thu 26 Aug 2010, 15:49

#18 Post by Mobeus »

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
/root for the home team

User avatar
Mobeus
Posts: 94
Joined: Thu 26 Aug 2010, 15:49

#19 Post by Mobeus »

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.
Attachments
other-menu.png
(39.74 KiB) Downloaded 793 times
/root for the home team

User avatar
gulk
Posts: 86
Joined: Mon 21 Apr 2008, 19:04

#20 Post by gulk »

Looking better by the minute, Mobeus. Keep it up.

go2null
Posts: 11
Joined: Mon 24 Oct 2011, 02:04

#21 Post by go2null »

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
twm
ion3
WindowMaker
fvwm2
icewm
blackbox
fluxbox
openbox
awesome

from XDG stuff. KDE, Gnome, Xfce, Enlightenment are already XDG compatible.
2. LXMenuEditor, java-based, supports LXDE and XFCE

User avatar
greengeek
Posts: 5789
Joined: Tue 20 Jul 2010, 09:34
Location: Republic of Novo Zelande

#22 Post by greengeek »

Thanks Mobeus - this thread is helping answer questions I have as a result of trying to tidy up menus in an XFCE environment, which appears to be xdg compliant. Does your program handle xfce also? (most of the googling I have done refers to lxmenueditor and requiring java, which I don't want).

User avatar
Mobeus
Posts: 94
Joined: Thu 26 Aug 2010, 15:49

#23 Post by Mobeus »

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
/root for the home team

User avatar
greengeek
Posts: 5789
Joined: Tue 20 Jul 2010, 09:34
Location: Republic of Novo Zelande

#24 Post by greengeek »

Mobeus wrote:Anyway, I just wanted to toss this out here and see if there is any community interest in it.
Yes there is.
I'd like to trial it yesterday please. :-)

User avatar
Mobeus
Posts: 94
Joined: Thu 26 Aug 2010, 15:49

#25 Post by Mobeus »

greengeek wrote: I'd like to trial it yesterday please.
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.

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

User avatar
gulk
Posts: 86
Joined: Mon 21 Apr 2008, 19:04

#26 Post by gulk »

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.
Hi Mobeus,

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

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#27 Post by 01micko »

greengeek wrote:I'd like to trial it yesterday please. :-)
yes... watching on with interest.
Puppy Linux Blog - contact me for access

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#28 Post by jamesbond »

01micko wrote:yes... watching on with interest.
+1. Fatdog has openbox/lxpanel (with menu-cached) as default, and rather old version of JWM as backup.
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]

User avatar
Mobeus
Posts: 94
Joined: Thu 26 Aug 2010, 15:49

#29 Post by Mobeus »

Progress:

Support for fbpanel is finished.

Working on Fluxbox support.
/root for the home team

simargl

#30 Post by simargl »

.
Last edited by simargl on Sun 01 Sep 2013, 15:03, edited 1 time in total.

User avatar
Mobeus
Posts: 94
Joined: Thu 26 Aug 2010, 15:49

#31 Post by Mobeus »

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 :wink:
/root for the home team

User avatar
Mobeus
Posts: 94
Joined: Thu 26 Aug 2010, 15:49

#32 Post by Mobeus »

Progress:

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

simargl

#33 Post by simargl »

.
Last edited by simargl on Sun 01 Sep 2013, 15:03, edited 1 time in total.

User avatar
Mobeus
Posts: 94
Joined: Thu 26 Aug 2010, 15:49

#34 Post by Mobeus »

Hi simargl,

Thanks, I’ll try that with /etc/rc.conf & let you know on your thread.
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.
:) 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.

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.
Great thing about openbox is ability to use
pipe menus, so applications list can be automatically generated every time
You mean like openbox-menu? I think my menu generator will work the same way. I’ll have to try it.

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" /> 
Regards
/root for the home team

User avatar
Mobeus
Posts: 94
Joined: Thu 26 Aug 2010, 15:49

#35 Post by Mobeus »

Progress:

Improved fluxbox menu generation.

Version 1 time

Code: Select all

# ./gen_pup_xdg fluxbox
1.193
Version 2 time

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 
Much better. I can live with that.
/root for the home team

Post Reply