aboutsummaryrefslogtreecommitdiffstats
path: root/_config/openbox/scripts/xdg-menu
diff options
context:
space:
mode:
authorAaron LI <aaronly.me@gmail.com>2016-01-06 19:23:48 +0800
committerAaron LI <aaronly.me@gmail.com>2016-01-06 19:23:48 +0800
commit0fd3fb5eb258bb1bbf08ffd11bc43bde7722f06a (patch)
tree1fd5e3db4e9c7947889be60325046a5cc2c37388 /_config/openbox/scripts/xdg-menu
parent028ab301fe80c9ed872fe8ba4be2819648e30d97 (diff)
downloaddotfiles-0fd3fb5eb258bb1bbf08ffd11bc43bde7722f06a.tar.bz2
Rename .config => _config
Diffstat (limited to '_config/openbox/scripts/xdg-menu')
-rwxr-xr-x_config/openbox/scripts/xdg-menu49
1 files changed, 49 insertions, 0 deletions
diff --git a/_config/openbox/scripts/xdg-menu b/_config/openbox/scripts/xdg-menu
new file mode 100755
index 0000000..05d6cec
--- /dev/null
+++ b/_config/openbox/scripts/xdg-menu
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 2008 Red Hat, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# Author(s): Luke Macken <lmacken@redhat.com>
+# Miroslav Lichvar <mlichvar@redhat.com>
+
+
+import gmenu, re, sys
+from xml.sax.saxutils import escape
+
+def walk_menu(entry):
+ if entry.get_type() == gmenu.TYPE_DIRECTORY:
+ print '<menu id="%s" label="%s">' \
+ % (escape(entry.menu_id), escape(entry.get_name()))
+ map(walk_menu, entry.get_contents())
+ print '</menu>'
+ elif entry.get_type() == gmenu.TYPE_ENTRY and not entry.is_excluded:
+ print ' <item label="%s">' % escape(entry.get_name())
+ command = re.sub(' [^ ]*%[fFuUdDnNickvm]', '', entry.get_exec())
+ if entry.launch_in_terminal:
+ command = 'xterm -title "%s" -e %s' % \
+ (entry.get_name(), command)
+ print ' <action name="Execute">' + \
+ '<command>%s</command></action>' % escape(command)
+ print ' </item>'
+
+if len(sys.argv) > 1:
+ menu = sys.argv[1] + '.menu'
+else:
+ menu = 'applications.menu'
+
+print '<?xml version="1.0" encoding="UTF-8"?>'
+print '<openbox_pipe_menu>'
+map(walk_menu, gmenu.lookup_tree(menu).root.get_contents())
+print '</openbox_pipe_menu>'