A custom build of dmenu (from suckless.org).
  • C 83.8%
  • Roff 10.1%
  • Makefile 5.1%
  • Shell 1%
Find a file
2026-06-14 15:22:25 +10:00
patches Initial commit 2026-06-14 15:22:25 +10:00
arg.h Initial commit 2026-06-14 15:22:25 +10:00
build.sh Initial commit 2026-06-14 15:22:25 +10:00
config.def.h Initial commit 2026-06-14 15:22:25 +10:00
config.mk Initial commit 2026-06-14 15:22:25 +10:00
dmenu.1 Initial commit 2026-06-14 15:22:25 +10:00
dmenu.c Initial commit 2026-06-14 15:22:25 +10:00
dmenu_path Initial commit 2026-06-14 15:22:25 +10:00
dmenu_run Initial commit 2026-06-14 15:22:25 +10:00
drw.c Initial commit 2026-06-14 15:22:25 +10:00
drw.h Initial commit 2026-06-14 15:22:25 +10:00
LICENSE Initial commit 2026-06-14 15:22:25 +10:00
Makefile Initial commit 2026-06-14 15:22:25 +10:00
ReadMe.md Initial commit 2026-06-14 15:22:25 +10:00
stest.1 Initial commit 2026-06-14 15:22:25 +10:00
stest.c Initial commit 2026-06-14 15:22:25 +10:00
util.c Initial commit 2026-06-14 15:22:25 +10:00
util.h Initial commit 2026-06-14 15:22:25 +10:00

dmenu

This is Pete Hinchley's fork of dmenu: https://tools.suckless.org/dmenu/

Changes

It is based on version 5.3 of dmenu with several tweaks to filter the list of targets using a custom path.

Firstly, it relies on setting DMENU_PATH (in .xinitrc) to the set of folders that are to be searched. I use: ~/apps:~/.local/bin:~/scripts/dwm.

Any apps under /usr/bin or other locations to be accessed via dmenu are linked to ~/apps. This may sound laborious, but there are only a handful of apps I care about. And any dmenu scripts are stored under ~/scripts/dmenu.

The stest binary has been modified to output the list of all executable files within the DMENU_PATH as "name:full path" pairs. For example: zed:/home/pete/.local/bin/zed. This output is parsed by dmenu_path such that dmenu lists the program using the short name, but then executes the program using the full path. This removes the need for all folders in DMENU_PATH to be in PATH (such as the folder containing dmenu scripts).

One final enhancement to dmenu_run ensures dmenu doesn't display program extensions. For example, notesnook.AppImage is displayed as notesnook.

The changes made to the base version of dmenu are stored in patches/01-path.diff. These changes are already applied to the code.

Build

To build and install dmenu:

git clone https://github.com/hinchley/dmenu.git
cd dmenu
./build.sh