find_programs() {
    OLDIFS="$IFS"
    IFS=:
    set -- $PATH
    IFS="$OLDIFS"
    for dir in "$@"; do
        if [ -d "$dir" ]; then
            for i in "$dir"/*; do
                [ -x "$i" ] && [ ! -d "$i" ] && echo "${i##*/}"
            done
        fi
    done | sort
}

end_input_setup() {  # called by rc after sourcing this file
    return
}

#---------------------------------------------------------------------

# set location of the actions:
$WRITE /input/lookup/actions "/action $WMIFS_SOCKET"

# set style:
$WRITE /input/norm-style/bg-color "$NORMAL_BG_COLOR"
$WRITE /input/norm-style/text-align "$NORMAL_TEXT_ALIGN"
$WRITE /input/norm-style/text-font "$NORMAL_TEXT_FONT"
$WRITE /input/norm-style/text-size "$NORMAL_TEXT_SIZE"
$WRITE /input/norm-style/text-color "$NORMAL_FG_COLOR"
$WRITE /input/norm-style/border-color "$NORMAL_BORDER_COLOR"
$WRITE /input/sel-style/bg-color "$SELECTED_BG_COLOR"
$WRITE /input/sel-style/text-align "$SELECTED_TEXT_ALIGN"
$WRITE /input/sel-style/text-font "$SELECTED_TEXT_FONT"
$WRITE /input/sel-style/text-size "$SELECTED_TEXT_SIZE"
$WRITE /input/sel-style/text-color "$SELECTED_FG_COLOR"
$WRITE /input/sel-style/border-color "$SELECTED_BORDER_COLOR"

$REMOVE /input/label 2>/dev/null

{
    # set actions up:
    $READ /action | sort | while read line; do
        [ "$line" ] && \
        echo create /input/label/actions/"$line" "@{$line}"
    done | wmir -f
    $REMOVE /input/label/actions/input_actions
    $REMOVE /input/label/actions/input_programs

    # set programs up:
    find_programs | while read line; do
        echo create /input/label/programs/"${line##*/}" "${line##*/}"
    done | wmir -f
} &  # can take some seconds
