[dev] [dmenu] ASCII tab and unit separator cause startup lag

From: Greg B <g_AT_greggyb.com>
Date: Thu, 06 Aug 2020 10:06:35 -0400


I've been using dmenu for a window switcher with wmctrl. I noticed after
a recent refactor to my window-listing function that I was seeing
significant lag in the dmenu window popping up after my hotkey. I've
done some digging and determined that including tabs and \037 (ASCII
unit separator) cause noticeable startup delays in dmenu. It appears
that no keys are lost - anything I type after invoking my hotkey for
this script gets captured after dmenu finally renders. Nevertheless this
is an annoyance.

I am using the packaged dmenu in Ubuntu 20.04. A sample of the output of
my window listing script is below, along with two simpler samples
exhibiting slow startup behavior.

I'm happy to do further testing or troubleshooting if anyone can point
me in the right direction.


$ dmenu -v

# simple repro with tabs - startup render seems to scale linearly with
# number of tabs
$ for i in {1..10}; do echo $'\t'; done | dmenu

# simple repro with \037
$ for i in {1..10}; do echo $'\037'; done | dmenu

# sample output of window-listing script. tab-separated fields, and
\037 precedes the window ID (last column, 0x...)
xfce4-panel 0x01200003
xfdesktop.Xfdesktop Desktop 0x02400013
ator.Firefox software 0x04000019
Alacritty.Alacritty alacritt
y-terminal 0x05200002
signal.Signal Signal 0x06400001
fy.Spotify Within 0x06c00001
evolution.Evolution Inbox 0x08c00
emacs.Emacs emacs 0x074000cb
rambox.Rambox Rambox 0x04800
evolution.Evolution [dmenu] 0x08ca4ad4
Received on Thu Aug 06 2020 - 16:06:35 CEST

This archive was generated by hypermail 2.3.0 : Thu Aug 06 2020 - 17:00:08 CEST