mjwm

mjwm creates JWM application menu from (freedesktop) desktop files

View the Project on GitHub chiku/mjwm

mjwm

Build Status Build Status

Overview

mjwm creates JWM's menu from (freedesktop) desktop files. Include the generated file in the rootmenu section of your ~/.jwmrc

Read more about JWM (Joe's Window Manager) at http://joewing.net/projects/jwm

mjwm is based on mjm by insmyic gminsm@gmail.com http://sourceforge.net/projects/mjm

Dependencies

The application runs on a POSIX system with a C++ runtime.

For compiling the aplication you need make, automake, autoconf and a recent C++ compiler. This application has compiled fine with g++ 4.6, g++ 4.8 and clang++ 3.3.

Installation from source

./autogen.sh
./configure --prefix=/usr
make
sudo make install

Options

Usage: mjwm [options]

Optional arguments:
  -o, --output-file [FILE]    Outfile file [Default: ./automenu]
  -i, --input-directory [DIRECTORY]
                              Directory to scan for '.desktop' files. Multiple
                                directories, if provided, must be separated by
                                colons. [Default: application directories
                                under $XDG_DATA_HOME & $XDG_DATA_DIRS]
  -c, --category-file [FILE]  Use an external category file. Overrides the
                                built in categories. Please look at
                                default.mjwm to write your own category files.
      --iconize=[THEME]       Search for icon files by name in $HOME,
                                $XDG_DATA_DIRS/icons, and /usr/share/pixmaps.
                                Icon file names would be absolute paths to
                                icons in the specified directories. Hicolor
                                icon theme is used if no theme name is given.
      --summary=type          The summary of the run. Acceptable values are
                                short, normal and long. Defaults to normal.
      --help                  Show this help
      --version               Show version information

Usage

mjwm
<JWM>
  <!-- SNIP SNIP -->

  <RootMenu onroot="12">
      <!-- Other Menu Entries -->

      <Include>$HOME/.jwmrc-mjwm</Include>

      <!-- Other Menu Entries -->
  </RootMenu>

  <!-- SNIP SNIP -->
</JWM>
jwm -reload

Examples

Generate menu entries for files inside /usr/local/share/applications

mjwm -i /usr/local/share/applications

Generate menu entries for files inside multiple directories /usr/local/share/applications, /usr/share/applications & ~/.local/share/applications

mjwm -i /usr/local/share/applications:/usr/share/applications:~/.local/share/applications

Create menu entries with absolute path names to icons images from Hicolor theme

mjwm --iconize

Create menu entries with absolute path names to icons images from Faenza theme

mjwm --iconize=Faenza # the equals sign is needed

Use categories from as an external file Look at data/default.mjwm to create your own category file

mjwm -c data/default.mjwm

Running tests

./autogen.sh
./configure
VERBOSE=true make check

mjwm uses Catch for unit tests. Catch is released under Boost Software License.

Exit codes

Contributing

License

This tool is released under the GPLv3 license. Please refer to COPYING for license information.