Flat menu in xfce

Hi,

I’m testing again 12.1 in one of my spare partitions. One of the things I don’t like is that the
menu in XFCE is flat, only has two levels. In my 11.4 I have three or more levels; this has a a
consequence that the menu shows less entries.

For example, here I have “internet” and under it a few entries. In 11.4 Internet contains “browser”,
“email”, etc, and all those contains contain more entries.

Is there something I missed? I have the vague recollection that there was a setting for this, but I
can not yet access my collection of notes in 11.4 from this 12.1 test install.

(12.2 has the same problem)


Cheers / Saludos,

Carlos E. R.
(from 12.1 “Asparagus” GM (bombadillo))

Yes … But I already expained to you everything you should know about XDG menus. If you don’t believe me, read the freedesktop documentation. You can do anything you want with menus on any XDG compliant desktop, including KDE, Gnome (fallback though), LXDE and XFCE with a little bit of work. Don’t expect the distros to revert to traditional menus (the world has changed and has to fit in a tricorder screen now). So it’s not a bug -as usual - it’s a decision.

Hope this screenshot (Xfce + opensuse 12.1) can inspire you:

http://desmond.imageshack.us/Himg84/scaled.php?server=84&filename=xfcexdg.png&res=crop](ImageShack - Best place for all of your image hosting and image sharing needs)

  • This is far from the default menus. If you want to organize menus - among other things - under Linux nowadays, you have to be a rebel and do it yourself.
  • Pay particularly attention to the XDG_MENU_PREFIX and check the files in /etc/xdg/menus (on default install - mine are somewhere else).

On 2012-08-07 05:56, please try again wrote:
>
> robin_listas;2478742 Wrote:
>>
>> Is there something I missed?
>>
>
> Yes … But I already expained to you everything you should know about
> XDG menus.

I remember “someone” told me about it, but as I said, this is a test system and I have not access to
all my notes. This is probably a message stored in my local folder of Thunderbird in the 11.4 main
system. O:-)

I remember you told me about it but not what you told me. My memory is not as good as it was. I
think you told me to change a setting and my menus went back to several depths. If I could remember
the tittle of that thread I’d search for it again (I searched by “menu” in this subforum, no hit)

> If you don’t believe me, read the freedesktop documentation.
> You can do anything you want with menus on any XDG compliant desktop,
> including KDE, Gnome (fallback though), LXDE and XFCE with a little
> bit of work. Don’t expect the distros to revert to traditional menus
> (the world has changed and has to fit in a tricorder screen now). So
> it’s not a bug -as usual - it’s a decision.

But XFCE has traditional menus only.

>
> Hope this screenshot (Xfce + opensuse 12.1) can inspire you:

Well, I have “XDG_MENU_PREFIX=xfce-”.

