You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Kaleidoscope/README.md

75 lines
2.6 KiB

# Akela-SpaceCadet
[Space Cadet][space-cadet] Shift is a way to make it more convenient to input
parens - those `(` and `)` things -, symbols that a lot of programming languages
use frequently. If you are working with Lisp, you are using these all the time.
What it does, is that it turns your left and right `Shift` keys into parens if
you tap and release them, without pressing any other key while holding them.
Therefore, to input, say, `(print foo)`, you don't need to press `Shift`, hold
it, and press `9` to get a `(`, you simply press and release `Shift`, and
continue writing. You use it as if you had a dedicated key for parens!
But if you wish to write capital letters, you hold it, as usual, and you will
not see any parens when you release it. You can also hold it for a longer time,
and it still would act as a `Shift`, without the parens inserted on release:
this is useful when you want to augment some mouse action with `Shift`, to
select text, for example.
[space-cadet]: https://en.wikipedia.org/wiki/Space-cadet_keyboard
## Using the plugin
Using the plugin with its defaults is as simple as including the header, and
enabling the plugin:
```c++
#include <Akela-SpaceCadet.h>
void setup () {
Keyboardio.setup (KEYMAP_SIZE);
Keyboardio.use (&SpaceCadetShift, NULL);
}
```
This assumes a US QWERTY layout on the host computer, and will use the `9` and
`0` keys for the left and right parens, respectively. To change these keys, use
the [`.configure()`](#configureleft-right) method outlined below.
## Plugin methods
The plugin has a number of methods available on the `SpaceCadetShift` object:
### `.configure(left, right)`
> Used to change the configuration of the plugin, namely, the keys used for the
> left and right parens. These keys will be pressed with `Shift` held, and
> should result in the opening and closing parens.
>
> As an example, assuming a Hungarian QWERTZ layout where the parens are not on
> `9` and `0`, we can use the following little snippet in the `setup` method of
> our Sketch:
```c++
void setup () {
SpaceCadetShift.configure(Key_8, Key_9);
Keyboardio.setup (KEYMAP_SIZE);
}
```
### `.on()`
> This method turns the SpaceCadet Shift behaviour on, if it was turned off.
### `.off()`
> Turns the SpaceCadet Shift behaviour off, making the `Shift` keys work as they
> did before, without the additional behaviour.
## Further reading
Starting from the [example][plugin:example] is the recommended way of getting
started with the plugin.
[plugin:example]: https://github.com/Akela-Plugins/Akela-SpaceCadet/blob/master/examples/SpaceCadet/SpaceCadet.ino