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

nbsp (4406B)


  1. // Let Space key provide No-Break Space (NBSP), Narrow No-Break Space (NNBSP),
  2. // Zero-Width Non-Joiner (ZWNJ), and Zero-Width Joiner (ZWJ) for the desired
  3. // levels.
  4. ////////////////////////////////////////
  5. // Only Space
  6. partial
  7. xkb_symbols "none" {
  8. key <SPCE> {
  9. type[Group1]="ONE_LEVEL",
  10. symbols[Group1]= [ space ]
  11. };
  12. };
  13. ////////////////////////////////////////
  14. // No-Break Space
  15. partial
  16. xkb_symbols "level2" {
  17. key <SPCE> {
  18. type[Group1]="TWO_LEVEL",
  19. symbols[Group1]= [ space, nobreakspace ]
  20. };
  21. };
  22. // level3 & level3ns provide no-breaking spaces starting from level3
  23. // This is good for typographers but experience shows many users accidently
  24. // type no-breaking spaces on the CLI (resulting in errors)
  25. // Used by fr(latin9) and lt(std)
  26. partial
  27. xkb_symbols "level3" {
  28. key <SPCE> {
  29. type[Group1]="FOUR_LEVEL",
  30. symbols[Group1]= [ space, space, nobreakspace ]
  31. };
  32. };
  33. // level3s kills fourth level
  34. // Used by ca(multix)
  35. partial
  36. xkb_symbols "level3s" {
  37. key <SPCE> {
  38. type[Group1]="FOUR_LEVEL",
  39. symbols[Group1]= [ space, space, nobreakspace, NoSymbol ]
  40. };
  41. };
  42. // for this reason pushing no-breaking spaces to level4 is the safe default nowadays
  43. partial
  44. xkb_symbols "level4" {
  45. key <SPCE> {
  46. type[Group1]="FOUR_LEVEL",
  47. symbols[Group1]= [ space, space, space, nobreakspace ]
  48. };
  49. };
  50. ////////////////////////////////////////
  51. // Narrow No-Break Space
  52. // level3n provides narrow no-breaking space in addition to the normal one
  53. partial
  54. xkb_symbols "level3n" {
  55. key <SPCE> {
  56. type[Group1]="FOUR_LEVEL",
  57. symbols[Group1]= [ space, space, nobreakspace, 0x100202F ]
  58. };
  59. };
  60. // level4n provides narrow no-breaking space in addition to the normal one
  61. partial
  62. xkb_symbols "level4n" {
  63. key <SPCE> {
  64. type[Group1]="EIGHT_LEVEL",
  65. symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ]
  66. };
  67. };
  68. // level4nl provides narrow no-breaking space in addition to the normal one
  69. // without forcing the use of level5 for mostly four-level layouts
  70. // Used by fr(oss), be(oss)…
  71. partial
  72. xkb_symbols "level4nl" {
  73. key <SPCE> {
  74. type[Group1]="LOCAL_EIGHT_LEVEL",
  75. symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ]
  76. };
  77. };
  78. ////////////////////////////////////////
  79. // Zero-Width Non-Joiner & Zero-Width Joiner
  80. // Author: Behnam Esfahbod <behnam@esfahbod.info>
  81. // ZWNJ and ZWJ are widely used in Persian, Kurdinsh, Pashto, Uzbek and other
  82. // languages that use PersoArabic script.
  83. // ZWNJ on level 2
  84. partial
  85. xkb_symbols "zwnj2" {
  86. key <SPCE> {
  87. type[Group1]="TWO_LEVEL",
  88. symbols[Group1]= [ space, 0x100200c ]
  89. };
  90. };
  91. // ZWNJ on level 2
  92. // ZWJ on level 3
  93. partial
  94. xkb_symbols "zwnj2zwj3" {
  95. key <SPCE> {
  96. type[Group1]="FOUR_LEVEL",
  97. symbols[Group1]= [ space, 0x100200c, 0x100200d ]
  98. };
  99. };
  100. // ZWNJ on level 2
  101. // ZWJ on level 3
  102. // NBSP on level 4
  103. partial
  104. xkb_symbols "zwnj2zwj3nb4" {
  105. key <SPCE> {
  106. type[Group1]="FOUR_LEVEL",
  107. symbols[Group1]= [ space, 0x100200c, 0x100200d, nobreakspace ]
  108. };
  109. };
  110. // ZWNJ on level 2
  111. // NBSP on level 3
  112. // Used by ir(ku_ara), af(basic), af(ps), af(uz), af(fa-olpc), af(ps-olpc), af(uz-olpc)
  113. partial
  114. xkb_symbols "zwnj2nb3" {
  115. key <SPCE> {
  116. type[Group1]="FOUR_LEVEL",
  117. symbols[Group1]= [ space, 0x100200c, nobreakspace ]
  118. };
  119. };
  120. // ZWNJ on level 2
  121. // NBSP on level 3
  122. partial
  123. xkb_symbols "zwnj2nb3s" {
  124. key <SPCE> {
  125. type[Group1]="FOUR_LEVEL",
  126. symbols[Group1]= [ space, 0x100200c, nobreakspace, NoSymbol ]
  127. };
  128. };
  129. // ZWNJ on level 2
  130. // NBSP on level 3
  131. // ZWJ on level 4
  132. partial
  133. xkb_symbols "zwnj2nb3zwj4" {
  134. key <SPCE> {
  135. type[Group1]="FOUR_LEVEL",
  136. symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100200d ]
  137. };
  138. };
  139. // ZWNJ on level 2
  140. // NBSP on level 3
  141. // NNBSP on level 4
  142. // Used by ir(pes)
  143. partial
  144. xkb_symbols "zwnj2nb3nnb4" {
  145. key <SPCE> {
  146. type[Group1]="FOUR_LEVEL",
  147. symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100202F ]
  148. };
  149. };
  150. // ZWNJ on level 3
  151. // ZWJ on level 4
  152. // Used by in(deva), in(olpc)
  153. partial
  154. xkb_symbols "zwnj3zwj4" {
  155. key <SPCE> {
  156. type[Group1]="FOUR_LEVEL",
  157. symbols[Group1]= [ space, space, 0x100200c, 0x100200d ]
  158. };
  159. };
  160. // NBSP on level 2
  161. // ZWNJ on level 3
  162. // Used by lk(sin_phonetic)
  163. partial
  164. xkb_symbols "nb2zwnj3s" {
  165. key <SPCE> {
  166. type[Group1]="FOUR_LEVEL",
  167. symbols[Group1]= [ space, nobreakspace, 0x100200c, NoSymbol ]
  168. };
  169. };