>
> ‘[image:
> http://desmond.imageshack.us/Himg84/scaled.php?server=84&filename=xfcexdg.png&res=crop]’
> (http://img84.imageshack.us/img84/4871/xfcexdg.png)
>
> * This is far from the default menus. If you want to organize menus -
> among other things - under Linux nowadays, you have to be a rebel and do
> it yourself.
> * Pay particularly attention to the XDG_MENU_PREFIX and check the files
> in /etc/xdg/menus (on default install - mine are somewhere else).

A quick look appears to show that they have several layers. And that variable appears to be
correctly set, same as yours.


Cheers / Saludos,

Carlos E. R.
(from 12.1 “Asparagus” GM (bombadillo))

Then it should use /etc/xdg/menus/xfce-applications.menu. So the menus should match the ones defined in this file, and the entries are the .destkop files in $XDG_DATA_DIRS/applications which have one or more “category” included it the menu. This is not XFCE specific. It’s XDG standard.

On 2012-08-07 14:46, please try again wrote:
>
> robin_listas;2478793 Wrote:
>>
>> A quick look appears to show that they have several layers. And that
>> variable appears to be
>> correctly set, same as yours.
>>
>
> Then it should use /etc/xdg/menus/xfce-applications.menu.

It doesn’t show an application menu. Or that file is the root of the menu?

I have:

Accesories
Games
Graphics
Internet
Multimedia
Office
Other
System

Settings

Run program
Help
About xfce
Log out.

If I look, for example, at the multimedia section of the file you say, I read:


<Menu>
<Name>Multimedia</Name>
<Directory>xfce-multimedia.directory</Directory>
<Include>
<Category>Audio</Category>
<Category>Video</Category>
<Category>AudioVideo</Category>
<Category>DiscBurning</Category>
</Include>
<Exclude>
<Category>Settings</Category>
</Exclude>
</Menu>

so I understand I should have those submenus - but I don’t have any of those in the section. I
instead have audio cd extractor, brasero, gmixer…

I don’t know how menus work, but I understand that in XFCE I should see those audio, video, etc. And
I don’t. :-?

I can add to my panel an “applications menu”, but it has the same contents of the “openSUSE menu”. I
can edit it, but I see nowhere the categories of the xfce-applications.menu file.

So the menus
should match the ones defined in this file, and the entries are the
.destkop files in $XDG_DATA_DIRS/applications which have one or more
“category” included it the menu. This is not XFCE specific. It’s XDG
standard.


cer@bombadillo:~> env | grep XDG_DATA_DIRS
XDG_DATA_DIRS=/usr/share:/usr/share

Should I have something different?


Cheers / Saludos,

Carlos E. R.
(from 12.1 “Asparagus” GM (bombadillo))

There is no ‘application’ menu in the default setup - which reads the menus from /etc/xdg/menus/xfce-applications.menu.
The output of the following grep is empty:

$ grep -i applications /etc/xdg/menus/xfce-applications.menu

There is an ‘application’ menu in my screenshot because I use my own menu file (see the value of XDG_CONFIG_DIRS which points to the menu file).


$ grep -i applications /usr/local/config/xdg/menus/xfce-applications.menu
 <Menuname>Applications</Menuname>
                <Name>Applications</Name>
                <Directory>Applications.directory</Directory>
                        <Name>Applications-Emulators</Name>
                                <Name>Applications-Emulators-DosEmu</Name>
                                        <Category>X-Applications-Emulators-DosEmu</Category>
                                <Name>Applications-Emulators-Nx</Name>
                                        <Category>X-Applications-Emulators-Nx</Category>
                                <Name>Applications-Emulators-Qemu</Name>
                                        <Category>X-Applications-Emulators-Qemu</Category>
                                <Category>X-Applications-Emulators</Category>
                        <Name>Applications-Editors</Name>
                                <Name>Applications-Editors-Kde</Name>
                                        <Category>X-Applications-Editors-Kde</Category>
                                <Name>Applications-Editors-Gnome</Name>
                                        <Category>X-Applications-Editors-Gnome</Category>
                                <Name>Applications-Editors-Xfce</Name>
                                        <Category>X-Applications-Editors-Xfce</Category>
                                <Name>Applications-Editors-Lxde</Name>
                                        <Category>X-Applications-Editors-Lxde</Category>
                                <Category>X-Applications-Editors</Category>
                        <Name>Applications-Graphics</Name>
                                <Name>Applications-Graphics-Raster</Name>
                                        <Name>Applications-Graphics-Raster-Kde</Name>
                                                <Category>X-Applications-Graphics-Raster-Kde</Category>
                                        <Name>Applications-Graphics-Raster-Gnome</Name>
                                                <Category>X-Applications-Graphics-Raster-Gnome</Category>
                                        <Name>Applications-Graphics-Raster-Xfce</Name>
                                                <Category>X-Applications-Graphics-Raster-Xfce</Category>
                                        <Category>X-Applications-Graphics-Raster</Category>
                                <Name>Applications-Graphics-Vector</Name>
                                        <Name>Applications-Graphics-Vector-Kde</Name>
                                                <Category>X-Applications-Graphics-Vector-Kde</Category>
                                        <Name>Applications-Graphics-Vector-Gnome</Name>
                                                <Category>X-Applications-Graphics-Vector-Gnome</Category>
                                        <Name>Applications-Graphics-Vector-Xfce</Name>
                                                <Category>X-Applications-Graphics-Vector-Xfce</Category>
                                        <Category>X-Applications-Graphics-Vector</Category>
                                <Name>Applications-Graphics-Tools</Name>
                                        <Name>Applications-Graphics-Tools-Kde</Name>
                                                <Category>X-Applications-Graphics-Tools-Kde</Category>
                                        <Name>Applications-Graphics-Tools-Gnome</Name>
                                                <Category>X-Applications-Graphics-Tools-Gnome</Category>
                                        <Name>Applications-Graphics-Tools-Xfce</Name>
                                                <Category>X-Applications-Graphics-Tools-Xfce</Category>
                                        <Category>X-Applications-Graphics-Tools</Category>
                                <Category>X-Applications-Graphics</Category>
                        <Name>Applications-Photos</Name>
                                <Name>Applications-Photos-Kde</Name>
                                        <Category>X-Applications-Photos-Kde</Category>
                                <Name>Applications-Photos-Gnome</Name>
                                        <Category>X-Applications-Photos-Gnome</Category>
                                <Name>Applications-Photos-Xfce</Name>
                                        <Category>X-Applications-Photos-Xfce</Category>
                                <Category>X-Applications-Photos</Category>
                        <Name>Applications-DTP</Name>
                                <Category>X-Applications-DTP</Category>
                        <Name>Applications-Math</Name>
                                <Name>Applications-Math-Kde</Name>
                                        <Category>X-Applications-Math-Kde</Category>
                                <Name>Applications-Math-Gnome</Name>
                                        <Category>X-Applications-Math-Gnome</Category>
                                <Category>X-Applications-Math</Category>
                        <Name>Applications-Misc</Name>
                                <Name>Applications-Misc-Kde</Name>
                                        <Category>X-Applications-Misc-Kde</Category>
                                <Category>X-Applications-Misc</Category>
                        <Name>Applications-CDBurning</Name>
                                <Category>X-Applications-CDBurning</Category>
                        <Name>Applications-Multimedia</Name>
                                <Name>Applications-Multimedia-Kde</Name>
                                        <Name>Applications-Multimedia-Kde-Players</Name>
                                                <Category>X-Applications-Multimedia-Kde-Players</Category>
                                        <Category>X-Applications-Multimedia-Kde</Category>
                                <Name>Applications-Multimedia-Gnome</Name>
                                        <Category>X-Applications-Multimedia-Gnome</Category>
                                <Name>Applications-Multimedia-Xfce</Name>
                                        <Category>X-Applications-Multimedia-Xfce</Category>
                                <Name>Applications-Multimedia-Lxde</Name>
                                        <Category>X-Applications-Multimedia-Lxde</Category>
                                <Name>Applications-Multimedia-Pulseaudio</Name>
                                        <Category>X-Applications-Multimedia-Pulseaudio</Category>
                                <Name>Applications-Multimedia-Radio</Name>
                                        <Category>X-Applications-Multimedia-Radio</Category>
                                <Category>X-Applications-Multimedia</Category>
                        <Name>Applications-Office</Name>
                                <Name>Applications-Office-Kde</Name>
                                        <Category>X-Applications-Office-Kde</Category>
                                <Name>Applications-Office-Gnome</Name>
                                        <Category>X-Applications-Office-Gnome</Category>
                                <Name>Applications-Office-OpenOffice</Name>
                                        <Category>X-Applications-Office-OpenOffice</Category>
                                <Category>X-Applications-Office</Category>
                        <Name>Applications-Databases</Name>
                                <Name>Applications-Databases-Gnome</Name>
                                        <Category>X-Applications-Databases-Gnome</Category>
                                <Category>X-Applications-Databases</Category>
                        <Name>Applications-Programming</Name>
                                <Name>Applications-Programming-Kde</Name>
                                        <Name>Applications-Programming-Kde-WebDevelopment</Name>
                                                <Category>X-Applications-Programming-Kde-WebDevelopment</Category>
                                        <Name>Applications-Programming-Kde-Translation</Name>
                                                <Category>X-Applications-Programming-Kde-Translation</Category>
                                        <Category>X-Applications-Programming-Kde</Category>
                                <Name>Applications-Programming-Gnome</Name>
                                        <Category>X-Applications-Programming-Gnome</Category>
                                <Name>Applications-Programming-Java</Name>
                                        <Category>X-Applications-Programming-Java</Category>
                                <Name>Applications-Programming-Python</Name>
                                        <Category>X-Applications-Programming-Python</Category>
                                <Name>Applications-Programming-QT</Name>
                                        <Category>X-Applications-Programming-QT</Category>
                                <Name>Applications-Programming-Mono</Name>
                                        <Category>X-Applications-Programming-Mono</Category>
                                <Category>X-Applications-Programming</Category>
                        <Name>Applications-Security</Name>
                                <Name>Applications-Security-Kde</Name>
                                        <Category>X-Applications-Security-Kde</Category>
                                <Name>Applications-Security-Gnome</Name>
                                        <Category>X-Applications-Security-Gnome</Category>
                                <Category>X-Applications-Security</Category>

  • Notice that it is NOT the xml code, just the output of a grep without context.

Yes. It’s normal. The menus in /etc/xdg/menus/xfce-applications.menu don’t have submenus. Compare with /etc/xdg/menus/applications.menu. This one has some submenus. To use this file, you have to unset XDG_MENU_PREFIX (or set it to an empty string) in your environment. You can do it in several different places. I set the XDG variables in the X init scripts (xinitrc or Xsession) at a system level. That’s what I told you to do for Gnome menus last year. It’s the same problematic.

Or you can write your menu file - it’s not that complicated. Look in the freedesktop documentation for the details (location and syntax of the .desktop and .directory files).

You won’t (usually) see program names in menu files. The applications are in /usr/share/applications and subdirectories (by default). I put mine in /usr/local/share/applications. The value of the "Categories’ key in the desktop files defines where the application should show up (in the menu which includes this category). An application can belong to several categories and so appear under several menus/submenus.

Now you know … but you will forget again… and I will explain again … or maybe not. lol!


$ grep -i -e audio -e video /etc/xdg/menus/applications.menu
                                <Not><Category>AudioVideo</Category></Not>
                                <Category>AudioVideo</Category>
                                <Category>Audio</Category>
                                <Category>AudioVideoEditing</Category>
                        <Directory>suse-multimedia-audiomixer.directory</Directory>
                        <Name>AudioVideoEditing</Name>
                        <Directory>suse-multimedia-audiovideoediting.directory</Directory>
                                <Category>AudioVideoEditing</Category>
                        <Name>VideoPlayer</Name>
                        <Directory>suse-multimedia-videoplayer.directory</Directory>
                                <Category>Audio</Category>
                                <Category>AudioVideo</Category>
                                <Category>Video</Category>
                                <Category>AudioVideo</Category>
                        <Name>AudioPlayer</Name>
                        <Directory>suse-multimedia-audioplayer.directory</Directory>
                                <Category>AudioVideo</Category>
                                <Not><Category>Video</Category></Not>
                                <Category>AudioVideo</Category>
                        <Name>AudioVideoRecorder</Name>
                        <Directory>suse-multimedia-audiovideorecorder.directory</Directory>
                                <Category>AudioVideo</Category>
                                <Category>AudioVideo</Category>
                                        <Category>AudioVideo</Category>
                                        <Category>AudioVideo</Category>
                                <Category>AudioVideo</Category>

You (the default) use the ‘wrong’ menu.

On 2012-08-07 17:56, please try again wrote:

> There is an ‘application’ menu in my screenshot because I use my own
> menu file (see the value of XDG_CONFIG_DIRS which points to the menu
> file).

Ah, yes, I think I got confused with that the previous time as well.

> * Notice that it is NOT the xml code, just the output of a grep without
> context.

Yes… and how did you create the file? Ah, you say that below.

>
>
> robin_listas;2478815 Wrote:
>>
>>
>> I have:
>>
>> Accesories
>> Games
>> Graphics
>> Internet
>> Multimedia
>> Office
>> Other
>> System
>> —
>> Settings
>> —
>> Run program
>> Help
>> About xfce
>> Log out.
>>
>>
>
> Yes. It’s normal. The menus in /etc/xdg/menus/xfce-applications.menu
> don’t have submenus. Compare with /etc/xdg/menus/applications.menu. This
> one has some submenus. To use this file, you have to unset
> XDG_MENU_PREFIX (or set it to an empty string) in your environment. You
> can do it in several different places. I set the XDG variables in the X
> init scripts (xinitrc or Xsession) at a system level. That’s what I told
> you to do for Gnome menus last year. It’s the same problematic.

Ah, unset!

Ok, I have changed the menu file in the extra application menu I added to the panel to the one you
say, and indeed, now I get the layered menu in there. I can now either delete the default menu or
unset the variable. Thanks. :-))

