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-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.