The officially official Devuan Forum!

You are not logged in.

#1 2019-11-07 10:24:19

Registered: 2019-07-12
Posts: 15  

Question about XDG menus

Hello folks,

I've been questioning #debian these days with this matter but since I got no answer I thought I should ask here too.

I am looking for a solution to have the menus in icewm and windowmaker show the same apps the "modern" DEs show (XFCE, LXQT, ...). The menus in icewm and windowmaker look very strange, some (many) apps are missing, instead there are useless items like xclock, xeyes, ...

This is what I found out so far:
- there are two "standards", the old one is using the entries in /usr/share/menu
- the new standard (or the XDG one) is using the entries in /usr/share/applications

What I tried:
- I installed menu and menu-xdg
- I ran update-menus

But the menus look just like before. The thing is, I don't need at all the old standard, I just want the XDG one. I don't need to see in the menu xclock and xeyes, I don't use them anyway smile

And now a little rant: on my laptop I use Mageia, it's a very nice distro, too bad that systemd ruins it. Windowmaker and icewm look wonderful there, the menus are "XDG-only", but I can't figure out how they did it. They don't even have a /usr/share/menu directory!

Hopefully someone will have a clue about this. Thanks!


#2 2019-11-07 14:04:59

From: Madrid, Spain
Registered: 2019-01-13
Posts: 231  

Re: Question about XDG menus

Looking forward for any answer to this question. I used time ago IceWM, still like it, and thought that is a good idea implement in IceWM the XDG menu structure. When I used IceWM, I edited their menu by hand.


#3 2019-11-07 17:32:33

From: London
Registered: 2019-03-24
Posts: 2,386  

Re: Question about XDG menus

Both icewm & windowmaker use the Debian menu system, see … l/ch6.html for the override methods.

EDIT: openbox can generate XDG menus on-the-fly using the openbox-menu package and this pipemenu entry:

<menu id="applications-menu" label="Applications" execute="/usr/bin/openbox-menu -i"/>

But this is not possible with icewm or windowmaker, AFAICT.

Last edited by Head_on_a_Stick (2019-11-07 17:34:27)

To obtain a root shell use su -. Using just su will result in "command not found" messages.


#4 2019-11-10 01:10:49

Registered: 2018-02-04
Posts: 204  

Re: Question about XDG menus

The Debian menu system predates the standard of "XDG." I personally like some of the fd.o published specs (not to be confused with "standards") but others might be concerned because fd.o has published plenty of projects we disdain around here. The XDG menu stuff is fine, in my opinion, and it sounds like you have come across the same point of view.

I personally use Fluxbox and I have half-heartedly tried to use various projects and gave up. I guess application discovery just wasn't that important for my use cases.

Here are the examples for a project named "xdg-menu" from the Arch Wiki.

With xdg_menu

$ xdg_menu --format icewm --fullmenu --root-menu /etc/xdg/menus/ >>~/.icewm/programs

With update-menus

  • Uncomment icewm in /etc/update-menus.conf

  • run update-menus as root

  • make symlink to /var/cache/xdg-menu/icewm/programs in ~/.icewm/programs

With xdg_menu

$ xdg_menu --format WindowMaker --root-menu /etc/xdg/menus/ >my-wm-menu

and add

#include "my-wm-menu"

into your WindowMaker menu file.
You can also use the WPrefs "Application Menu Definitions", and add the xdg command as a parameter in a "Generated Submenu" object.
With update-menus

  • Uncomment WindowMaker in /etc/update-menus.conf

  • run update-menus as root

  • add

    #include "/var/cache/xdg-menu/WindowMaker/wmrc"

    into your menu file.

This space intentionally left blank.


#5 2019-12-11 18:24:33

Registered: 2019-10-06
Posts: 3  

Re: Question about XDG menus

Have a look at MenuMaker.

"MenuMaker is a menu generation utility for X window managers on *NIX systems. It is capable of finding lots of installed programs and generating a root menu consistent across all supported X window managers, so one will get (almost) the same menu no matter which window manager is used."


#6 2019-12-11 19:02:43

Registered: 2019-10-21
Posts: 66  

Re: Question about XDG menus

Head_on_a_Stick wrote:

this is not possible with icewm or windowmaker, AFAICT.

icewm can be kept up to date, but i think it has to be restarted then (with x and your applications still running.)

i have used openbox but i dont know exactly what "on the fly" means in this context, so i dont know if icemw is capable of the same. it can be triggered after apt installs new programs.

monopolies are able to change free software so it better serves their freedom than ours.

why is that so difficult to prove to many free software advocates, and what is it that stops them from caring?


#7 2019-12-11 22:00:36

Registered: 2016-12-05
Posts: 1,217  

Re: Question about XDG menus

There's also xdgmenumaker. I haven't tried it on icewm since I don't use it, but I have used it on fluxbox and jwm, and it works great on them. It says that it works with icewm too.

I have been Devuanated, and my practice in the art of Devuanism shall continue until my Devuanization is complete. Until then, I will strive to continue in my understanding of Devuanchology, Devuanprocity, and Devuanivity.

Veni, vidi, vici vdevuaned. I came, I saw, I Devuaned. wink


#8 2020-01-21 13:28:43

Registered: 2018-02-04
Posts: 204  

Re: Question about XDG menus

Would there be interest in the Devuan community for a maintainer of an xdgmenumaker dpkg? I like it enough that I am willing to read through the process for how to be a maintainer, and volunteer to participate if I can agree with all the T&Cs, if there is enough community desire for the package.

In the mean time, I've built it on my OBS: … gmenumaker if people want an easy download. My package adds a trigger on /usr/share/applications, and a corresponding postinst script:

# xdgmenumaker postinst

case "$1" in
      Xvfb :18 &
      export DISPLAY=:18
      for word in fluxbox ;
         /usr/bin/xdgmenumaker -f "${word}" -i > "/etc/xdgmenumaker/${word}" 2>/dev/null
      kill $result

Which could easily be adapted to just run for any set of WMs.

A weakness this has, is that it is run as root, and therefore will not make a single suitable fluxbox menu file that also reads the users' $XDG_DATA_DIR or similar values. So in my ~/.fluxbox/startup file I have:

/usr/bin/xdgmenumaker -f fluxbox -i > ~/.fluxbox/xdg-menu &

And of course in ~/.fluxbox/menu

[begin] (fluxbox)
[include] (.fluxbox/xdg-menu)
#[include] (/etc/xdgmenumaker/fluxbox)
[include] (/etc/X11/fluxbox/fluxbox-menu)

This space intentionally left blank.


Board footer