index.md - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
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)