# Kaleidoscope-Redial ![status][st:experimental] [![Build Status][travis:image]][travis:status] [travis:image]: https://travis-ci.org/keyboardio/Kaleidoscope-Redial.svg?branch=master [travis:status]: https://travis-ci.org/keyboardio/Kaleidoscope-Redial [st:stable]: https://img.shields.io/badge/stable-✔-black.svg?style=flat&colorA=44cc11&colorB=494e52 [st:broken]: https://img.shields.io/badge/broken-X-black.svg?style=flat&colorA=e05d44&colorB=494e52 [st:experimental]: https://img.shields.io/badge/experimental----black.svg?style=flat&colorA=dfb317&colorB=494e52 If you ever wanted to just repeat the last key pressed, no matter what it was, this plugin is made for you. It allows you to configure a key that will repeat whatever the last previously pressed key was. Of course, one can limit which keys are remembered... ## Using the plugin To use the plugin, we'll need to enable it, and configure a key to act as the "redial" key. This key should be on the keymap too. ```c++ #include #include #include enum { REDIAL = kaleidoscope::ranges::SAFE_START, }; #define Key_Redial (Key) {.raw = REDIAL} // Place Key_Redial somewhere on the keymap... KALEIDOSCOPE_INIT_PLUGINS(Redial); void setup() { Kaleidoscope.setup(); Redial.key = Key_Redial; } ``` ## Overrideable plugin methods ### `bool shouldRemember(Key mapped_key)` > If one wants to change what keys the plugin remembers, simply override the > `kaleidoscope::Redial::shouldRemember` function. Whenever a key is to be > remembered, this function will be called with the key as argument. It should > return `true` if the key should be remembered (and repeated by Redial), > `false` otherwise. > > By default, the plugin will remember alphanumeric keys only. ## Plugin properties The `Redial` object has only one property, the key to trigger it. ### `.key` > The key to trigger the redial effect. Be aware that whatever key you specify > here, will have its action shadowed by the redial functionality. Choose > something unused, see the example sketch for one way to do that. > > There is no default. ## Further reading Starting from the [example][plugin:example] is the recommended way of getting started with the plugin. [plugin:example]: https://github.com/keyboardio/Kaleidoscope-Redial/blob/master/examples/Redial/Redial.ino