xdgmenumaker: fix deps, enable python3, use build_style, install manpage
This commit is contained in:
parent
9750dc2d04
commit
02b02672c5
2 changed files with 474 additions and 9 deletions
464
srcpkgs/xdgmenumaker/files/1.5/xdgmenumaker.1
Normal file
464
srcpkgs/xdgmenumaker/files/1.5/xdgmenumaker.1
Normal file
|
@ -0,0 +1,464 @@
|
|||
.TH "xdgmenumaker" 1 "09/16/2018" "George Vlahavas"
|
||||
|
||||
.SH NAME
|
||||
.P
|
||||
xdgmenumaker \- generate XDG menus
|
||||
.SH SYNOPSIS
|
||||
.P
|
||||
\fBxdgmenumaker\fR [\fIOPTIONS\fR]
|
||||
.SH DESCRIPTION
|
||||
.P
|
||||
\fBxdgmenumaker\fR is a command line tool, written in python, that
|
||||
generates application menus using XDG information, by scanning
|
||||
*.desktop files in all \fI$XDG_DATA_DIRS/applications\fR directories. All
|
||||
applications are sorted according to the main categories as specified
|
||||
by
|
||||
freedesktop.org (http://standards.freedesktop.org/menu\-spec/latest/apa.html)
|
||||
.P
|
||||
The menu entries that are generated by \fBxdgmenumaker\fR are localised
|
||||
according to the running user locale settings.
|
||||
.P
|
||||
\fBxdgmenumaker\fR currently supports generating menus for:
|
||||
|
||||
.RS
|
||||
.IP \(bu 3
|
||||
amiwm
|
||||
.IP \(bu 3
|
||||
blackbox
|
||||
.IP \(bu 3
|
||||
compizboxmenu
|
||||
.IP \(bu 3
|
||||
fluxbox
|
||||
.IP \(bu 3
|
||||
fvwm
|
||||
.IP \(bu 3
|
||||
icewm
|
||||
.IP \(bu 3
|
||||
jwm
|
||||
.IP \(bu 3
|
||||
pekwm
|
||||
.IP \(bu 3
|
||||
twm and compatible derivatives such as ctwm and vtwm
|
||||
.IP \(bu 3
|
||||
windowmaker
|
||||
.RE
|
||||
.IP
|
||||
|
||||
.P
|
||||
\fBxdgmenumaker\fR requires \fIPython 2.7\fR or \fI3.x\fR, \fIpygtk\fR
|
||||
(for Python 2.7) or \fIpygobject\fR and \fIgobject\-instrospection\fR
|
||||
(for Python 3.x), as well as \fIpyxdg\fR. \fIPillow\fR is an optional
|
||||
dependency (used by the \fB\-\-max\-icon\-size\fR option).
|
||||
.SH OPTIONS
|
||||
|
||||
.TP
|
||||
\fB\-f, \-\-format\fR
|
||||
specify the output format to use. Valid options are \fIamiwm\fR, \fIblackbox\fR,
|
||||
\fIcompizboxmenu\fR, \fIfluxbox\fR, \fIfvwm\fR, \fIicewm\fR, \fIjwm\fR, \fIpekwm\fR,
|
||||
\fItwm\fR and \fIwindowmaker\fR.
|
||||
Specifying the output format is mandatory.
|
||||
|
||||
.TP
|
||||
\fB\-i, \-\-icons\fR
|
||||
enable support for icons in the menus. This option does not have any
|
||||
effect for \fIamiwm\fR, \fIblackbox\fR or \fIwindowmaker\fR menus.
|
||||
|
||||
.TP
|
||||
\fB\-s, \-\-size\fR
|
||||
set the preferred icon size in pixels. The default size is 16. You can
|
||||
set this to any number, but it generally makes sense to use standard
|
||||
icons sizes, like 16, 22, 24, 32 etc. Obviously this has an effect only
|
||||
if the \fI\-\-icons\fR option is used. You have to be careful with the sizes
|
||||
you use; some window managers don't support large icons in the menu.
|
||||
|
||||
.TP
|
||||
\fB\-n, \-\-no\-submenu\fR
|
||||
do not create a submenu. Instead, place the application categories menus
|
||||
in the window manager's main menu. This option does not have any effect
|
||||
for \fIwindowmaker\fR menus.
|
||||
|
||||
.TP
|
||||
\fB\-\-max\-icon\-size\fR
|
||||
restrict the maximum size for icons to the one specified with the
|
||||
\fI\-\-size\fR option. Any icons that are larger than the specified size
|
||||
will get discarded and will not be used.
|
||||
|
||||
.TP
|
||||
\fB\-\-no\-svg\fR
|
||||
do not use SVG icons even for the WMs that support it. Right now that
|
||||
is only JWM.
|
||||
|
||||
.TP
|
||||
\fB\-\-pekwm\-dynamic\fR
|
||||
create dynamic menus for pekwm. If you want to have dynamically
|
||||
generated menus for pekwm you have to use this option. Do not use it if
|
||||
you want to generate static menus for pekwm. Only works with \fIpekwm\fR
|
||||
of course.
|
||||
|
||||
.TP
|
||||
\fB\-\-twm\-titles\fR
|
||||
display menu titles in TWM menus. Naturally, only has an effect when
|
||||
used with \fItwm\fR.
|
||||
|
||||
.SH GENERAL OPTIONS
|
||||
|
||||
.TP
|
||||
\fB\-h\fR
|
||||
Prints a usage message briefly summarizing all command\-line options
|
||||
and exits.
|
||||
|
||||
.SH CONFIGURATION
|
||||
.P
|
||||
The terminal emulator to be used for menu entries that state that an
|
||||
application must be launched inside a terminal, can be specified in a
|
||||
\fI~/.config/xdgmenumaker.cfg\fR configuration file. Here's an example
|
||||
specifying \fBrxvt\fR as the default terminal emulator:
|
||||
|
||||
.nf
|
||||
[Terminal]
|
||||
terminal = rxvt
|
||||
.fi
|
||||
|
||||
|
||||
.P
|
||||
If no such file is present, or if no terminal is set within the file,
|
||||
xdgmenumaker will default to the one specified in the debian
|
||||
alternatives system on debian and debian\-like systems and to xterm in
|
||||
any other case.
|
||||
.P
|
||||
Setting the path to a terminal emulator in an \fIXDGMENUMAKERTERM\fR
|
||||
environment variable will override any other setting.
|
||||
.SH USAGE
|
||||
|
||||
.TP
|
||||
\fBAmiWM\fR
|
||||
|
||||
You can generate a menu for AmiWM, running xdgmenumaker like this:
|
||||
|
||||
$ xdgmenumaker \-f amiwm > ~/.amiwm\-xdgmenu
|
||||
|
||||
As AmiWM does not support including other files in its settings file,
|
||||
you'll have to copy the contents of the created file in your
|
||||
\fI~/.amiwmrc\fR. It should be possible to create a script that would
|
||||
generate the main \fI~/.amiwmrc\fR file from different "source" files, but
|
||||
I'll leave that as an exercise to the user.
|
||||
|
||||
.TP
|
||||
\fBBlackbox\fR
|
||||
|
||||
To generate an application menu for Blackbox, you can run
|
||||
\fBxdgmenumaker\fR like this:
|
||||
|
||||
$ xdgmenumaker \-f blackbox > ~/.blackbox/xdg_menu
|
||||
|
||||
and then change your main Blackbox menu to include this file as a
|
||||
submenu. For example, add this somewhere in your \fI~/.blackbox/menu\fR file:
|
||||
|
||||
[include] (~/.blackbox/xdg_menu)
|
||||
|
||||
You can add the \fBxdgmenumaker\fR command as another item in your menu,
|
||||
if you want to update it, without having to run the command manually
|
||||
again:
|
||||
|
||||
[exec] (Update Blackbox Menu) {xdgmenumaker \-f blackbox > ~/.blackbox/xdg_menu}
|
||||
|
||||
.TP
|
||||
\fBCompiz Boxmenu\fR
|
||||
|
||||
There are two ways to have an xdg menu in compiz\-boxmenu. The first one,
|
||||
auto\-updates the menu, every time the menu is called. The second one,
|
||||
updates the menu only when the user wants to.
|
||||
|
||||
\fBDynamic Menus\fR
|
||||
|
||||
Edit your \fI~/.config/compiz/boxmenu/menu.xml\fR file with your favorite text
|
||||
editor and add a block of code like this inside the root \fI<menu>\fR element:
|
||||
|
||||
.nf
|
||||
<item type="launcher">
|
||||
<command mode2="pipe">xdgmenumaker -nif compizboxmenu</command>
|
||||
<icon>applications-other</icon>
|
||||
<name>Applications</name>
|
||||
</item>
|
||||
.fi
|
||||
|
||||
|
||||
|
||||
Alternatively, you can also run \fBcompiz\-boxmenu\-editor\fR and click the
|
||||
dropdown for new menu files or menu items. Select launcher to create a
|
||||
new launcher. Set the name of the launcher to whatever you want. This will
|
||||
be the display name for the pipe menu. Then enter in:
|
||||
|
||||
xdgmenumaker \-nif compizboxmenu
|
||||
|
||||
for the command entry. Click the combobox
|
||||
next to the command text box and switch that to "Pipe".
|
||||
|
||||
\fBStatic Menus\fR
|
||||
|
||||
Edit your \fI~/.config/compiz/boxmenu/menu.xml\fR file with your favorite text
|
||||
editor and paste the output of:
|
||||
|
||||
$ xdgmenumaker \-if compizboxmenu
|
||||
|
||||
into \fI~/.config/compiz/boxmenu/menu.xml\fR.
|
||||
|
||||
Alternatively, you can also run \fBcompiz\-boxmenu\-editor\fR and click the
|
||||
button that says \fIGenerate menu entries from a pipemenu script\fR. In the dialog
|
||||
box that pops up, type in:
|
||||
|
||||
xdgmenumaker \-if compizboxmenu
|
||||
|
||||
to append the statically generated menu to any menu file you want.
|
||||
|
||||
.TP
|
||||
\fBFluxbox\fR
|
||||
|
||||
To generate an application menu for Fluxbox, you can run
|
||||
\fBxdgmenumaker\fR like this:
|
||||
|
||||
$ xdgmenumaker \-f fluxbox > ~/.fluxbox/xdg_menu
|
||||
|
||||
and then change your main Fluxbox menu to include this file as a
|
||||
submenu. For example, add this somewhere in your \fI~/.fluxbox/menu\fR file:
|
||||
|
||||
[include] (~/.fluxbox/xdg_menu)
|
||||
|
||||
You can add the \fBxdgmenumaker\fR command as another item in your menu,
|
||||
if you want to update it, without having to run the command manually
|
||||
again:
|
||||
|
||||
[exec] (Update Fluxbox Menu) {xdgmenumaker \-f fluxbox > ~/.fluxbox/xdg_menu}
|
||||
|
||||
.TP
|
||||
\fBFvwm\fR
|
||||
|
||||
To generate an application menu for Fvwm, you can run \fBxdgmenumaker\fR
|
||||
like this:
|
||||
|
||||
$ xdgmenumaker \-f fvwm > ~/.fvwm/xdgmenu
|
||||
|
||||
and then edit your main Fvwm configuration file and add a line to read
|
||||
that file:
|
||||
|
||||
read xdgmenu
|
||||
|
||||
and also include it somewhere in your main menu, for example:
|
||||
|
||||
.nf
|
||||
AddToMenu MenuFvwmRoot "Root Menu" Title
|
||||
+ "Applications" Popup xdgmenu
|
||||
.fi
|
||||
|
||||
|
||||
You could also put the menus for individual categories in your main menu
|
||||
if you want. Just look in the ~/.fvwm/xdgmenu file for the category
|
||||
names.
|
||||
|
||||
You can add the \fBxdgmenumaker\fR command as another item in your menu,
|
||||
if you want to update it:
|
||||
|
||||
+ "Update Fvwm Menu" Exec xdgmenumaker \-f fvwm > ~/.fvwm/xdgmenu
|
||||
|
||||
and restart Fvwm to apply the changes.
|
||||
|
||||
\fINOTE:\fR If you're going to use the \fI\-\-icons\fR option to include icons
|
||||
in your menus, you might consider using the \fI\-\-max\-icon\-size\fR
|
||||
option too. Fvwm does not resize icons in its menu and having entries
|
||||
with icons that are too big makes for funny looking menus.
|
||||
|
||||
.TP
|
||||
\fBIceWM\fR
|
||||
|
||||
To generate an application menu for IceWM, run \fBxdgmenumaker\fR like this:
|
||||
|
||||
$ xdgmenumaker \-f icewm > ~/.icewm/appmenu
|
||||
|
||||
or if you want icons in your menu:
|
||||
|
||||
$ xdgmenumaker \-i \-f icewm > ~/.icewm/appmenu
|
||||
|
||||
and you can then edit your \fI~/.icewm/menu\fR file and add this line
|
||||
somewhere:
|
||||
|
||||
include appmenu
|
||||
|
||||
You can add the \fBxdgmenumaker\fR command as another item in your menu, if
|
||||
you want to update it, without having to run the command manually again:
|
||||
|
||||
prog "Update Menu" _none_ xdgmenumaker \-i \-f icewm > ~/.icewm/appmenu
|
||||
|
||||
\fINOTE:\fR If you don't request icons in the menu, or if an icon is not found
|
||||
for a certain app, the icon name in the menu for that app is set to
|
||||
"_none_". This doesn't actually set the icon for that app to none.
|
||||
IceWM menu entries should always include an icon . So, by pointing it
|
||||
to a non existing icon, you essentially set it to use no icon. If you
|
||||
actually have an icewm icon named "_none_", that one will be used instead.
|
||||
|
||||
.TP
|
||||
\fBJWM\fR
|
||||
|
||||
You can edit your \fI~/.jwmrc\fR file and add a line that generates the
|
||||
applications menu, like this:
|
||||
|
||||
<Include>exec: xdgmenumaker \-n \-i \-f jwm</Include>
|
||||
|
||||
You need to put that line somewhere in the \fIRootMenu\fR section of the
|
||||
\fI~/.jwmrc\fR file.
|
||||
|
||||
You can update the menu with:
|
||||
|
||||
$ jwm \-reload
|
||||
|
||||
Or you can restart JWM and the updated menu should appear. The menu will be
|
||||
recreated every time JWM is started, restarted, or when the menu is
|
||||
reloaded with the above command. You can even add a menu item that will
|
||||
refresh the menu, like this:
|
||||
|
||||
<Program label="Refresh Menu">jwm \-reload</Program>
|
||||
|
||||
.TP
|
||||
\fBpekwm\fR
|
||||
|
||||
There are two ways to have an XDG menu in pekwm. The first one,
|
||||
auto\-updates the menu, every time the menu is called. The second one,
|
||||
updates the menu only when the user wants to.
|
||||
|
||||
\fBDynamic Menus\fR
|
||||
|
||||
Edit your \fI~/.pekwm/menu\fR file with your favourite text editor and add
|
||||
a line like the following one in the location that you want the
|
||||
dynamically generated menu to appear:
|
||||
|
||||
.nf
|
||||
Entry = "" { Actions = "Dynamic /usr/bin/xdgmenumaker -n -i -f pekwm --pekwm-dynamic" }
|
||||
.fi
|
||||
|
||||
|
||||
|
||||
Restart pekwm and the generated menu should appear. The menu will be
|
||||
automatically generated every time you access it, so it will always be
|
||||
up to date. But since xdgmenumaker will run every time you access the
|
||||
menu, the menu might not appear instantly, especially if you are using
|
||||
an older PC.
|
||||
|
||||
\fBStatic Menus\fR
|
||||
|
||||
Run:
|
||||
|
||||
$ xdgmenumaker \-n \-i \-f pekwm > ~/.pekwm/appsmenu
|
||||
|
||||
to create a file with the menu contents. Then edit your
|
||||
\fI~/.pekwm/menu\fR file to include that menu, by adding a line like the
|
||||
following, in the location that you want the menu to appear:
|
||||
|
||||
INCLUDE = "/home/your_user_name/.pekwm/appsmenu"
|
||||
|
||||
Restart pekwm and the generated menu should appear. The menu is static
|
||||
and if you add/remove any applications, you will have to run the
|
||||
xdgmenumaker command and restart pekwm all over again to update it. The
|
||||
advantage is that there will be no delay in displaying the menu.
|
||||
|
||||
.TP
|
||||
\fBTWM and Derivatives\fR
|
||||
|
||||
You can create a menu for TWM running \fBxdgmenumaker\fR like this:
|
||||
|
||||
$ xdgmenumaker \-f twm > ~/.twm\-xdgmenu
|
||||
|
||||
If you're using the standard TWM, then unfortunately you'll have to
|
||||
manually copy/paste the contents of the generated \fI~/.twm\-xdgmenu\fR file
|
||||
into your \fI~/.twmrc\fR manually. You could then add something like this
|
||||
to your main menu definition:
|
||||
|
||||
.nf
|
||||
"Applications" f.menu "xdgmenu"
|
||||
.fi
|
||||
|
||||
|
||||
|
||||
It could be possible to create a script that updates the menus inside
|
||||
the main \fI~/.twmrc\fR settings file, but I'll leave that as an exercise
|
||||
for the user.
|
||||
|
||||
If you're using CTWM or VTWM, instead of manually copy/pasting the menu
|
||||
contents into your settings file, you could just add an include line
|
||||
like this:
|
||||
|
||||
.nf
|
||||
sinclude(`/home/george/.twm-xdgmenu')
|
||||
.fi
|
||||
|
||||
|
||||
|
||||
\fINote:\fR In order for this to work with VTWM, \fBvtwm\fR has to be called
|
||||
with the \fI\-m\fR switch.
|
||||
|
||||
.TP
|
||||
\fBWindowMaker\fR
|
||||
|
||||
There are two ways to have an XDG menu in WindowMaker. The first one,
|
||||
auto\-updates the menu, every time the menu is called. The second one,
|
||||
updates the menu only when the user wants to.
|
||||
|
||||
\fBxdgmenumaker\fR uses utf8 encoding and localised strings by default
|
||||
and has been tested only with wmaker\-crm>=0.95.1. No idea if utf8 works
|
||||
properly with older WindowMaker versions.
|
||||
|
||||
\fBDynamic Menus\fR
|
||||
|
||||
Open the WindowMaker preferences tool. In the \fIApplication Menu Definition\fR
|
||||
section, add a \fIGenerated Submenu\fR in your menu, by dragging it
|
||||
in. Click on the menu item you just dragged in and in the preferences
|
||||
window, in \fICommand\fR, add:
|
||||
|
||||
xdgmenumaker \-f windowmaker
|
||||
|
||||
Save and close the preferences window.
|
||||
|
||||
That command will be run every time you access that submenu, so the
|
||||
application list in there will be always up to date. The downside is
|
||||
that with running this command every time, especially if
|
||||
you are on a very old PC, it might slow things down a bit. Even then it
|
||||
is probably not anything considerable.
|
||||
|
||||
\fBStatic Menus\fR
|
||||
|
||||
Run:
|
||||
|
||||
$ xdgmenumaker \-f windowmaker > ~/GNUstep/Defaults/xdg_menu
|
||||
|
||||
Then open the WindowMaker preferences tool and in the
|
||||
\fIApplication Menu Definition\fR section, add an
|
||||
\fIExternal Submenu\fR by dragging it in your menu.
|
||||
Click on the menu item you just dragged in and in the preferences
|
||||
window, in \fIPath for Menu\fR, add the location of the menu file you just
|
||||
created:
|
||||
|
||||
~/GNUstep/Defaults/xdg_menu
|
||||
|
||||
You can add the above mentioned \fBxdgmenumaker\fR command as another
|
||||
item in your menu, if you want to update it, without having to run the
|
||||
command manually again.
|
||||
In the \fIApplication Menu Definition\fR section in the WindowMaker
|
||||
preferences window, add a \fIRun Program\fR item in your menu by dragging it
|
||||
your menu. Click on the menu item you just dragged in and in the
|
||||
preferences window, in \fIProgram to Run\fR, add the \fBxdgmenumaker\fR command as
|
||||
mentioned above.
|
||||
|
||||
The downside of this method, is that the menu contents will not be
|
||||
updated when you install a new application or remove one. You will need
|
||||
to run the xdgmenumaker command every time you want the menu to be
|
||||
updated. The upside is that the menu will not be generated every time
|
||||
you access the menu. This might be a better choice for (really) older
|
||||
hardware.
|
||||
|
||||
.SH WEBSITE
|
||||
.P
|
||||
https://github.com/gapan/xdgmenumaker
|
||||
.SH AUTHORS
|
||||
.P
|
||||
\fBxdgmenumaker\fR was written by George Vlahavas <vlahavas~at~gmail~dot~com>
|
||||
|
||||
.\" man code generated by txt2tags 2.6. (http://txt2tags.org)
|
||||
.\" cmdline: txt2tags /home/mobinmob/projects/void-packages/masterdir/builddir/xdgmenumaker-1.5/man/xdgmenumaker.t2t
|
|
@ -1,21 +1,22 @@
|
|||
# Template file for 'xdgmenumaker'
|
||||
pkgname=xdgmenumaker
|
||||
version=1.5
|
||||
revision=1
|
||||
hostmakedepends="make"
|
||||
depends="python3 python3-xdg pygtk python-gobject gobject-introspection"
|
||||
revision=2
|
||||
archs=noarch
|
||||
build_style=gnu-makefile
|
||||
depends="python3-xdg python3-gobject gobject-introspection python3-Pillow"
|
||||
short_desc="Automatic menu generator for WMs, such as, fluxbox, icewm, jwm, pekwm"
|
||||
maintainer="reback00 <reback00@protonmail.com>"
|
||||
license="GPL-3.0-or-later"
|
||||
homepage="https://github.com/gapan/xdgmenumaker"
|
||||
distfiles="https://github.com/gapan/${pkgname}/archive/${version}.tar.gz"
|
||||
checksum=a8319db5998ea1c49e52f6d04aad40334daea8047840c6762b4e7f02082b0573
|
||||
python_version=3
|
||||
patch_args="-Np1"
|
||||
|
||||
do_build() {
|
||||
make
|
||||
}
|
||||
|
||||
do_install() {
|
||||
make DESTDIR="${DESTDIR}" install
|
||||
pre_install() {
|
||||
# Install pre-generated man page
|
||||
vman ${FILESDIR}/${version}/xdgmenumaker.1
|
||||
# Install README.md as documentation
|
||||
vdoc README.md
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue