key_overrides.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #pragma once
  2. /*
  3. Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com>
  4. This program is free software: you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation, either version 2 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program. If not, see <http://www.gnu.org/licenses/>.
  14. */
  15. #ifdef KEY_OVERRIDE_ENABLE
  16. #define KO_NAME(name, ...) &name,
  17. #define KO_T(name) const key_override_t name
  18. #undef KOL
  19. #define KOL(name, mods, modded_key, replacement, layer) \
  20. KO_T(name) = ko_make_with_layers(mods, modded_key, replacement, (1 << layer));
  21. #define KO(name, mods, key, replacement) \
  22. KO_T(name) = ko_make_basic(mods, key, replacement)
  23. #define KOLN(name, mods, key, replacement, layers, neg_mods) \
  24. KO_T(name) = ko_make_with_layers_and_negmods(mods, key, replacement, layers, neg_mods)
  25. #define KOLNO(name, mods, key, replacement, layers, neg_mods, options) \
  26. KO_T(name) = ko_make_with_layers_negmods_and_options \
  27. (mods, key, replacement, layers, neg_mods, options)
  28. #include "key_overrides.def"
  29. #undef KO
  30. #undef KOL
  31. #undef KOLN
  32. #undef KOLNO
  33. #define KO KO_NAME
  34. #define KOL KO_NAME
  35. #define KOLN KO_NAME
  36. #define KOLNO KO_NAME
  37. // This globally defines all key overrides to be used
  38. const key_override_t **key_overrides = (const key_override_t *[]){
  39. #include "key_overrides.def"
  40. NULL // Null terminate the array of overrides!
  41. };
  42. #endif