Fix gratuitous "Debian" level pulled in from automatic debian application menu?
[moved here from #2 (comment 7118) ]
In another place Urban Wallasch wrote:
Speaking of the menu: there is still the issue to be solved how to remove the useless and annoying "Debian" layer in the automatic application menus provided by the menu package. I'm not sure if this is feasible without patching the menu package (which would probably break everything else that uses it. I'll have to investigate more.
I am not sure if i understood correctly, but i see no problem at all: jwm in the first place will always point to a ~./jwmrc If we use a $HOME/.jwmrc by default (and i think that one i gave is an excellent one) the debianized version in /etc/jwm is overruled. No need to patch or something else. At least, for me it worked this way.
As an example i can tell you about Salix Fluxbox flavour (Salix is built on top of slackware; by gapan & others): It installs by default a fluxbox menu with xdgmenumaker included.
So, as i it see, we could offer a default menu (open to any change by the user using the jwmconf script) looking like this:
-----> ufw -----> plank -----> printer -----> java -----> .......
-----> JWM -----> .......
Logout (=oblogout or cb-exit script)
That's only an idea, open to any change, of course. As for the help section: I think the browser could be used to do that all. It can open links as well as local documents, correct?
I think we might have a misunderstanding here:
The task-jwm-desktop is not intended to "undebianize" the JWM package by providing a hacked ~/.jwmrc to the user, but on the contrary to better integrate the thing into how things work in the distribution as a whole. This should obviously include a menu that is automatically kept up to date, whenever an application is (un)installed, just like for the other DEs. Another important purpose is of course to recommend / suggest additional packages to be installed and integrated in the desktop.
Otherwise, what would be the purpose of having the task package, anyway?
[quote]This should obviously include a menu that is automatically kept up to date, whenever an application is (un)installed, just like for the other DEs. [/quote]
That would be the purpose of xdgmenumaker.
The default jwm menu is done by: /etc/jwm/system.jwmrc + debian-menu which automatically come installing jwm from the repositories (jessie). Do you consider it as a hack, when you use the default capability of jwm to point to ~/.jwmrc ?
I'd think it's pretty simple to "overrule" the default menu structure and to have a way way more articulated - AND HANDY!!! - menu.
Btw, and only a footnote: i would like to point you to the, IMHO, nearly genial because so simple tray configuration: The button places (=root:7) opens pcmanfm as user,pcmanfm as root, pcmanfm applications, pcmanfm devices, pcmanfm trash. There is indeed no need anymore for icons on the desktop, with those 5 options ALWAYS and from any application available options!
That would be the purpose of xdgmenumaker.
I am unable to locate xdgmenumaker in the Devuan repositories. Notwithstanding that: Will it run automatically, when the user installs / removes software?
Do you consider it as a hack, when you use the default capability of jwm to point to ~/.jwmrc
- you invade the users home directory without need
- that way you are cut off from the mechanisms provided by the distribution
- the user is left alone with an aging config file local to only his home directory
- you would have to create a new Devuan package to hold all the config stuff. (I for one am not up to this task.)
All of that is fine when done manually by the user (our how-to's), but it's not how the task-*-desktop packages work.
As for the ~/.jwmrc : I see your point and i agree :)
(Would it be the same, if we change during the installation the /etc/jwm/debian-menu file, at least that one?)
xdgmenumaker (no menumaker as far as i can see) is not in the repositories. It can be found here
As for the jwmconf, i do not find any public download; may be i'm blind. Could you, when you have time, try the jwm configuration manager which is on the github of Israel Dahl?
/etc/jwm/debian-menuwon't do much, at least not for long, according to this comment:
<!-- Automatically generated and updated. Do not touch -->
Tools not in the repository are of no use for our purposes, unless we package them and thus make them available from the repository.
Man, this turns out to be much more tricky than naive me had thought. I definitely have to do much more investigation on the possibilities to customize jwm in the most non-intrusive way. (This may take some time though, because I will be quite busy with other stuff during the next days or even weeks.)
(JFTR, again, for an unofficial(!) live CD these constraints may not apply.)
Well, there's "contrib". But still someone has to make and maintain the package. Plus, one could not refer from a package (e.g. task-jwm-desktop) in "main" to something in e.g. "contrib", AFAIK.
So, no gain, only loss, and even more work to do.
Urban, excuse my naivity, but may be for the menumaker i have aan idea: Could we use the following pcmanfm command
translate it into a jwm compliant text text file by a small script and then insert into the include section in ~/.jwm/menu ?
In that case, the xdgmenumaker problem would be solved :)
That would probably be possible, but it might even be easier to just use a stripped version of /etc/jwm/debian-menu . One of the main problem stays though: How and when does it get updated? On each login? Periodically? When the debian-menu file has changed? Manually?
EDIT: One more problem: this way there would be a hard dependency on pcmanfm \xe2\x80\x94 not good. /EDIT
I will have to look into the jwm package once more. I wonder if it's possible to patch out the additional "Debian" menu level. At the very least it should be renamed to "Devuan" anyway. So probably no way around forking the jwm package. Would make other tweaks easier too, I believe.
EDIT2: Ok, found it! The jwm package drops a script in /etc/menu-methods. This script gets triggered externally and rebuilds /etc/jwm/debian-menu when run. That's the script we would have to modify to get a saner menu structure. /EDIT2
Great!!! I'll go to ask in pcmanfm forum how exactly the menu function works. I'd presume it uses a simple routine to "grep" the freedesktop xdg menu ...
The xdgmenumaker python script here attached. May be you can have a look at ... Default location is /usr/bin/local
I'll try to make an alternative devuan-menu up to thursday. I think it's easy, you could put the debian-menu in a subdirectory and make, for the default installation, a "hard" coded menu, which depends on what applications will be installed by the installer.
What's curious: hellekin told me about the default fonts for Devuan. They are:
Source Code Pro (for fixed space)
But both are NOT in the repositories (Source Code Pro is even, a free, Adobe Font). How that?Edited by E. Ninger
Err, why would we need xdgmenumaker, or the some pcmanfm (it's installation will be optional anyway) functionality, or any hard-coded menu, now that it's clear that only the jwm package has to be modified to get a decent and automatically updated application menu?!
And even if we want to modify the basic menu, that again would have to be done in the jwm package!
Re fonts: They are in the repos; have a look at the texlive-fonts-extra package.
[quote]Re fonts: They are in the repos; have a look at the texlive-fonts-extra package.[/quote]
Just to learn something: How did you find out this? I searched with synaptic to no result ...
You'd usually use
apt-file search filenameor
apt-file search /path/to/filefor that. Unfortunately it's currently broken and in the process of being fixed in Devuan. So I just went with a quick web search for "debian open sans", which instantly brought me to the relevant page on
I see. But that package is enormous: 960 MB to download! Can you force a user to do that? Or would there be reasonable ways to extract only the 2 fonts needed from the package? Either for a livecd iso or for an installation task?
For a live CD basically anything is possible. But this is not possible for an installation task, unfortunately.
Urban, you said:
"Err, why would we need xdgmenumaker, or the some pcmanfm (it's installation will be optional anyway) functionality, or any hard-coded menu, now that it's clear that only the jwm package has to be modified to get a decent and automatically updated application menu?!"
I do not understand, when you say: "automatically updated". That's beyond my knowledge of jwm? Yes, we can manually update (and fork) the default jwm debian menu. But HOW it would get updated automatically?
That's not a functionality in JWM per se, it's part of the debian jwm package. During installation a script is placed in
/etc/menu-methods/jwm, which is called whenever "update-menus" is called, e.g. during a package installation via apt. That way, the jwm->debian menu is always up to date WRT the installed applications.
That's one reason why we only need to "fix" this script to get rid of the gratuitous level in the ugly Debian menu. I never had to manually update any menus in any DE in Debian.
I understand, indeed, my "/etc/jwm/debian-menu" - although not used, since overwritten, by my local setup - takes care of all added apps. Only one small point - for the eye candy: Do you see a way if (and how) that script can take care of the icons (that's the nice of xdgmenumaker: it pulls in the icons).
For the rest, i'll try that way out for a moment, just to see, if and how it gets actualized (i think there will be needed always one user action: ' jwm -restart' to make it reload the configs).
I'll try to change the jwm default menu consequentely - for the moment without icons. Then we can see how to fix/fork ...
Ok. I read the debian menu configuration files and - it's a terrible mess, imho, of course. See here: file:///usr/share/doc/menu/html/ch3.html (paragraph 3.5 the authorative debian menu sections list). In /usr/share/menu any app has its own file but that are by far not all apps available). I do not see really how the debian section list could be overwritten by a more human section organization???? :-(((
The only reasonable way would be to find out HOW (if at all (????)) the configuration for update-menu could be changed so, that we will have a a result
the xdg-menu sections (which are created nicely by xdgmenumaker, btw); they should look like this:
And hopefully all the awkwarded Debian stuff at the best would go - hidden!! - into a submenu of System called Debian. So it would not hurt at a first glance (moreover the debian way (menu-updater + menu-install) does not work really well, it glitches over several applications which exist in /usr/share/applications and are picked up correctly by xdgmenumaker on the other hand).
As I see it, it should be possible to fix / enhance the /etc/menu-methods/jwm script, so that only the Debian menu entries exist (which, BTW are exactly those you listed above :-), just without the annoying interposed "Debian" submenu entry, and all applications are picked up correctly.
It should also be feasible to fix the icon issue in that script; I'll have to check and confirm though.
If so fine.
Me, after playing with the settings for some hrs, i am unable to find out how :-(
But, i'm not sure: When is use the debian-menu (for include) i get this:
Debian --> Anwendungen
--> Audio --> Barrierefreiheit --> Betrachter --> Dateiverwaltung --> Editoren --> Grafik --> Netzwerk --> Programmierung --> Shells --> System --> Terminalemulatoren --> Text --> Video --> Werkzeuge --> Wissenschaft
Which is pretty much unusable for a normal user experience (moreover the listing in the sections partially is free of any logic (colorpicker is in Werkzeuge, gpick in Graphics - just as an example!).Edited by E. Ninger