3 > A replacement for dmenu, 'cause I was bored
5 ![MyMenu works!](screen.png)
7 ![MyMenu alternate layout](screen-alt.png)
13 This is a replacement for `dmenu(1)`.
17 This was the perfect excuse to learn how to make window with Xlib.
21 Check out the [manpage](mymenu.1) for further documentation. Check out
22 also the [template](Xexample) for the resources.
30 For multi-monitor support
31 - pkg-config (optional)
32 used in the makefile to generate `LIBS` and `CFLAGS` correctly
36 As simple as `make`. If you want to disable Xinerama support just
37 delete `-DUSE_XINERAMA` from the `CFLAGS` and `xinerama` from the
38 `pkg-config` call from the Makefile.
42 - Does not run / Hangs
44 At the startup mymenu will read `stdin` for a list of item, only
45 then it'll display a window. Are you sure that you're passing
46 something on standard input?
50 The code is released under GPLv3, but I don't have strong
51 preference regard licenses, so if you ask I may release the code
52 also under a different license (a free software one of course).
54 - Will feature $X be added?
56 No. Or maybe Yes. In fact, it depends. Open an issue and let's
57 discuss. If it's something that's trivial to achieve in combo with
58 other tool maybe is not the case to add it here.
60 - Is feature $Y present? What $Z do? How to achieve $W?
62 Everything is documented in the man page. To read it, simply execute
63 `man -l mymenu.1` or `mandoc mymenu.1 | less` (depending on your
64 system the `-l` option may not be present).
72 At the moment the X Resource Database is the only way to interact
73 with the graphic appearance of MyMenu.
75 - Optional TrueType support
81 I'm using this script to launch MyMenu with custom item
86 cat <<EOF | /bin/sh -c "$(mymenu "$@")"
98 You can generate a menu from the `.desktop` file with something like
105 cat $1 | grep '^Name=' | sed 's/^.*=//'
109 cat $1 | grep '^Exec=' | sed 's/^.*=//'
112 desktop_files=`ls /usr/local/share/applications/*.desktop`
115 for i in $desktop_files; do
120 for i in $desktop_files; do
122 if [ "x$prgname" = "x$name" ]; then
129 or generate a list of executables from `$PATH` like this:
134 path=`echo $PATH | sed 's/:/ /g'`
138 ls -F $i | grep '.*\*$' | sed 's/\*//'
140 } | sort | /bin/sh -c "$(mymenu "$@")"
143 Of course you can as well use the `dmenu_path` and `dmenu_run` scripts
144 that (usually) comes with `dmenu`.