my fork of suckless' dmenu
Go to file
NRK 7269c5355d significantly improve performance on large strings
this replaces inefficient pattern of `MIN(TEXTW(..), n)` with
drw_fontset_getwidth_clamp() instead, which is far more efficient when
we only want up to a certain width.

dumping a decently sized (unicode) emoji file into dmenu, I see the
startup time drop significantly with this patch.

before -> after
360ms  -> 160ms

this should also noticeably improve input latency (responsiveness) given
that calcoffsets() and drawmenu() are pretty hot functions.
2022-03-25 22:49:07 +01:00
LICENSE bump version to 5.1 2022-02-11 12:26:35 +01:00
Makefile Makefile: just show the compiler output 2018-06-02 17:09:01 +02:00
README removed libdc dependence 2010-11-11 23:56:39 +00:00
arg.h arg.h: fixed argv checks order 2016-02-23 00:31:03 +01:00
config.def.h config.def.h: style improvement, use color Scheme enum 2016-06-28 17:56:25 +02:00
config.mk bump version to 5.1 2022-02-11 12:26:35 +01:00
dmenu.1 dmenu.1: document improved fastgrab behaviour from previous patch 2019-01-27 15:28:02 +01:00
dmenu.c significantly improve performance on large strings 2022-03-25 22:49:07 +01:00
dmenu_path make dmenu_path script executable 2019-02-12 22:13:58 +01:00
dmenu_run dmenu_run: Split cache logic to dmenu_path again 2012-07-30 17:02:12 +02:00
drw.c introduce drw_fontset_getwidth_clamp() 2022-03-25 22:49:07 +01:00
drw.h introduce drw_fontset_getwidth_clamp() 2022-03-25 22:49:07 +01:00
stest.1 applied Martin Kühl's inverse matching flag to stest 2013-08-13 19:15:04 +02:00
stest.c remove always true condition in if statement 2021-07-25 10:55:45 +02:00
util.c die() on calloc failure 2016-11-05 11:36:42 +01:00
util.h import new drw from libsl and minor fixes. 2016-06-03 19:13:15 +02:00

README

dmenu - dynamic menu
====================
dmenu is an efficient dynamic menu for X.


Requirements
------------
In order to build dmenu you need the Xlib header files.


Installation
------------
Edit config.mk to match your local setup (dmenu is installed into
the /usr/local namespace by default).

Afterwards enter the following command to build and install dmenu
(if necessary as root):

    make clean install


Running dmenu
-------------
See the man page for details.