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 ofPoint
objects.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 anERROR
action,errors
should 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);