I vote for a
key (not a character) to create separators for passing arguments. For example such a key could be the Tab key, the Caps Lock key, a Win key or whatever a user wants. I'm not sure about the internals of FARR but I think the command line of FARR shouldn't be limited to text but objects in general. This means: A command could be made up of a chain (or even a net!?) of objects. Some of them are plain text, others are separator objects etc.. How these objects are created is an other topic (ok, for text it's clear; other possibilities are the special keys or key combinations; system events etc. etc.). Such objects may change the behaviour of the input line completely. For example some parts of the input line may become uneditable (as a little separator arrow) or only changeable within certain limits (as a mini-dropdown menu). They could even change the whole input line while being created... (i would call them transformers) (stay calm... I'm only flushing ideas
) Some of them might become invisible just as they have been typed.
There may be even access rights for these objects such that a certain object may only read the next N entries in the command line.
An object to denote a single string would be nice too (compare the whole string "foo bar" with the single words "foo" and "bar").
To sum up: Just because a launcher is keyboard based it hasn't to be text based!
Perhaps you could use some of the ideas Mouser
(especially the "key creates separator" would be nice...)
P.S.: "Enter" would just instantiate another object which immediately opens the selected result. There might be other keys for that! E.g. Shift+Enter for "open result" and "Enter" for "line break".