Merge pull request #586 from onekk/master

New Package: obmenu-generator perl script to auto generate openbox menu especially applications menu
This commit is contained in:
Juan RP 2014-10-11 09:29:01 +02:00
commit 791a3e4068
3 changed files with 150 additions and 0 deletions

View File

@ -0,0 +1,76 @@
README.void
To properly use obmenu-generator in void linux you have to tweak
two files:
A config file, auto generated by obmenu-generator:
~/.config/obmenu-generator/config.pl
The Schema file that you have to copy from:
/etc/xdg/obmenu-generator/schema.pl
in:
~/.config/obmenu-generator/schema.pl
Both files are well documentend into the code.
Read also the comments in the code of
/usr/bin/obmenu-generator
(it's a perl script) for more advanced use.
Modify ~/.config/obmenu-generator/schema.pl according to your
needs to adapt the categories names to your language after theese lines
{sep => "desidered name of the submenu"}, (see below for the default).
<begin code extract>
{sep => 'Applications'},
# NAME LABEL ICON
{cat => ['utility', 'Accessories', 'applications-utilities']},
{cat => ['development', 'Development', 'applications-development']},
<end code extract>
The LABEL column is the place where you localize the names.
If you want to use a schema to provide only an application submenu, in
the doc dir you will find tje file "schema.pl.app" already tailored for
this use.
The config.pl is created by obmenu-generator but you may want to customize
the language of the auto generated names, for that you have to modify a line
near the end, modifying the "name_keys" key to read as follow (substituing
the [it] to your preferred language code).
"name_keys" => ['Name[it]', 'GenericName[it]', 'Name'],
Accordig to the criptic comment in the script the modifications you have done
do in the config.pl may be overridden by the program itself, so be prepared
to rewrite every line you modify in the config.pl file from time to time
(it is better to copy the config.pl in the ~/.config/obmenu-generator dir
config.pl.mine as a backup copy when you have done the personalisations).
After you have done all your modification, insert this line in your Openbox
menu.xml where you want the menu will be:
<menu id="obmenu-generator" label="<Your Menu Name>" execute="/usr/bin/obmenu-generator -i"/>
Then do openbox -reconfigure (or use the menu entry that usually come with
openbox) and enjoy your new application menu.
The script is very powerful and has many other use even to autogenerate a
menu.xml, read the documentation and better the comments that are more up to
date at:
http://trizenx.blogspot.ro/2012/02/obmenu-generator.html
Happy obmenu-generator!
The Void Mantainers

View File

@ -0,0 +1,51 @@
#!/usr/bin/perl
# obmenu-generator - schema file
=for comment
item: add an item inside the menu {item => ["command", "label", "icon"]},
cat: add a category inside the menu {cat => ["name", "label", "icon"]},
sep: horizontal line separator {sep => undef}, {sep => "label"},
pipe: a pipe menu entry {pipe => ["command", "label", "icon"]},
raw: any valid Openbox XML string {raw => q(xml string)},
begin_cat: begin of a category {begin_cat => ["name", "icon"]},
end_cat: end of a category {end_cat => undef},
obgenmenu: generic menu settings {obgenmenu => ["label", "icon"]},
exit: default "Exit" action {exit => ["label", "icon"]},
=cut
# NOTE:
# * Keys and values are case sensitive. Keep all keys lowercase.
# * ICON can be a either a direct path to an icon or a valid icon name
# * Category names are case insensitive. (X-XFCE and x_xfce are equivalent)
require "$ENV{HOME}/.config/obmenu-generator/config.pl";
## Text editor
my $editor = $CONFIG->{editor};
our $SCHEMA = [
{sep => 'Applications'},
# NAME LABEL ICON
{cat => ['utility', 'Accessories', 'applications-utilities']},
{cat => ['development', 'Development', 'applications-development']},
{cat => ['education', 'Education', 'applications-science']},
{cat => ['game', 'Games', 'applications-games']},
{cat => ['graphics', 'Graphics', 'applications-graphics']},
{cat => ['audiovideo', 'Multimedia', 'applications-multimedia']},
{cat => ['network', 'Network', 'applications-internet']},
{cat => ['office', 'Office', 'applications-office']},
{cat => ['other', 'Other', 'applications-other']},
{cat => ['settings', 'Settings', 'applications-accessories']},
{cat => ['system', 'System', 'applications-system']},
#{cat => ['qt', 'QT Applications', 'qtlogo']},
#{cat => ['gtk', 'GTK Applications', 'gnome-applications']},
#{cat => ['x_xfce', 'XFCE Applications', 'applications-other']},
#{cat => ['gnome', 'GNOME Applications', 'gnome-applications']},
#{cat => ['consoleonly', 'CLI Applications', 'applications-utilities']},
]

View File

@ -0,0 +1,23 @@
# Template file for 'obmenu-generator'
pkgname=obmenu-generator
version=0.60
revision=1
noarch=yes
maintainer="Carlo Dormeletti <carlo(dot)dormeletti(at)alice(dot)it>"
homepage="http://trizenx.blogspot.ro/2012/02/obmenu-generator.html"
license="GPL-3"
short_desc="Perl Script to generate Openbox menu"
depends="perl>=5.20 perl-Linux-DesktopFiles"
distfiles="https://github.com/trizen/${pkgname}/archive/${version}.tar.gz"
checksum="437cca97b3225b0dc5dc642c797ad30b7f1fe6024b9c6272fb6c6ed6c84c9643"
do_install() {
vbin obmenu-generator
vmkdir /etc/xdg/${pkgname}
vinstall schema.pl 644 /etc/xdg/${pkgname}
vdoc README.md
vdoc ${FILESDIR}/README.void
vdoc ${FILESDIR}/schema.pl.app
}
# vim: set ts=4 sw=4 sts=4 et: