You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
832 B
28 lines
832 B
/* |
|
* Copyright (c) 2020 The ZMK Contributors |
|
* |
|
* SPDX-License-Identifier: MIT |
|
*/ |
|
#pragma once |
|
|
|
#define MOD_LCTL 0x01 |
|
#define MOD_LSFT 0x02 |
|
#define MOD_LALT 0x04 |
|
#define MOD_LGUI 0x08 |
|
#define MOD_RCTL 0x10 |
|
#define MOD_RSFT 0x20 |
|
#define MOD_RALT 0x40 |
|
#define MOD_RGUI 0x80 |
|
|
|
#define SELECT_MODS(keycode) (keycode >> 24) |
|
#define STRIP_MODS(keycode) (keycode & ~(0xFF << 24)) |
|
#define APPLY_MODS(mods, keycode) (mods << 24 | keycode) |
|
|
|
#define LC(keycode) APPLY_MODS(MOD_LCTL, keycode) |
|
#define LS(keycode) APPLY_MODS(MOD_LSFT, keycode) |
|
#define LA(keycode) APPLY_MODS(MOD_LALT, keycode) |
|
#define LG(keycode) APPLY_MODS(MOD_LGUI, keycode) |
|
#define RC(keycode) APPLY_MODS(MOD_RCTL, keycode) |
|
#define RS(keycode) APPLY_MODS(MOD_RSFT, keycode) |
|
#define RA(keycode) APPLY_MODS(MOD_RALT, keycode) |
|
#define RG(keycode) APPLY_MODS(MOD_RGUI, keycode) |