# Kaleidoscope-like functionality on built-in Mac keyboard?

**URL:** <https://community.keyboard.io/t/kaleidoscope-like-functionality-on-built-in-mac-keyboard/5374>\
**Category:** Programming\
**Created:** [June 22, 2022, 9:47pm UTC](https://community.keyboard.io/t/kaleidoscope-like-functionality-on-built-in-mac-keyboard/5374 "2022-06-22T21:47:36Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![billba](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/billba/32/3575_2.png) [@billba](https://community.keyboard.io/u/billba)\
**Post date:** [June 22, 2022, 9:47pm UTC](https://community.keyboard.io/t/kaleidoscope-like-functionality-on-built-in-mac-keyboard/5374/1 "2022-06-22T21:47:36Z")

</div>

I’ve gotten super spoiled by my ability to customize my Atreus, but for Reasons I’m often still just using the built-in MacBook Pro keyboard. I’d love to bring over some of the Kaleidoscope-like innovations to the built-in keyboard. Specifically I love love love the ability to treat an arbitrary key like a modifier when you hold it down so that I don’t usually have to move very far off the home row.

Does anyone here have experience doing such things, e.g. in Karabiner-Elements or some other tool?

---

<div class="post-metadata">

**Author:** ![zagdul](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/zagdul/32/3278_2.png) [@zagdul](https://community.keyboard.io/u/zagdul)\
**Post date:** [June 23, 2022, 11:40am UTC](https://community.keyboard.io/t/kaleidoscope-like-functionality-on-built-in-mac-keyboard/5374/2 "2022-06-23T11:40:53Z")

</div>

I never did something like that, but it _might_ be possible using Hammerspoon. You need to be a bit experienced in programming in order to use it though.

But I really doubt it. Reason: when keeping a _normal_ key pressed, the OS repeats that key. So an application can’t tell the difference of you hitting that key often or the OS is doing it.

You’d probably need to install a custom keyboard driver in order to get near that kind of functionality…

or use a travel case to get that done.

On linux I think it would work though.

---

<div class="post-metadata">

**Author:** ![edanaher](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/edanaher/32/3820_2.png) [@edanaher](https://community.keyboard.io/u/edanaher)\
**Post date:** [June 27, 2022, 7:27pm UTC](https://community.keyboard.io/t/kaleidoscope-like-functionality-on-built-in-mac-keyboard/5374/3 "2022-06-27T19:27:40Z")

</div>

I’ve never done anything fancy with Karabiner, but someone did put together a [Textblade-inspired configuration](https://github.com/architek1/TextBlade-for-Karabiner-Elements) a while back, which may have some stuff you can steal.

[Kmonad](https://github.com/kmonad/kmonad) is also a more explicit attempt to make a software-side QMK-type setup; among other things, I think it should be able to handle the hold-for-modifier case you want pretty easily. (I’m just using it for foot pedals, not my primary keyboard, but it seems pretty good for that.)

(And don’t get excited about the textblade itself; I ordered it (not pre-ordered - they were already in production) in 2015, and after years of poor communication and “we just have a couple more bugs to squash in the firmware before final release”, their official forums are offline, and the blog hasn’t been updated since 2017.)

---

<div class="post-metadata">

**Author:** ![billba](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/billba/32/3575_2.png) [@billba](https://community.keyboard.io/u/billba)\
**Post date:** [June 27, 2022, 8:40pm UTC](https://community.keyboard.io/t/kaleidoscope-like-functionality-on-built-in-mac-keyboard/5374/4 "2022-06-27T20:40:57Z")

</div>

Thanks that sounds exactly like what I’m looking for.

---

<div class="post-metadata">

**Author:** ![cdarwin](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/cdarwin/32/4211_2.png) [@cdarwin](https://community.keyboard.io/u/cdarwin)\
**Post date:** [June 27, 2022, 10:40pm UTC](https://community.keyboard.io/t/kaleidoscope-like-functionality-on-built-in-mac-keyboard/5374/5 "2022-06-27T22:40:13Z")

</div>

I am using Kmonad on my laptop’s built in keyboard whenever I need to use it portably. If you care for some inspiration, [here is my current config](https://github.com/cdarwin/qmk_firmware/blob/crd/actions/users/crd/config.kbd). Much of this was inspired by [this post](https://precondition.github.io/home-row-mods#using-home-row-mods-with-kmonad).

---

<div class="post-metadata">

**Author:** ![billba](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/billba/32/3575_2.png) [@billba](https://community.keyboard.io/u/billba)\
**Post date:** [July 13, 2022, 9:47pm UTC](https://community.keyboard.io/t/kaleidoscope-like-functionality-on-built-in-mac-keyboard/5374/6 "2022-07-13T21:47:22Z")

</div>

Thank you, this is EXACTLY what I was looking for, and I am typing with it right now! To get this working on my M1 Mac I ended up relying on [this post](https://github.com/kmonad/kmonad/issues/334#issuecomment-1000106276).
