# Where do I find .h files and plugins?

**URL:** <https://community.keyboard.io/t/where-do-i-find-h-files-and-plugins/1145>\
**Category:** Programming\
**Created:** [February 28, 2018, 8:15am UTC](https://community.keyboard.io/t/where-do-i-find-h-files-and-plugins/1145 "2018-02-28T08:15:45Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jmbeck](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/jmbeck/32/960_2.png) [@jmbeck](https://community.keyboard.io/u/jmbeck)\
**Post date:** [February 28, 2018, 8:15am UTC](https://community.keyboard.io/t/where-do-i-find-h-files-and-plugins/1145/1 "2018-02-28T08:15:45Z")

</div>

I am pretty inexperienced with coding when it comes to things like where files are and how they get compiled together. I could use a little direction on where to find .h files or how to find and implement plugins. I haven’t been able to find any posts or tutorials that point a bit beyond the “[Edit A Keymap](https://github.com/keyboardio/Kaleidoscope/wiki/Edit-A-Keymap)” page on github. If someone can point me to a post or outside website that has a tutorial, I’d appreciate it.

More specifically at the moment, I want to look at the Kaleidoscope-NumPad.h file so I can see how the keys get lit up. I have been able to remap the number keys to a more preferred format, and like how the default code already lights up the new keys I mapped. But I also want to include the left and right parenthesis, but Key\_KeypadLeftParen doesn’t seem to work, and using LSHIFT(Key\_9) doesn’t light up the keys.

Thanks!

---

<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:** [February 28, 2018, 8:28am UTC](https://community.keyboard.io/t/where-do-i-find-h-files-and-plugins/1145/2 "2018-02-28T08:28:55Z")

</div>

Unfortunately, we do not have a “how to write plugins” tutorial yet.

> [@jmbeck](#):
>
> More specifically at the moment, I want to look at the Kaleidoscope-NumPad.h file so I can see how the keys get lit up.

Like the rest of the firmware, it is on GitHub too:

> **[GitHub - keyboardio/Kaleidoscope-NumPad: A simpler version of the numlock...](https://github.com/keyboardio/Kaleidoscope-NumPad)**
>
> A simpler version of the numlock plugin with slightly different semantics - GitHub - keyboardio/Kaleidoscope-NumPad: A simpler version of the numlock plugin with slightly different semantics

---

<div class="post-metadata">

**Author:** ![jmbeck](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/jmbeck/32/960_2.png) [@jmbeck](https://community.keyboard.io/u/jmbeck)\
**Post date:** [March 1, 2018, 7:45am UTC](https://community.keyboard.io/t/where-do-i-find-h-files-and-plugins/1145/3 "2018-03-01T07:45:44Z")

</div>

Thanks @algernon for the pointer. The link to the NumPad helped me start to figure out a few more things. Being new to the Arduino/firmware environment, I also didn’t understand where the #include “Kaleidoscope-NumPad.h” line in my .ino file was pointing to, if the .ino file was the only thing in my local directory. From what I understand now, it seems like the Arduino IDE program downloaded the library files (.h and .cpp) from the Keyboardio-Model01-Hardware-v1.19.tar.bz2 file in the github repository when I added the line in the Preferences\>Settings\>Additional Board Manager:

> [https://raw.githubusercontent.com/keyboardio/boardsmanager/master/package\_keyboardio\_index.json](https://raw.githubusercontent.com/keyboardio/boardsmanager/master/package_keyboardio_index.json)

So now, if I want to start customizing a bit more of the functionality of the keyboard besides keymapping and layers, I need to write my own libraries, include the library file (Sketch\>Include Library\>Add .ZIP Library…). This [link for Installing Additional Arduino Libraries](https://www.arduino.cc/en/Guide/Libraries) was helpful for me, in case it is helpful for anyone else in a similar experience level.
