swapping control with cmd
This commit is contained in:
parent
cca5b91be2
commit
3f0283422d
70
kmk/modules/swap_keys.py
Executable file
70
kmk/modules/swap_keys.py
Executable file
@ -0,0 +1,70 @@
|
||||
from kmk.keys import KC, ModifierKey, make_key
|
||||
from kmk.modules import Module
|
||||
|
||||
|
||||
class SwapKeys(Module):
|
||||
# default cg swap is disabled, can be eanbled too if needed
|
||||
def __init__(self, cg_swap_enable=False):
|
||||
self.cg_swap_enable = cg_swap_enable
|
||||
self._cg_mapping = {
|
||||
KC.LCTL: KC.LGUI,
|
||||
KC.RCTL: KC.RGUI,
|
||||
KC.LGUI: KC.LCTL,
|
||||
KC.RGUI: KC.RCTL,
|
||||
}
|
||||
make_key(
|
||||
names=('CG_SWAP',),
|
||||
)
|
||||
make_key(
|
||||
names=('CG_NORM',),
|
||||
)
|
||||
make_key(
|
||||
names=('CG_TOGG',),
|
||||
)
|
||||
|
||||
def during_bootup(self, keyboard):
|
||||
return
|
||||
|
||||
def matrix_detected_press(self, keyboard):
|
||||
return keyboard.matrix_update is None
|
||||
|
||||
def before_matrix_scan(self, keyboard):
|
||||
return
|
||||
|
||||
def process_key(self, keyboard, key, is_pressed, int_coord):
|
||||
if is_pressed:
|
||||
# enables or disables or toggles cg swap
|
||||
if key == KC.CG_SWAP:
|
||||
self.cg_swap_enable = True
|
||||
elif key == KC.CG_NORM:
|
||||
self.cg_swap_enable = False
|
||||
elif key == KC.CG_TOGG:
|
||||
if not self.cg_swap_enable:
|
||||
self.cg_swap_enable = True
|
||||
else:
|
||||
self.cg_swap_enable = False
|
||||
# performs cg swap
|
||||
if (
|
||||
self.cg_swap_enable
|
||||
and key not in (KC.CG_SWAP, KC.CG_NORM, KC.CG_TOGG)
|
||||
and isinstance(key, ModifierKey)
|
||||
and key in self._cg_mapping
|
||||
):
|
||||
key = self._cg_mapping.get(key)
|
||||
|
||||
return key
|
||||
|
||||
def before_hid_send(self, keyboard):
|
||||
return
|
||||
|
||||
def after_hid_send(self, keyboard):
|
||||
return
|
||||
|
||||
def on_powersave_enable(self, keyboard):
|
||||
return
|
||||
|
||||
def on_powersave_disable(self, keyboard):
|
||||
return
|
||||
|
||||
def after_matrix_scan(self, keyboard):
|
||||
return
|
Loading…
x
Reference in New Issue
Block a user