Creating Signals
As an alternative to loading the applet inside Q desktop, a developer can use the the command line and the buit-in Q desktop logging facility.
An applet communicates with the Das Keyboard Signal Center by returning
Signal objects. A Signal object includes a 2-D array of Point objects,
along with an optional name and description.
For example, the simplest Signal object would be:
return new q.Signal({ points: [[new q.Point('#FF0000)]] });
To light up a row of keys, send a single row of Points, e.g.:
return new q.Signal({
points: [[
new q.Point('#FF0000),
new q.Point('#00FF00),
new q.Point('#0000FF),
]],
name: 'My Applet Name',
description: 'Some description of the signal'
});
To light up a rectangular region, send multiple rows of points, e.g:
return new q.Signal({
points: [
[new q.Point('#FF0000), new q.Point('#00FF00), new q.Point('#0000FF)],
[new q.Point('#FF0000), new q.Point('#00FF00), new q.Point('#0000FF)],
[new q.Point('#FF0000), new q.Point('#00FF00), new q.Point('#0000FF)],
]});
Signal options
The Signal class takes the following options in its constructor:
points: A 2-D array ofPointobjects.name: Will be displayed as the title of any signal dialog.message: Detailed message that will be displayed within a signal dialog.isMuted: Boolean value. If set tofalse, the signal will invoke an on-screen notification.action: The action of the signal, typicallyDRAW. This is the default. Possible values are:DRAW: Light a key until the signal is dismissed.ERROR: The signal will relay an error message to the host service.FLASH: The signal will cause the key(s) to flash.
errors: In the case of anERRORaction,errorsshould contain an array of error messages.
Creating a signal within a callback function
There are cases when a run() function may have to use a callback, and so
cannot directly pass a Signal object as its return. In this case, a developer can either return a promise, or use the this.signal() function, e.g.:
this.signal(new q.Signal({ points: [[new q.Point('#FF0000)]] }));
The Point Class
Each Point should specify, at a minimum, the RGB color that the key should
be illuminated to:
let point = new q.Point('#FF0000');
An effect can also be specified:
let point = new q.Point('#FF0000', q.Effects.BLINK);