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)