# Help desired for a plugin I'm writing

**URL:** <https://community.keyboard.io/t/help-desired-for-a-plugin-im-writing/2400>\
**Category:** Plugins\
**Created:** [January 10, 2019, 4:05am UTC](https://community.keyboard.io/t/help-desired-for-a-plugin-im-writing/2400 "2019-01-10T04:05:45Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![tiltowaitt](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/tiltowaitt/32/4764_2.png) [@tiltowaitt](https://community.keyboard.io/u/tiltowaitt)\
**Post date:** [January 10, 2019, 4:05am UTC](https://community.keyboard.io/t/help-desired-for-a-plugin-im-writing/2400/1 "2019-01-10T04:05:45Z")

</div>

I’m returning to a plugin I wrote a while back, [ProperShifting](https://github.com/tiltowait/Kaleidoscope-ProperShifting). I am, unfortunately, having two issues with it, both of which I outlined in the issues tracker on the repo’s page. If someone could give some pointers, I’d be grateful.

Also, this plugin was written before the Great Monorepo-ing; has anything about the architecture/template changed since then?

---

<div class="post-metadata">

**Author:** ![algernon](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/algernon/32/4404_2.png) [@algernon](https://community.keyboard.io/u/algernon)\
**Post date:** [January 10, 2019, 6:30am UTC](https://community.keyboard.io/t/help-desired-for-a-plugin-im-writing/2400/2 "2019-01-10T06:30:13Z")

</div>

> [@tiltowaitt](#):
>
> Also, this plugin was written before the Great Monorepo-ing; has anything about the architecture/template changed since then?

No, everything should be the way it was before the Great Monorepo-ing (I’m liking this phrase, thanks!).

---

<div class="post-metadata">

**Author:** ![tiltowaitt](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/tiltowaitt/32/4764_2.png) [@tiltowaitt](https://community.keyboard.io/u/tiltowaitt)\
**Post date:** [January 10, 2019, 6:50pm UTC](https://community.keyboard.io/t/help-desired-for-a-plugin-im-writing/2400/3 "2019-01-10T18:50:30Z")

</div>

> No, everything should be the way it was before the Great Monorepo-ing (I’m liking this phrase, thanks!).

Out of curiosity, why is it designed that way? Why have a separate `Kaleidoscope-Plugin.h` that includes `Plugin.h`? And why does `Plugin.cpp` include `Kaleidoscope-Plugin.h` instead of `Plugin.h`?

Also, with your help, I was able to fix the issue with extraneous lowercase letters; however, I’ve hit a wall with the [other issue](https://github.com/tiltowait/Kaleidoscope-ProperShifting/issues/1). The good news is, I figured out how to reproduce it and where the problem generally lies. The bad news, I can’t figure out how to fix it. It’s a conflict with Qukeys.

Any advice?

---

<div class="post-metadata">

**Author:** ![algernon](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/algernon/32/4404_2.png) [@algernon](https://community.keyboard.io/u/algernon)\
**Post date:** [January 10, 2019, 10:16pm UTC](https://community.keyboard.io/t/help-desired-for-a-plugin-im-writing/2400/4 "2019-01-10T22:16:54Z")

</div>

> [@tiltowaitt](#):
>
> Why have a separate `Kaleidoscope-Plugin.h` that includes `Plugin.h` ? And why does `Plugin.cpp` include `Kaleidoscope-Plugin.h` instead of `Plugin.h` ?

The `Kaleidoscope-Plugin.h` stuff are a left-over from the non-monorepo era, where they were required for the Arduino build system. Arduino finds libraries by looking at the included headers, so if you wanted to use a `Kaleidoscope-Plugin` library, you’d have to include `Kaleidoscope-Plugin.h`. At the same time, we didn’t want to clutter up the main namespace, so the Real Stuff was put into `kaleidoscope/plugin/Plugin.h` and `kaleidoscope/plugin/Plugin.cpp`, and the top-level header included the namespaced one. We could have used the `Plugin.h` include there, but for the sake of consistency, we used `Kaleidoscope-Plugin.h`, because that’s what the examples use too.