Or I may have both, and compare differences… In my custom menu I don’t have “log out”, for
example. I may need both.

> robin_listas;2478815 Wrote:
>>
>> I don’t know how menus work,
>>
>
> Now you know … but you will forget again… and I will explain again
> … or maybe not. lol!
>

O:-)

Sorry about that. Things I don’t use often I forget, and I do not have access to the saved posts
where I saved your post.

Spanish saying: “Man is the only animal that stumbles twice on the same stone”.

Or do I? (have access)… …] Found it! Directory
“/other/main/home/cer/.thunderbird/GARBLED.sequndus/Mail/Local
Folders/Interesting.sbd”. I can copy that to my local thunderbird. I restart Th and I should have
access. Or symlink it :-?

Ok, now I have access again to my interesting saved posts folder. :slight_smile:


Cheers / Saludos,

Carlos E. R.
(from 12.1 “Asparagus” GM (bombadillo))

Carlos,

I thought you might find this script useful: http://forums.opensuse.org/english/other-forums/development/programming-scripting/477295-showmenu-displays-content-desktop-files.html. So I posted it for you - and didn’t use bold in my post - exceptionally. :wink:

On 2012-08-09 04:06, please try again wrote:
>
> Carlos,
>
> I thought you might find this script useful:
> http://tinyurl.com/9trevob. So I posted it for you - and didn’t use bold
> in my post - exceptionally. :wink:

Wow, thanks :-))


Cheers / Saludos,

Carlos E. R.
(from 12.1 “Asparagus” GM (bombadillo))