Browse Source

Merge remote-tracking branch 'upstream/master'

pull/8/head
foobar0185 9 years ago
parent
commit
3a51079e38
  1. 4
      Makefile
  2. 70
      README.md
  3. 96
      man/xdgmenumaker.t2t
  4. 194
      src/xdgmenumaker
  5. 8
      tests/Makefile
  6. 126
      tests/menus_correct/fvwm
  7. 116
      tests/menus_correct/twm
  8. 127
      tests/menus_correct/twm_titles
  9. 127
      tests/menus_correct/twm_titles_el

4
Makefile

@ -9,13 +9,13 @@ man:
install:
install -d -m 755 $(DESTDIR)/$(PREFIX)/bin
install -d -m 755 $(DESTDIR)/$(PREFIX)/share/desktop-directories
install -m 755 src/xdgmenumaker $(DESTDIR)/$(PREFIX)/bin/
install -m 644 desktop-directories/* $(DESTDIR)/$(PREFIX)/share/desktop-directories
if [ -f man/xdgmenumaker.1 ]; then \
install -d -m 755 $(DESTDIR)/$(PREFIX)/share/man/man1; \
install -m 644 man/xdgmenumaker.1 $(DESTDIR)/$(PREFIX)/share/man/man1/; \
fi
sed -i "s|^prefix = 'not_set'|prefix = '$(PREFIX)'|" $(DESTDIR)/$(PREFIX)/bin/xdgmenumaker
sed "s|^prefix = 'not_set'|prefix = '$(PREFIX)'|" src/xdgmenumaker > $(DESTDIR)/$(PREFIX)/bin/xdgmenumaker
chmod 755 $(DESTDIR)/$(PREFIX)/bin/xdgmenumaker
clean: test-clean
rm -f man/xdgmenumaker.1

70
README.md

@ -10,15 +10,23 @@ sorted according to the main categories as specified by
The menu entries that are generated by xdgmenumaker are localised
according to the running user locale settings.
xdgmenumaker currently supports generating menus for **blackbox**,
**compizboxmenu**, **fluxbox**, **icewm**, **jwm**, **pekwm** and
**windowmaker**.
xdgmenumaker currently supports generating menus for:
* blackbox
* compizboxmenu
* fluxbox
* fvwm
* icewm
* jwm
* pekwm
* twm and derivatives such as ctwm and vtwm
* windowmaker
**xdgmenumaker** requires:
* Python 2.7 or 3.x
* pyxdg
* pygtk (for Python 2)
* pygobject and gobject-instrospection (for Python 3)
* Pillow (optional)
USAGE
@ -106,6 +114,34 @@ you want to update it, without having to run the command manually again:
[exec] (Update Fluxbox Menu) {xdgmenumaker -f fluxbox > ~/.fluxbox/xdg_menu}
Fvwm
----
To generate an application menu for Fvwm, run xdgmenumaker 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:
AddToMenu MenuFvwmRoot "Root Menu" Title
+ "Applications" Popup xdgmenu
You can add the xdgmenumaker 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.
IceWM
-----
@ -198,6 +234,34 @@ xdgmenumaker command and restart pekwm all over again to update it. The
advantage is that there will be no delay in displaying the menu.
TWM and Derivatives
-------------------
You can create a menu for TWM running xdgmenumaker 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 `~/.twm-xdgmenu` file
into your `~/.twmrc` manually. You could then add something like this
to your main menu definition:
"Applications" f.menu "xdgmenu"
It could be possible to create a script that updates the menus inside
the main `~/.twmrc` 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:
sinclude(`/home/george/.twm-xdgmenu')
**NOTE:** In order for this to work with VTWM, `vtwm` has to be called
with the `-m` switch.
Window Maker
------------

96
man/xdgmenumaker.t2t

@ -27,21 +27,30 @@ by
The menu entries that are generated by **xdgmenumaker** are localised
according to the running user locale settings.
**xdgmenumaker** currently supports generating menus for //blackbox//,
//compizboxmenu//, //fluxbox//, //icewm//, //jwm//, //pekwm// and
//windowmaker//.
**xdgmenumaker** currently supports generating menus for:
- blackbox
- compizboxmenu
- fluxbox
- fvwm
- icewm
- jwm
- pekwm
- twm and compatible derivatives such as ctwm and vtwm
- windowmaker
**xdgmenumaker** requires //Python 2.7// or //3.x//, //pygtk//
(for Python 2.7) or //pygobject// and //gobject-instrospection//
(for Python 3.x), as well as //pyxdg//.
(for Python 3.x), as well as //pyxdg//. //Pillow// is an optional
dependency (used by the **--max-icon-size** option).
= OPTIONS =
: **-f, --format**
specify the output format to use. Valid options are //blackbox//,
//compizboxmenu//, //fluxbox//, //icewm//, //jwm//, //pekwm// and
//windowmaker//.
//compizboxmenu//, //fluxbox//, //fvwm//, //icewm//, //jwm//, //pekwm//,
//twm// and //windowmaker//.
Specifying the output format is mandatory.
: **-i, --icons**
@ -60,12 +69,21 @@ 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 //windowmaker// menus.
: **--max-icon-size**
restrict the maximum size for icons to the one specified with the
//--size// option. Any icons that are larger than the specified size
will get discarded and will not be used.
: **--pekwm-dynamic**
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 //pekwm//
of course.
: **--twm-titles**
display menu titles in TWM menus. Naturally, only has an effect when
used with //twm//.
= GENERAL OPTIONS =
@ -180,6 +198,41 @@ again:
``[exec] (Update Fluxbox Menu) {xdgmenumaker -f fluxbox > ~/.fluxbox/xdg_menu}``
: **Fvwm**
To generate an application menu for Fvwm, you can run **xdgmenumaker**
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:
```
AddToMenu MenuFvwmRoot "Root Menu" Title
+ "Applications" Popup xdgmenu
```
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 **xdgmenumaker** 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.
//NOTE:// If you're going to use the //--icons// option to include icons
in your menus, you might consider using the //--max-icon-size//
option too. Fvwm does not resize icons in its menu and having entries
with icons that are too big makes for funny looking menus.
: **IceWM**
To generate an application menu for IceWM, run **xdgmenumaker** like this:
@ -270,6 +323,37 @@ xdgmenumaker command and restart pekwm all over again to update it. The
advantage is that there will be no delay in displaying the menu.
: **TWM and Derivatives**
You can create a menu for TWM running **xdgmenumaker** 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 //~/.twm-xdgmenu// file
into your //~/.twmrc// manually. You could then add something like this
to your main menu definition:
```
"Applications" f.menu "xdgmenu"
```
It could be possible to create a script that updates the menus inside
the main //~/.twmrc// 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:
```
sinclude(`/home/george/.twm-xdgmenu')
```
//Note:// In order for this to work with VTWM, **vtwm** has to be called
with the //-m// switch.
: **WindowMaker**
There are two ways to have an XDG menu in WindowMaker. The first one,

194
src/xdgmenumaker

@ -7,6 +7,7 @@ from __future__ import print_function
import os
import sys
import getopt
import fnmatch
import xdg.DesktopEntry as dentry
import xdg.Exceptions as exc
import xdg.BaseDirectory as bd
@ -35,6 +36,8 @@ iconsize = 16
desktop = False
submenu = True
pekwmdynamic = False
twmtitles = False
max_icon_size = False
# the following line gets changed by the Makefile. If it is set to
# 'not_set' it looks in the currect directory tree for the .directory
@ -167,10 +170,14 @@ def main(argv):
global iconsize
global submenu
global pekwmdynamic
global twmtitles
global max_icon_size
try:
opts, args = getopt.getopt(argv, "hins:f:", ["help", "icons",
"no-submenu",
"pekwm-dynamic",
"twm-titles",
"max-icon-size",
"size=",
"format="])
except getopt.GetoptError:
@ -192,6 +199,22 @@ def main(argv):
submenu = False
elif opt in ("--pekwm-dynamic",):
pekwmdynamic = True
elif opt in ("--twm-titles",):
twmtitles = True
elif opt in ("--max-icon-size",):
try:
# Pillow is optional and loaded only if we want to restrict the
# icon sizes (useful for Fvwm). Yeah, I know it's not a good
# idea to load a module in here, but I really don't want to
# load it by default at the top. It would make xdgmenumaker a
# bit slower to run even if it is not needed. This way it only
# slows down when it is actually needed.
global Image
from PIL import Image
max_icon_size = True
except ImportError:
usage()
sys.exit('ERROR: --max-icon-size requires Pillow')
elif opt in ("-f", "--format"):
desktop = arg
if not desktop:
@ -201,6 +224,8 @@ def main(argv):
blackbox()
elif desktop == "fluxbox":
fluxbox()
elif desktop == "fvwm":
fvwm()
elif desktop == "windowmaker":
seticon = False
windowmaker()
@ -214,6 +239,8 @@ def main(argv):
compizboxmenu()
elif desktop == "openbox":
openbox()
elif desktop == "twm":
twm()
else:
usage()
sys.exit(2)
@ -224,14 +251,16 @@ def usage():
print()
print('OPTIONS:')
print(' -f, --format the output format to use.')
print(' Valid options are blackbox, compizboxmenu,')
print(' fluxbox, icewm, jwm, windowmaker and pekwm')
print(' Valid options are blackbox, compizboxmenu, fluxbox,')
print(' fvwm, twm, icewm, jwm, windowmaker and pekwm')
print(' -i, --icons enable support for icons in the')
print(' menus. Does not work with windowmaker')
print(' -s, --size preferred icon size in pixels (default: 16)')
print(' -n, --no-submenu do not create a submenu. Does not work with')
print(' windowmaker')
print(' --max-icon-size restrict the icon sizes to the specified size')
print(' --pekwm-dynamic generate dynamic menus for pekwm')
print(' --twm-titles show menu titles in twm menus')
print(' -h, --help show this help message')
print(' You have to specify the output format using the -f switch.')
print()
@ -243,28 +272,48 @@ def usage():
def icon_strip(icon):
# strip the directory and extension from the icon name
icon = os.path.basename(icon)
if icon.endswith('.png'):
icon = icon.replace('.png', '')
elif icon.endswith('.svg'):
icon = icon.replace('.svg', '')
elif icon.endswith('.xpm'):
icon = icon.replace('.xpm', '')
main, ext = os.path.splitext(icon)
ext = ext.lower()
if ext == '.png' or ext == '.svg' or ext == '.svgz' or ext == '.xpm':
return main
return icon
def icon_max_size(icon):
# Checks if the icon size is bigger than the requested size and discards
# the icon if it is, only allowing sizes smaller or equal to the requested
# size
try:
img = Image.open(icon)
except:
# if there is any error reading the icon, just discard it
return None
if img.size[0] <= iconsize:
return icon
return None
def icon_full_path(icon):
# If the icon path is absolute and exists, leave it alone.
# This takes care of software that has its own icons stored
# in non-standard directories
if os.path.exists(icon):
return icon
else:
icon = icon_strip(icon)
icon_theme = gtk.icon_theme_get_default()
icon = icon_theme.lookup_icon(icon, iconsize, gtk.ICON_LOOKUP_NO_SVG)
if icon:
icon = icon.get_filename()
return icon
# in non-standard directories.
# But we don't want to do this for svg icons, since none of the WMs
# supports them. In that case, just fall back to looking for the icon
# elsewhere in the system.
ext = os.path.splitext(icon)[1].lower()
if os.path.exists(icon) and ext != ".svg" and ext != ".svgz":
if max_icon_size:
return icon_max_size(icon)
else:
return icon
icon = icon_strip(icon)
icon_theme = gtk.icon_theme_get_default()
icon = icon_theme.lookup_icon(icon, iconsize, gtk.ICON_LOOKUP_NO_SVG)
if icon:
icon = icon.get_filename()
if max_icon_size:
icon = icon_max_size(icon)
return icon
def get_entry_info(desktopfile, ico_paths=True):
@ -369,16 +418,16 @@ def desktopfilelist():
for d in dirs:
xdgdir = '{}/applications'.format(d)
if os.path.isdir(xdgdir):
for i in os.listdir(xdgdir):
if i.endswith('.desktop'):
# for duplicate .desktop files that exist in more
# than one locations, only keep the first occurence.
# That one should have precedence anyway (e.g.
# ~/.local/share/applications has precedence over
# /usr/share/applications
if i not in df_temp:
df_temp.append(i)
filelist.append('{}/{}'.format(xdgdir, i))
for root, dirnames, filenames in os.walk(xdgdir):
for i in fnmatch.filter(filenames, '*.desktop'):
# for duplicate .desktop files that exist in more
# than one locations, only keep the first occurence.
# That one should have precedence anyway (e.g.
# ~/.local/share/applications has precedence over
# /usr/share/applications
if i not in df_temp:
df_temp.append(i)
filelist.append(os.path.join(root, i))
return filelist
@ -490,6 +539,63 @@ def fluxbox():
print('[end] # ({})'.format(apps_name))
def fvwm():
if submenu:
print('DestroyMenu "xdgmenu"')
print('AddToMenu "xdgmenu"')
if seticon:
app_icon = icon_full_path(applications_icon)
if app_icon:
print('+ "{a}%{i}% " Title'.format(a=apps_name, i=app_icon))
else:
print('+ "{a}" Title'.format(a=apps_name))
app_icon = icon_full_path(applications_icon)
for menu_category in menu():
category = menu_category.category
cat_name = category.decode()
cat_icon = category_icon(category)
cat_icon = icon_full_path(cat_icon)
if cat_icon:
print('+ "{c}%{i}%" Popup "{c}"'.format(c=cat_name,
i=cat_icon))
else:
print('+ "{c}" Popup "{c}"'.format(c=cat_name))
else:
for menu_category in menu():
category = menu_category.category
cat_name = category.decode()
print('+ "{c}" Popup "{c}"'.format(c=cat_name))
print()
for menu_category in menu():
category = menu_category.category
cat_name = category.decode()
print('DestroyMenu "{}"'.format(cat_name))
print('AddToMenu "{c}"'.format(c=cat_name))
if seticon:
cat_icon = category_icon(category)
cat_icon = icon_full_path(cat_icon)
if cat_icon:
print('+ "{c}%{i}%" Title'.format(c=cat_name, i=cat_icon))
else:
print('+ "{c}" Title'.format(c=cat_name))
else:
print('+ "{c}" Title'.format(c=cat_name))
for app in menu_category.applist:
name = app.name.decode()
icon = app.icon
command = app.command
path = app.path
if path is not None:
command = 'cd {p} ; {c}'.format(p=path, c=command)
if icon is None:
print('+ "{n}" Exec {c}'.format(n=name, c=command))
else:
print('+ "{n}%{i}%" Exec {c}'.format(n=name,
c=command,
i=icon))
print()
def windowmaker():
print('"{}" MENU'.format(apps_name))
for menu_category in menu():
@ -724,5 +830,37 @@ def compizboxmenu():
if submenu:
print('</menu>')
def twm():
if submenu:
print('menu "xdgmenu"')
print("{")
if twmtitles:
print(' "{a}" f.title'.format(a=apps_name))
for menu_category in menu():
category = menu_category.category
cat_name = category.decode()
print(' "{c}" f.menu "{c}"'.format(c=cat_name))
print("}")
for menu_category in menu():
category = menu_category.category
cat_name = category.decode()
print('menu "{}"'.format(cat_name))
print("{")
if twmtitles:
print(' "{c}" f.title'.format(c=cat_name))
for app in menu_category.applist:
name = app.name.decode()
# for some apps (like netbeans) the command is launched with
# /bin/sh "command"
# and the quotes get mixed up with the quotes twm puts
# around the command, so we're just stripping the quotes
command = app.command.replace('"', '')
path = app.path
if path is not None:
print(' "{n}" f.exec "cd {p} ; {c} &"'.format(n=name, p=path, c=command))
else:
print(' "{n}" f.exec "{c} &"'.format(n=name, c=command))
print("}")
if __name__ == "__main__":
main(sys.argv[1:])

8
tests/Makefile

@ -21,6 +21,8 @@ generate:
$(PYTHON) $(MM) -f fluxbox > menus_test/fluxbox
XDGMENUMAKER_TEST=1 XDGMENUMAKERTERM=xterm LANG=en_US.utf8 \
$(PYTHON) $(MM) -f fluxbox -i > menus_test/fluxbox_icons
XDGMENUMAKER_TEST=1 XDGMENUMAKERTERM=xterm LANG=en_US.utf8 \
$(PYTHON) $(MM) -f fvwm > menus_test/fvwm
XDGMENUMAKER_TEST=1 XDGMENUMAKERTERM=xterm LANG=en_US.utf8 \
$(PYTHON) $(MM) -f fluxbox -i -s 48 > menus_test/fluxbox_icons48
XDGMENUMAKER_TEST=1 XDGMENUMAKERTERM=xterm LANG=el_GR.utf8 \
@ -45,6 +47,12 @@ generate:
$(PYTHON) $(MM) -f pekwm -i > menus_test/pekwm_icons
XDGMENUMAKER_TEST=1 XDGMENUMAKERTERM=xterm LANG=en_US.utf8 \
$(PYTHON) $(MM) -f pekwm --pekwm-dynamic > menus_test/pekwm_dynamic
XDGMENUMAKER_TEST=1 XDGMENUMAKERTERM=xterm LANG=en_US.utf8 \
$(PYTHON) $(MM) -f twm > menus_test/twm
XDGMENUMAKER_TEST=1 XDGMENUMAKERTERM=xterm LANG=en_US.utf8 \
$(PYTHON) $(MM) -f twm --twm-titles > menus_test/twm_titles
XDGMENUMAKER_TEST=1 XDGMENUMAKERTERM=xterm LANG=el_GR.utf8 \
$(PYTHON) $(MM) -f twm --twm-titles > menus_test/twm_titles_el
XDGMENUMAKER_TEST=1 XDGMENUMAKERTERM=xterm LANG=en_US.utf8 \
$(PYTHON) $(MM) -f windowmaker > menus_test/windowmaker

126
tests/menus_correct/fvwm

@ -0,0 +1,126 @@
DestroyMenu "xdgmenu"
AddToMenu "xdgmenu"
+ "Accessories" Popup "Accessories"
+ "Development" Popup "Development"
+ "Education" Popup "Education"
+ "Games" Popup "Games"
+ "Graphics" Popup "Graphics"
+ "Multimedia" Popup "Multimedia"
+ "Network" Popup "Network"
+ "Office" Popup "Office"
+ "Settings" Popup "Settings"
+ "System" Popup "System"
DestroyMenu "Accessories"
AddToMenu "Accessories"
+ "Accessories" Title
+ "Engrampa Archive Manager" Exec engrampa
+ "GTKMan Manual Page Viewer" Exec gtkman salix
+ "Galculator" Exec galculator
+ "KeePassX" Exec keepassx
+ "Leafpad" Exec leafpad
+ "Search for Files..." Exec mate-search-tool
+ "Take Screenshot" Exec mate-screenshot --interactive
+ "Xournal" Exec xournal
+ "Zim Desktop Wiki" Exec zim
DestroyMenu "Development"
AddToMenu "Development"
+ "Development" Title
+ "CMake" Exec cmake-gui
+ "Geany" Exec geany
+ "Glade" Exec glade-3
+ "Meld" Exec meld
+ "Poedit" Exec poedit
+ "Qt4 Assistant" Exec assistant
+ "Qt4 Designer" Exec designer
+ "Qt4 Linguist" Exec linguist
+ "RStudio" Exec /usr/lib64/rstudio/bin/rstudio
DestroyMenu "Education"
AddToMenu "Education"
+ "Education" Title
+ "LibreOffice 4.4 Math" Exec libreoffice4.4 --math
+ "R" Exec xterm -e R
DestroyMenu "Games"
AddToMenu "Games"
+ "Games" Title
+ "KEGS" Exec xterm -e aoss xkegs
DestroyMenu "Graphics"
AddToMenu "Graphics"
+ "Graphics" Title
+ "Dia Diagram Editor" Exec dia
+ "E-book Viewer" Exec ebook-viewer
+ "GNU Image Manipulation Program" Exec gimp-2.8
+ "Gcolor2" Exec gcolor2
+ "LRF Viewer" Exec lrfviewer
+ "LibreOffice 4.4 Draw" Exec libreoffice4.4 --draw
+ "Simple Scan" Exec simple-scan
+ "Viewnior" Exec viewnior
DestroyMenu "Multimedia"
AddToMenu "Multimedia"
+ "Multimedia" Title
+ "Asunder CD Ripper" Exec asunder
+ "Audacity" Exec audacity
+ "Ex Falso" Exec exfalso
+ "Exaile" Exec exaile
+ "GNOME MPlayer" Exec gnome-mplayer
+ "Gaupol" Exec gaupol
+ "ISO Master" Exec isomaster
+ "Quod Libet" Exec quodlibet
DestroyMenu "Network"
AddToMenu "Network"
+ "Network" Title
+ "Claws Mail" Exec claws-mail
+ "Firefox" Exec firefox
+ "Pidgin Internet Messenger" Exec pidgin
+ "Transmission" Exec transmission-gtk
+ "gFTP" Exec gftp
+ "ownCloud desktop sync client" Exec /usr/bin/owncloud
DestroyMenu "Office"
AddToMenu "Office"
+ "Office" Title
+ "Atril Document Viewer" Exec atril
+ "Dictionary" Exec mate-dictionary
+ "HTMLDOC" Exec htmldoc
+ "LibreOffice 4.4 Base" Exec libreoffice4.4 --base
+ "LibreOffice 4.4 Calc" Exec libreoffice4.4 --calc
+ "LibreOffice 4.4 Impress" Exec libreoffice4.4 --impress
+ "LibreOffice 4.4 Writer" Exec libreoffice4.4 --writer
+ "calibre" Exec calibre
DestroyMenu "Settings"
AddToMenu "Settings"
+ "Settings" Title
+ "Bluetooth Manager" Exec blueman-manager
+ "Power Management" Exec mate-power-preferences
+ "Qt4 Config" Exec qtconfig
+ "Screensaver" Exec xscreensaver-demo
DestroyMenu "System"
AddToMenu "System"
+ "System" Title
+ "ALSA sound card" Exec gksu gtkalsasetup
+ "Disk Usage Analyzer" Exec mate-disk-usage-analyzer
+ "Dotnew" Exec gksu dotnew-gtk
+ "Grsync" Exec /usr/bin/grsync -i
+ "Gslapt Package Manager" Exec gksu /usr/sbin/gslapt
+ "Hostnames" Exec gksu gtkhostsetup
+ "Htop" Exec xterm -e htop
+ "Keyboard" Exec gksu gtkkeyboardsetup
+ "Log File Viewer" Exec mate-system-log
+ "MATE Terminal" Exec mate-terminal
+ "Manage Printing" Exec /usr/bin/xdg-open http://localhost:631/
+ "Power Statistics" Exec mate-power-statistics
+ "Sourcery SlackBuild Manager" Exec gksu sourcery
+ "System clock" Exec gksu gtkclocksetup
+ "System language" Exec gksu gtklocalesetup
+ "System services" Exec gksu gtkservicesetup
+ "Users and groups" Exec gksu gtkusersetup
+ "dconf Editor" Exec dconf-editor

116
tests/menus_correct/twm

@ -0,0 +1,116 @@
menu "xdgmenu"
{
"Accessories" f.menu "Accessories"
"Development" f.menu "Development"
"Education" f.menu "Education"
"Games" f.menu "Games"
"Graphics" f.menu "Graphics"
"Multimedia" f.menu "Multimedia"
"Network" f.menu "Network"
"Office" f.menu "Office"
"Settings" f.menu "Settings"
"System" f.menu "System"
}
menu "Accessories"
{
"Engrampa Archive Manager" f.exec "engrampa &"
"GTKMan Manual Page Viewer" f.exec "gtkman salix &"
"Galculator" f.exec "galculator &"
"KeePassX" f.exec "keepassx &"
"Leafpad" f.exec "leafpad &"
"Search for Files..." f.exec "mate-search-tool &"
"Take Screenshot" f.exec "mate-screenshot --interactive &"
"Xournal" f.exec "xournal &"
"Zim Desktop Wiki" f.exec "zim &"
}
menu "Development"
{
"CMake" f.exec "cmake-gui &"
"Geany" f.exec "geany &"
"Glade" f.exec "glade-3 &"
"Meld" f.exec "meld &"
"Poedit" f.exec "poedit &"
"Qt4 Assistant" f.exec "assistant &"
"Qt4 Designer" f.exec "designer &"
"Qt4 Linguist" f.exec "linguist &"
"RStudio" f.exec "/usr/lib64/rstudio/bin/rstudio &"
}
menu "Education"
{
"LibreOffice 4.4 Math" f.exec "libreoffice4.4 --math &"
"R" f.exec "xterm -e R &"
}
menu "Games"
{
"KEGS" f.exec "xterm -e aoss xkegs &"
}
menu "Graphics"
{
"Dia Diagram Editor" f.exec "dia &"
"E-book Viewer" f.exec "ebook-viewer &"
"GNU Image Manipulation Program" f.exec "gimp-2.8 &"
"Gcolor2" f.exec "gcolor2 &"
"LRF Viewer" f.exec "lrfviewer &"
"LibreOffice 4.4 Draw" f.exec "libreoffice4.4 --draw &"
"Simple Scan" f.exec "simple-scan &"
"Viewnior" f.exec "viewnior &"
}
menu "Multimedia"
{
"Asunder CD Ripper" f.exec "asunder &"
"Audacity" f.exec "audacity &"
"Ex Falso" f.exec "exfalso &"
"Exaile" f.exec "exaile &"
"GNOME MPlayer" f.exec "gnome-mplayer &"
"Gaupol" f.exec "gaupol &"
"ISO Master" f.exec "isomaster &"
"Quod Libet" f.exec "quodlibet &"
}
menu "Network"
{
"Claws Mail" f.exec "claws-mail &"
"Firefox" f.exec "firefox &"
"Pidgin Internet Messenger" f.exec "pidgin &"
"Transmission" f.exec "transmission-gtk &"
"gFTP" f.exec "gftp &"
"ownCloud desktop sync client" f.exec "/usr/bin/owncloud &"
}
menu "Office"
{
"Atril Document Viewer" f.exec "atril &"
"Dictionary" f.exec "mate-dictionary &"
"HTMLDOC" f.exec "htmldoc &"
"LibreOffice 4.4 Base" f.exec "libreoffice4.4 --base &"
"LibreOffice 4.4 Calc" f.exec "libreoffice4.4 --calc &"
"LibreOffice 4.4 Impress" f.exec "libreoffice4.4 --impress &"
"LibreOffice 4.4 Writer" f.exec "libreoffice4.4 --writer &"
"calibre" f.exec "calibre &"
}
menu "Settings"
{
"Bluetooth Manager" f.exec "blueman-manager &"
"Power Management" f.exec "mate-power-preferences &"
"Qt4 Config" f.exec "qtconfig &"
"Screensaver" f.exec "xscreensaver-demo &"
}
menu "System"
{
"ALSA sound card" f.exec "gksu gtkalsasetup &"
"Disk Usage Analyzer" f.exec "mate-disk-usage-analyzer &"
"Dotnew" f.exec "gksu dotnew-gtk &"
"Grsync" f.exec "/usr/bin/grsync -i &"
"Gslapt Package Manager" f.exec "gksu /usr/sbin/gslapt &"
"Hostnames" f.exec "gksu gtkhostsetup &"
"Htop" f.exec "xterm -e htop &"
"Keyboard" f.exec "gksu gtkkeyboardsetup &"
"Log File Viewer" f.exec "mate-system-log &"
"MATE Terminal" f.exec "mate-terminal &"
"Manage Printing" f.exec "/usr/bin/xdg-open http://localhost:631/ &"
"Power Statistics" f.exec "mate-power-statistics &"
"Sourcery SlackBuild Manager" f.exec "gksu sourcery &"
"System clock" f.exec "gksu gtkclocksetup &"
"System language" f.exec "gksu gtklocalesetup &"
"System services" f.exec "gksu gtkservicesetup &"
"Users and groups" f.exec "gksu gtkusersetup &"
"dconf Editor" f.exec "dconf-editor &"
}

127
tests/menus_correct/twm_titles

@ -0,0 +1,127 @@
menu "xdgmenu"
{
"Applications" f.title
"Accessories" f.menu "Accessories"
"Development" f.menu "Development"
"Education" f.menu "Education"
"Games" f.menu "Games"
"Graphics" f.menu "Graphics"
"Multimedia" f.menu "Multimedia"
"Network" f.menu "Network"
"Office" f.menu "Office"
"Settings" f.menu "Settings"
"System" f.menu "System"
}
menu "Accessories"
{
"Accessories" f.title
"Engrampa Archive Manager" f.exec "engrampa &"
"GTKMan Manual Page Viewer" f.exec "gtkman salix &"
"Galculator" f.exec "galculator &"
"KeePassX" f.exec "keepassx &"
"Leafpad" f.exec "leafpad &"
"Search for Files..." f.exec "mate-search-tool &"
"Take Screenshot" f.exec "mate-screenshot --interactive &"
"Xournal" f.exec "xournal &"
"Zim Desktop Wiki" f.exec "zim &"
}
menu "Development"
{
"Development" f.title
"CMake" f.exec "cmake-gui &"
"Geany" f.exec "geany &"
"Glade" f.exec "glade-3 &"
"Meld" f.exec "meld &"
"Poedit" f.exec "poedit &"
"Qt4 Assistant" f.exec "assistant &"
"Qt4 Designer" f.exec "designer &"
"Qt4 Linguist" f.exec "linguist &"
"RStudio" f.exec "/usr/lib64/rstudio/bin/rstudio &"
}
menu "Education"
{
"Education" f.title
"LibreOffice 4.4 Math" f.exec "libreoffice4.4 --math &"
"R" f.exec "xterm -e R &"
}
menu "Games"
{
"Games" f.title
"KEGS" f.exec "xterm -e aoss xkegs &"
}
menu "Graphics"
{
"Graphics" f.title
"Dia Diagram Editor" f.exec "dia &"
"E-book Viewer" f.exec "ebook-viewer &"
"GNU Image Manipulation Program" f.exec "gimp-2.8 &"
"Gcolor2" f.exec "gcolor2 &"
"LRF Viewer" f.exec "lrfviewer &"
"LibreOffice 4.4 Draw" f.exec "libreoffice4.4 --draw &"
"Simple Scan" f.exec "simple-scan &"
"Viewnior" f.exec "viewnior &"
}
menu "Multimedia"
{
"Multimedia" f.title
"Asunder CD Ripper" f.exec "asunder &"
"Audacity" f.exec "audacity &"
"Ex Falso" f.exec "exfalso &"
"Exaile" f.exec "exaile &"
"GNOME MPlayer" f.exec "gnome-mplayer &"
"Gaupol" f.exec "gaupol &"
"ISO Master" f.exec "isomaster &"
"Quod Libet" f.exec "quodlibet &"
}
menu "Network"
{
"Network" f.title
"Claws Mail" f.exec "claws-mail &"
"Firefox" f.exec "firefox &"
"Pidgin Internet Messenger" f.exec "pidgin &"
"Transmission" f.exec "transmission-gtk &"
"gFTP" f.exec "gftp &"
"ownCloud desktop sync client" f.exec "/usr/bin/owncloud &"
}
menu "Office"
{
"Office" f.title
"Atril Document Viewer" f.exec "atril &"
"Dictionary" f.exec "mate-dictionary &"
"HTMLDOC" f.exec "htmldoc &"
"LibreOffice 4.4 Base" f.exec "libreoffice4.4 --base &"
"LibreOffice 4.4 Calc" f.exec "libreoffice4.4 --calc &"
"LibreOffice 4.4 Impress" f.exec "libreoffice4.4 --impress &"
"LibreOffice 4.4 Writer" f.exec "libreoffice4.4 --writer &"
"calibre" f.exec "calibre &"
}
menu "Settings"
{
"Settings" f.title
"Bluetooth Manager" f.exec "blueman-manager &"
"Power Management" f.exec "mate-power-preferences &"
"Qt4 Config" f.exec "qtconfig &"
"Screensaver" f.exec "xscreensaver-demo &"
}
menu "System"
{
"System" f.title
"ALSA sound card" f.exec "gksu gtkalsasetup &"
"Disk Usage Analyzer" f.exec "mate-disk-usage-analyzer &"
"Dotnew" f.exec "gksu dotnew-gtk &"
"Grsync" f.exec "/usr/bin/grsync -i &"
"Gslapt Package Manager" f.exec "gksu /usr/sbin/gslapt &"
"Hostnames" f.exec "gksu gtkhostsetup &"
"Htop" f.exec "xterm -e htop &"
"Keyboard" f.exec "gksu gtkkeyboardsetup &"
"Log File Viewer" f.exec "mate-system-log &"
"MATE Terminal" f.exec "mate-terminal &"
"Manage Printing" f.exec "/usr/bin/xdg-open http://localhost:631/ &"
"Power Statistics" f.exec "mate-power-statistics &"
"Sourcery SlackBuild Manager" f.exec "gksu sourcery &"
"System clock" f.exec "gksu gtkclocksetup &"
"System language" f.exec "gksu gtklocalesetup &"
"System services" f.exec "gksu gtkservicesetup &"
"Users and groups" f.exec "gksu gtkusersetup &"
"dconf Editor" f.exec "dconf-editor &"
}

127
tests/menus_correct/twm_titles_el

@ -0,0 +1,127 @@
menu "xdgmenu"
{
"Εφαρμογές" f.title
"Ανάπτυξη" f.menu "Ανάπτυξη"
"Βοηθήματα" f.menu "Βοηθήματα"
"Γραφείο" f.menu "Γραφείο"
"Γραφικά" f.menu "Γραφικά"
"Δίκτυο" f.menu "Δίκτυο"
"Εκπαίδευση" f.menu "Εκπαίδευση"
"Παιχνίδια" f.menu "Παιχνίδια"
"Πολυμέσα" f.menu "Πολυμέσα"
"Ρυθμίσεις" f.menu "Ρυθμίσεις"
"Σύστημα" f.menu "Σύστημα"
}
menu "Ανάπτυξη"
{
"Ανάπτυξη" f.title
"CMake" f.exec "cmake-gui &"
"Geany" f.exec "geany &"
"Glade" f.exec "glade-3 &"
"Meld" f.exec "meld &"
"Poedit" f.exec "poedit &"
"Qt4 Assistant" f.exec "assistant &"
"Qt4 Designer" f.exec "designer &"
"Qt4 Linguist" f.exec "linguist &"
"RStudio" f.exec "/usr/lib64/rstudio/bin/rstudio &"
}
menu "Βοηθήματα"
{
"Βοηθήματα" f.title
"Galculator" f.exec "galculator &"
"KeePassX" f.exec "keepassx &"
"Leafpad" f.exec "leafpad &"
"Xournal" f.exec "xournal &"
"Zim Desktop Wiki" f.exec "zim &"
"Αναζήτηση για αρχεία..." f.exec "mate-search-tool &"
"Διαχειριστής συμπιεσμένων αρχείων Engrampa" f.exec "engrampa &"
"Εμφάνιση σελίδων εγχειριδίου" f.exec "gtkman salix &"
"Λήψη στιγμιότυπου οθόνης" f.exec "mate-screenshot --interactive &"
}
menu "Γραφείο"
{
"Γραφείο" f.title
"HTMLDOC" f.exec "htmldoc &"
"LibreOffice 4.4 Base" f.exec "libreoffice4.4 --base &"
"LibreOffice 4.4 Calc" f.exec "libreoffice4.4 --calc &"
"LibreOffice 4.4 Impress" f.exec "libreoffice4.4 --impress &"
"LibreOffice 4.4 Writer" f.exec "libreoffice4.4 --writer &"
"calibre" f.exec "calibre &"
"Εφαρμογή προβολής εγγράφων Atril" f.exec "atril &"
"Λεξικό" f.exec "mate-dictionary &"
}
menu "Γραφικά"
{
"Γραφικά" f.title
"E-book Viewer" f.exec "ebook-viewer &"
"Gcolor2" f.exec "gcolor2 &"
"LRF Viewer" f.exec "lrfviewer &"
"LibreOffice 4.4 Draw" f.exec "libreoffice4.4 --draw &"
"Viewnior" f.exec "viewnior &"
"Επεξεργαστής διαγραμμάτων Dia" f.exec "dia &"
"Πρόγραμμα επεξεργασίας εικόνων GNU" f.exec "gimp-2.8 &"
"Σάρωση" f.exec "simple-scan &"
}
menu "Δίκτυο"
{
"Δίκτυο" f.title
"Claws Mail" f.exec "claws-mail &"
"Firefox" f.exec "firefox &"
"Transmission" f.exec "transmission-gtk &"
"gFTP" f.exec "gftp &"
"ownCloud desktop sync client" f.exec "/usr/bin/owncloud &"
"Αποστολέας μηνυμάτων διαδικτύου Pidgin" f.exec "pidgin &"
}
menu "Εκπαίδευση"
{
"Εκπαίδευση" f.title
"LibreOffice 4.4 Math" f.exec "libreoffice4.4 --math &"
"R" f.exec "xterm -e R &"
}
menu "Παιχνίδια"
{
"Παιχνίδια" f.title
"KEGS" f.exec "xterm -e aoss xkegs &"
}
menu "Πολυμέσα"
{
"Πολυμέσα" f.title
"Asunder CD Ripper" f.exec "asunder &"
"Audacity" f.exec "audacity &"
"Ex Falso" f.exec "exfalso &"
"Exaile" f.exec "exaile &"
"GNOME MPlayer" f.exec "gnome-mplayer &"
"Gaupol" f.exec "gaupol &"
"ISO Master" f.exec "isomaster &"
"Quod Libet" f.exec "quodlibet &"
}
menu "Ρυθμίσεις"
{
"Ρυθμίσεις" f.title
"Qt4 Config" f.exec "qtconfig &"
"Screensaver" f.exec "xscreensaver-demo &"
"Διαχείριση ενέργειας" f.exec "mate-power-preferences &"
"Διαχειριστής Bluetooth" f.exec "blueman-manager &"
}
menu "Σύστημα"
{
"Σύστημα" f.title
"Dotnew" f.exec "gksu dotnew-gtk &"
"Grsync" f.exec "/usr/bin/grsync -i &"
"Htop" f.exec "xterm -e htop &"
"Manage Printing" f.exec "/usr/bin/xdg-open http://localhost:631/ &"
"Sourcery - Διαχειριστής SlackBuild" f.exec "gksu sourcery &"
"Ανάλυση χρήσης δίσκου" f.exec "mate-disk-usage-analyzer &"
"Γλώσσα συστήματος" f.exec "gksu gtklocalesetup &"
"Διαχειριστής Πακέτων Gslapt" f.exec "gksu /usr/sbin/gslapt &"
"Επεξεργαστής dconf" f.exec "dconf-editor &"
"Κάρτα ήχου ALSA" f.exec "gksu gtkalsasetup &"
"Ονόματα υπολογιστών" f.exec "gksu gtkhostsetup &"
"Παρακολούθηση αρχείων καταγραφών" f.exec "mate-system-log &"
"Πληκτρολόγιο" f.exec "gksu gtkkeyboardsetup &"
"Ρολόι συστήματος" f.exec "gksu gtkclocksetup &"
"Στατιστικά ενέργειας" f.exec "mate-power-statistics &"
"Τερματικό MATE" f.exec "mate-terminal &"
"Υπηρεσίες συστήματος" f.exec "gksu gtkservicesetup &"
"Χρήστες και ομάδες" f.exec "gksu gtkusersetup &"
}
Loading…
Cancel
Save