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
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++ versions 4.6, 4.8 & 4.9, 5.3, 10 and clang++ 3.3, 3.4, 3.5, 3.7 & 12.
-
Clone the repository
-
From the root of the application run
./autogen.sh
./configure --prefix=/usr
make
sudo make install
Usage: mjwm [options]
Optional arguments:
-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.
--help Show this help.
--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.
-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]
--language=[NAME] The language for which the menu would be build.
--no-backup Do not create any backup files.
-o, --output-file=[FILE] Outfile file [Default: $HOME/.jwmrc-mjwm]
-v --verbose Verbose output.
--version Show version information.
mjwm reads $TERM environment variable to select the program for running
terminal programs. mjwm supports xterm, alacritty and sakura terminals.
If $TERM is not recognized, mjwm chooses xterm.
- Run the script
mjwm
- Edit your
$HOME/.jwmrc
file and add<Include>$HOME/.jwmrc-mjwm</Include>
underRootMenu
.
<JWM>
<!-- SNIP SNIP -->
<RootMenu onroot="12">
<!-- Other Menu Entries -->
<Include>$HOME/.jwmrc-mjwm</Include>
<!-- Other Menu Entries -->
</RootMenu>
<!-- SNIP SNIP -->
</JWM>
- Reload JWM
jwm -reload
- Edit yout
$HOME/.jwmrc
file and add<Include>exec:mjwm --no-backup --iconize=Tango --silent --output /dev/stdout</Include>
underRootMenu
.
<JWM>
<!-- SNIP SNIP -->
<RootMenu onroot="12">
<!-- Other Menu Entries -->
<Include>exec:mjwm --no-backup --iconize=Tango --silent --output /dev/stdout</Include>
<!-- Other Menu Entries -->
</RootMenu>
<!-- SNIP SNIP -->
</JWM>
- Reload JWM
jwm -reload
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 # this works as well : mjwm --iconize Faenza
Use categories from as an external file Look at data/default.mjwm to create your own category file
mjwm -c data/default.mjwm
Create menu entries with terminal set to alacritty.
TERM=alacritty mjwm
Write the output menu entries to console instead of file.
mjwm --no-backup --silent --output /dev/stdout
-
Clone the repository
-
From the root of the application run
./autogen.sh
./configure
VERBOSE=true make check
mjwm uses Doctest for unit tests. Doctest is released under the MIT License.
- 0 - All okay
- 1 - Couldn't access file for read or write (e.g. couldn't create output file)
- 2 - Invalid command line arguments
This tool is released under the GPLv2 license. Please refer to COPYING for license information.