From dc8bd04c2e8d4317988b607e4bd57bc336b2010d Mon Sep 17 00:00:00 2001 From: mobinmob Date: Sun, 22 Sep 2019 20:21:31 +0300 Subject: [PATCH] xdgmenumaker: fix deps, enable python3, use build_style, install manpage --- srcpkgs/xdgmenumaker/files/xdgmenumaker.1 | 464 ++++++++++++++++++++++ srcpkgs/xdgmenumaker/template | 17 +- 2 files changed, 472 insertions(+), 9 deletions(-) create mode 100644 srcpkgs/xdgmenumaker/files/xdgmenumaker.1 diff --git a/srcpkgs/xdgmenumaker/files/xdgmenumaker.1 b/srcpkgs/xdgmenumaker/files/xdgmenumaker.1 new file mode 100644 index 00000000000..062696370a8 --- /dev/null +++ b/srcpkgs/xdgmenumaker/files/xdgmenumaker.1 @@ -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\fR element: + +.nf + + xdgmenumaker -nif compizboxmenu + applications-other + Applications + +.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: + +exec: xdgmenumaker \-n \-i \-f jwm + +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: + +jwm \-reload + +.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 + +.\" 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 diff --git a/srcpkgs/xdgmenumaker/template b/srcpkgs/xdgmenumaker/template index 453c1584565..bc6b0bf7593 100644 --- a/srcpkgs/xdgmenumaker/template +++ b/srcpkgs/xdgmenumaker/template @@ -1,21 +1,20 @@ # 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 " 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}/xdgmenumaker.1 }