makerdiary / python-keyboard

A hand-wired USB & Bluetooth keyboard powered by Python and more
https://makerdiary.com/m60
MIT License
488 stars 61 forks source link

LAYER_TOGGLE throws exception #33

Open kandji-edwin opened 3 years ago

kandji-edwin commented 3 years ago

I'm, attempting to create a key binding that permanently toggles a layer on and off after each key press. However, upon setting a binding such as:

L4 = LAYER_TOGGLE(4)

I see the following exception:

image

I suspect it's because we're trying to do 0.25 <<10 (because 4/4 == 0.25). If I change it to integer division (4//4), I no longer get an exception, but the binding seems to have no effect.

The closest I've been able to get to achieving the result I want is by defining L4 as LAYER_TAP_TOGGLE(4). This is inadequate for two reasons:

  1. the layer reverts back to layer 0 after a few moments 2.. I have to hold down the key for a bit for it to toggle. Ideally, I could press the binding quickly and see results.

My particular use case is switching from a windows/linux layout to a mac one withhout having drag/drop code.py every time. I could also see this working out for switching between different language layouts.

hyx0329 commented 3 years ago

If you just want to switch between layouts(rather than changing a specific layer), you can refer to my fork.

I prepared different layout configurations and use marco keys to activate them.