#!/bin/sh gui=$(cat <lines(lines) { list.insert(lines) } BEGIN { focus input } || || { quit() } || || { list.prev() } || || { list.next() } || { complete(); select(); } || { select(); } || { complete() } { input.value = sub("\n.*", "", osystem("sselp")) } { list.last() } { list.first() } input.value->changed(from, to) { filter() } EOF ) sindre -e "$gui" -e "$code" "$@"