index.md (2098B)
1 Non-blocking stdin 2 ================== 3 4 Description 5 ----------- 6 A patch to have dmenu read stdin in a non blocking way, making it wait 7 for input both from stdin and from X. This way, you can continue feeding 8 dmenu while you type. This patch can be used along with the incremental 9 patch, so that you can use stdout to feed stdin. 10 11 Example: 12 # Make a fifo and read from it for dmenu's input 13 mkfifo foo 14 while true; do cat foo; done | dmenu -w "$(xdotool getactivewindow)" -l 10 15 16 # Append some items 17 printf %b "foo\nbar\nbaz\n" > foo 18 # Append some more items 19 printf %b "food\nbarn" > foo 20 21 ## nonblockingstdincontrol variant 22 The nonblockingstdincontrol variant of this patch allows you to use 23 control characters to dynamically clear the options list and set curr 24 & sel. So in addition to being able to append entries with the normal 25 version of the nonblockingstdin patch, this variant effectively makes 26 dmenu's option list continouslly reloadable and the selected item / 27 positioning controllable at runtime. 28 29 Supported Control Characters: 30 31 - \f - Clear the current items prior to following line 32 - \a - Set the following line to be equal to sel 33 - \b - Set the following line to be equal to curr 34 35 Example: 36 # Make a fifo and read from it for dmenu's input 37 mkfifo foo 38 while true; do cat foo; done | dmenu -w "$(xdotool getactivewindow)" -l 10 39 40 # And then separately, load a first set of options: 41 printf %b "\ffoo\nbar\nbill" > foo 42 # Load a different set of options using the \f escape: 43 printf %b "\fbark\nbarn\nboo" > foo 44 # Using \f, \a, and \b - load a different set of options & preselect 2nd item: 45 printf %b "\f\bbark\n\abarn\nboo" > foo 46 47 Download 48 -------- 49 * [dmenu-nonblockingstdincontrol-4.9.diff](dmenu-nonblockingstdincontrol-4.9.diff) 50 * [dmenu-nonblockingstdin-4.9.diff](dmenu-nonblockingstdin-4.9.diff) 51 * [dmenu-nonblockingstdin-20160702-3c91eed.diff](dmenu-nonblockingstdin-20160702-3c91eed.diff) 52 53 Author 54 ------ 55 * Christophe-Marie Duquesne <chm.duquesne@gmail.com> 56 * koniu at riseup.net (update for 20160615 git master) 57 * Miles Alan - m@milesalan.com (nonblockingstdincontrol)