Re: Design for Keyboard Shortcut Behaviour: Quasimode Command System
Andrew Suffield <[email protected]>
| Newsgroups | gmane.comp.graphics.y.devel |
|---|---|
| Message-ID | <[email protected]> |
On Sat, May 22, 2004 at 08:00:39PM +1000, Karl O'Keeffe wrote:
> Description of Quasimode Command System (QCS)
>
> Initially the Quasimode Command System will be used for issuing system,
> and window manager commands (for example start an application, or go to
> a specific window). Later it can be used for issuing commands to
> widgets and applications.
>
> To issue a command (to the system or window manager) the user holds
> down the [command] key (either the Windows key, or the Apple key*).
> This brings up a prompt and a list of commands and their associated
> descriptions, on top of all the other windows and filling most of the
> screen. As the user types a command the prompt updates with the text
> entered. The user releases [command] to execute the specified command.
> If the users text does not correspond to a valid command nothing is
> executed, allowing a user to mash the keyboard and release the
> [command] key to exit the quasimode.
Chording more than three keys is usually awkward. That probably isn't
a good idea.
> If The QCS is integrated with Y applications and widgets, as well as
> the window manager, Y can benefit from a better command system than
> exisiting GUIs.
Fortunately it doesn't have to be. I think this idea is nuts, but it's
also well-timed, because it validates some recent design decisions;
the YKB model can handle this just fine, without special application
support.
> Detail of QCS Behaviour/Implementation
>
> ...Coming Soon...
>
> Commands in Initial Version
>
> * r : Start application >
> * X : X is name of application to start
> * w : Close window
> * # : Go to window number #
>
> * p : Focus pane >
> * # : Number of pane to go to
> * | : Vertical panes
> * - : Horizontal panes
> * + : Quad panes
> * . : Single pane
>
> * shutdown : Shut down computer
> * restart : restart computer
>
>
> Roadmap
>
> 0.1
> * QCS implemented with *no* visual feedback
> * Simple commands implemented (close window)
keymap qcs
{
keycode qcs_trigger = left_alt;
seq qcs_trigger *w ^qcs_trigger event("close window");
}
Not a line of C code required; this can be implemented entirely in the
keymap. That's all you need, once widgets have been converted.
> 0.2
> * Prompt displaying text user enters
> * Command list displaying commands and descriptions
That's just an extended input method (and a fairly easy one to
implement, even if you do need a little ingenuity to compute the list
of available commands).
> 0.3
> * Prompt displaying valid/invalid feedback
> * Prompt displaying descriptions for valid commands
> * Command list greying out items that can no longer complete users text
(Trivial)
> 0.4
> * Support for commands with simple parameters
> * Parameter list displayed for commands with parameters
More extended input method stuff.
> 0.5
> * Support for commands with complex parameters (new task)
>
> 0.6
> * Persistant translucent prompt (for both valid + invalid commands)
(Nothing complicated)
> 0.7
> * Good API for using QCS with window manager/widgets/applications
That's YKB. You just spit out events and let it take care of the rest.
--
.''`. ** Debian GNU/Linux ** | Andrew Suffield
: :' : http://www.debian.org/ |
`. `' |
`- -><- |
signature.asc
(application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAr4oplpK98RSteX8RAsZCAJ0S8XSTti3dtvpBle73XdGIrfTXjQCdEDii FXjglRP0EMBglv45k/eaqvA= =hIww -----END PGP SIGNATURE-----