logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

level5 (4986B)


  1. // These partial variants assign ISO_Level5_Shift to various XKB keycodes
  2. // so that the fifth shift level can be reached.
  3. // The right Ctrl key (while pressed) chooses the fifth shift level.
  4. partial modifier_keys
  5. xkb_symbols "rctrl_switch" {
  6. key <RCTL> {
  7. type[Group1]="ONE_LEVEL",
  8. symbols[Group1] = [ ISO_Level5_Shift ]
  9. };
  10. include "level5(modifier_mapping)"
  11. };
  12. // The Less/Greater key (while pressed) chooses the fifth shift level.
  13. partial modifier_keys
  14. xkb_symbols "lsgt_switch" {
  15. key <LSGT> {
  16. type[Group1]="ONE_LEVEL",
  17. symbols[Group1] = [ ISO_Level5_Shift ]
  18. };
  19. include "level5(modifier_mapping)"
  20. };
  21. // The right Alt key (while pressed) chooses the fifth shift level.
  22. partial modifier_keys
  23. xkb_symbols "ralt_switch" {
  24. key <RALT> {
  25. type[Group1]="ONE_LEVEL",
  26. symbols[Group1] = [ ISO_Level5_Shift ]
  27. };
  28. include "level5(modifier_mapping)"
  29. };
  30. // The CapsLock key (while pressed) chooses the fifth shift level.
  31. partial modifier_keys
  32. xkb_symbols "caps_switch" {
  33. key <CAPS> {
  34. type[Group1]="ONE_LEVEL",
  35. symbols[Group1] = [ ISO_Level5_Shift ]
  36. };
  37. include "level5(modifier_mapping)"
  38. };
  39. // The Menu key (while pressed) chooses the fifth shift level.
  40. partial modifier_keys
  41. xkb_symbols "menu_switch" {
  42. key <MENU> {
  43. type[Group1]="ONE_LEVEL",
  44. symbols[Group1] = [ ISO_Level5_Shift ]
  45. };
  46. include "level5(modifier_mapping)"
  47. };
  48. // Ensure a mapping to a real modifier for LevelFive.
  49. partial modifier_keys
  50. xkb_symbols "modifier_mapping" {
  51. replace key <MDSW> {
  52. type[Group1] = "ONE_LEVEL",
  53. symbols[Group1] = [ ISO_Level5_Shift ]
  54. };
  55. modifier_map Mod3 { <MDSW> };
  56. };
  57. // This adds the definitions needed to create a level5-lock behaviour, using
  58. // the real modifier NumLock as a lock indicator.
  59. // See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK
  60. // See also: compat/level5(level5_lock)
  61. partial modifier_keys
  62. xkb_symbols "lock" {
  63. key.type[Group1] = "ONE_LEVEL";
  64. include "level5(modifier_mapping)"
  65. replace key <HYPR> {
  66. vmods = NumLock,
  67. symbols[Group1] = [ NoSymbol ],
  68. actions[Group1] = [ SetMods(modifiers=NumLock) ]
  69. };
  70. modifier_map Mod2 { <HYPR> };
  71. };
  72. // The following modifier keys are used to switch to the third shift level
  73. // and to set a corresponding lock, implemented as NumLock.
  74. partial modifier_keys
  75. xkb_symbols "lsgt_switch_lock" {
  76. include "level5(lock)"
  77. key <LSGT> {
  78. type[Group1] = "EIGHT_LEVEL",
  79. symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
  80. ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
  81. };
  82. };
  83. partial modifier_keys
  84. xkb_symbols "lwin_switch_lock" {
  85. include "level5(lock)"
  86. key <LWIN> {
  87. type[Group1] = "EIGHT_LEVEL",
  88. symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
  89. ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
  90. };
  91. };
  92. partial modifier_keys
  93. xkb_symbols "ralt_switch_lock" {
  94. include "level5(lock)"
  95. key <RALT> {
  96. type[Group1] = "EIGHT_LEVEL",
  97. symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
  98. ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
  99. };
  100. };
  101. partial modifier_keys
  102. xkb_symbols "rwin_switch_lock" {
  103. include "level5(lock)"
  104. key <RWIN> {
  105. type[Group1] = "EIGHT_LEVEL",
  106. symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
  107. ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
  108. };
  109. };
  110. partial modifier_keys
  111. xkb_symbols "lsgt_switch_lock_cancel" {
  112. include "level5(lock)"
  113. key <LSGT> {
  114. type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
  115. symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
  116. ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
  117. };
  118. };
  119. partial modifier_keys
  120. xkb_symbols "lwin_switch_lock_cancel" {
  121. include "level5(lock)"
  122. key <LWIN> {
  123. type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
  124. symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
  125. ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
  126. };
  127. };
  128. partial modifier_keys
  129. xkb_symbols "ralt_switch_lock_cancel" {
  130. include "level5(lock)"
  131. key <RALT> {
  132. type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
  133. symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
  134. ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
  135. };
  136. };
  137. partial modifier_keys
  138. xkb_symbols "rwin_switch_lock_cancel" {
  139. include "level5(lock)"
  140. key <RWIN> {
  141. type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
  142. symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
  143. ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
  144. };
  145. };