]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - tmk_core/common/keycode.h
Add MOD_MASK_* macros to core code (#4337)
[qmk_firmware.git] / tmk_core / common / keycode.h
index d6fef2bebf0e311d8ffa985d16e1223160905367..d5904276eebbc1155a5ad6242a27b0eae44ebeba 100644 (file)
@@ -46,6 +46,22 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define MOD_BIT(code)            (1 << MOD_INDEX(code))
 #define MOD_INDEX(code)          ((code) & 0x07)
 
+#define MOD_MASK_CTRL            (MOD_BIT(KC_LCTRL)  | MOD_BIT(KC_RCTRL))
+#define MOD_MASK_SHIFT           (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))
+#define MOD_MASK_ALT             (MOD_BIT(KC_LALT)   | MOD_BIT(KC_RALT))
+#define MOD_MASK_GUI             (MOD_BIT(KC_LGUI)   | MOD_BIT(KC_RGUI))
+#define MOD_MASK_CS              (MOD_MASK_CTRL  | MOD_MASK_SHIFT)
+#define MOD_MASK_CA              (MOD_MASK_CTRL  | MOD_MASK_ALT)
+#define MOD_MASK_CG              (MOD_MASK_CTRL  | MOD_MASK_GUI)
+#define MOD_MASK_SA              (MOD_MASK_SHIFT | MOD_MASK_ALT)
+#define MOD_MASK_SG              (MOD_MASK_SHIFT | MOD_MASK_GUI)
+#define MOD_MASK_AG              (MOD_MASK_ALT   | MOD_MASK_GUI)
+#define MOD_MASK_CSA             (MOD_MASK_CTRL  | MOD_MASK_SHIFT | MOD_MASK_ALT)
+#define MOD_MASK_CSG             (MOD_MASK_CTRL  | MOD_MASK_SHIFT | MOD_MASK_GUI)
+#define MOD_MASK_CAG             (MOD_MASK_CTRL  | MOD_MASK_ALT   | MOD_MASK_GUI)
+#define MOD_MASK_SAG             (MOD_MASK_SHIFT | MOD_MASK_ALT   | MOD_MASK_GUI)
+#define MOD_MASK_CSAG            (MOD_MASK_CTRL  | MOD_MASK_SHIFT | MOD_MASK_ALT | MOD_MASK_GUI)
+
 #define FN_BIT(code)             (1 << FN_INDEX(code))
 #define FN_INDEX(code)           ((code) - KC_FN0)
 #define FN_MIN                   KC_FN0
@@ -140,6 +156,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define KC_LWIN KC_LGUI
 #define KC_RCTL KC_RCTRL
 #define KC_RSFT KC_RSHIFT
+#define KC_ALGR KC_RALT
 #define KC_RCMD KC_RGUI
 #define KC_RWIN KC_RGUI
 
@@ -173,6 +190,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define KC_BRIU KC_BRIGHTNESS_UP
 #define KC_BRID KC_BRIGHTNESS_DOWN
 
+/* System Specific */
+#define KC_BRMU KC_PAUSE
+#define KC_BRMD KC_SCROLLLOCK
+
 /* Mouse Keys */
 #define KC_MS_U KC_MS_UP
 #define KC_MS_D KC_MS_DOWN