group 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539
  1. // The right Alt key (while pressed) chooses the second keyboard group.
  2. partial modifier_keys
  3. xkb_symbols "switch" {
  4. key <RALT> {
  5. symbols[Group1] = [ Mode_switch, Multi_key ],
  6. virtualMods= AltGr
  7. };
  8. };
  9. // The left Alt key (while pressed) chooses the second keyboard group.
  10. partial modifier_keys
  11. xkb_symbols "lswitch" {
  12. key <LALT> {
  13. symbols[Group1] = [ Mode_switch, Multi_key ],
  14. virtualMods= AltGr
  15. };
  16. };
  17. // Either Win key (while pressed) chooses the second keyboard group.
  18. partial modifier_keys
  19. xkb_symbols "win_switch" {
  20. include "group(lwin_switch)"
  21. include "group(rwin_switch)"
  22. };
  23. // The left Win key (while pressed) chooses the second keyboard group.
  24. // (Using this map, you should declare your keyboard as pc101 or pc102
  25. // instead of pc104 or pc105.)
  26. partial modifier_keys
  27. xkb_symbols "lwin_switch" {
  28. key <LWIN> {
  29. symbols[Group1] = [ Mode_switch, Multi_key ],
  30. virtualMods= AltGr
  31. };
  32. };
  33. partial modifier_keys
  34. xkb_symbols "lwin_latch" {
  35. key <LWIN> {
  36. symbols[1] = [ ISO_Group_Latch ],
  37. actions[1] = [ LatchGroup(group=+1) ]
  38. };
  39. };
  40. // The right Win key (while pressed) chooses the second keyboard group.
  41. // (Using this map, you should declare your keyboard as pc101 or pc102
  42. // instead of pc104 or pc105.)
  43. partial modifier_keys
  44. xkb_symbols "rwin_switch" {
  45. key <RWIN> {
  46. symbols[Group1] = [ Mode_switch, Multi_key ],
  47. virtualMods= AltGr
  48. };
  49. };
  50. partial modifier_keys
  51. xkb_symbols "rwin_latch_lock_clear" {
  52. key <RWIN> {
  53. symbols[1] = [ ISO_Group_Latch ],
  54. actions[1] = [ LatchGroup(group=+1, latchToLock, clearLocks) ]
  55. };
  56. };
  57. // The right Menu key (while pressed) chooses the second keyboard group.
  58. // while Shift+Menu acts as Menu.
  59. partial modifier_keys
  60. xkb_symbols "menu_switch" {
  61. key <MENU> {
  62. symbols[Group1] = [ Mode_switch, Menu ],
  63. virtualMods= AltGr
  64. };
  65. };
  66. // The right Ctrl key (while pressed) chooses the second keyboard group.
  67. // (Needed mainly for the Canadian keyboard.)
  68. partial modifier_keys
  69. xkb_symbols "rctrl_switch" {
  70. key <RCTL> {
  71. symbols[Group1] = [ Mode_switch ]
  72. };
  73. };
  74. // Pressing the right Alt key switches to the next group.
  75. partial modifier_keys
  76. xkb_symbols "toggle" {
  77. virtual_modifiers AltGr;
  78. key <RALT> {
  79. symbols[Group1] = [ ISO_Next_Group ],
  80. virtualMods= AltGr
  81. };
  82. };
  83. // Pressing both Shift keys switches to the next or previous group
  84. // (depending on which Shift is pressed first).
  85. partial modifier_keys
  86. xkb_symbols "shifts_toggle" {
  87. key <LFSH> { [ Shift_L, ISO_Prev_Group ] };
  88. key <RTSH> { [ Shift_R, ISO_Next_Group ] };
  89. };
  90. // Pressing Shift+Caps_Lock switches to the next group.
  91. partial modifier_keys
  92. xkb_symbols "shift_caps_toggle" {
  93. key <CAPS> { [ Caps_Lock, ISO_Next_Group ] };
  94. };
  95. // Pressing Caps_Lock selects the first group,
  96. // pressing Shift+Caps_Lock selects the last group.
  97. partial modifier_keys
  98. xkb_symbols "shift_caps_switch" {
  99. key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
  100. };
  101. // toggle using win + space as combo
  102. partial modifier_keys
  103. xkb_symbols "win_space_toggle" {
  104. key <SPCE> {
  105. type="PC_SUPER_LEVEL2",
  106. symbols[Group1]= [ space, ISO_Next_Group ],
  107. symbols[Group2]= [ space, ISO_Next_Group ]
  108. };
  109. };
  110. // Pressing the left Win key selects the first group,
  111. // pressing the right Win or the Menu key selects the last group.
  112. partial modifier_keys
  113. xkb_symbols "win_menu_switch" {
  114. virtual_modifiers AltGr;
  115. key <LWIN> {
  116. virtualMods= AltGr,
  117. symbols[Group1] = [ ISO_First_Group ]
  118. };
  119. key <MENU> {
  120. virtualMods= AltGr,
  121. symbols[Group1] = [ ISO_Last_Group ]
  122. };
  123. key <RWIN> {
  124. virtualMods= AltGr,
  125. symbols[Group1] = [ ISO_Last_Group ]
  126. };
  127. };
  128. // Pressing the left Ctrl key selects the first group,
  129. // pressing the right Ctrl key selects the last group.
  130. partial modifier_keys
  131. xkb_symbols "lctrl_rctrl_switch" {
  132. virtual_modifiers AltGr;
  133. key <LCTL> {
  134. virtualMods= AltGr,
  135. symbols[Group1] = [ ISO_First_Group ]
  136. };
  137. key <RCTL> {
  138. virtualMods= AltGr,
  139. symbols[Group1] = [ ISO_Last_Group ]
  140. };
  141. };
  142. //
  143. // CTRL-SHIFT toggle section
  144. //
  145. partial modifier_keys
  146. xkb_symbols "lctrl_lshift_toggle" {
  147. key <LFSH> {
  148. type[Group1]="PC_CONTROL_LEVEL2",
  149. symbols[Group1] = [ Shift_L, ISO_Next_Group ]
  150. };
  151. key <LCTL> { [ Control_L, ISO_Next_Group ] };
  152. };
  153. partial modifier_keys
  154. xkb_symbols "lctrl_lshift_toggle_rev" {
  155. key <LFSH> {
  156. type[Group1]="PC_CONTROL_LEVEL2",
  157. symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
  158. };
  159. key <LCTL> { [ Control_L, ISO_Prev_Group ] };
  160. };
  161. partial modifier_keys
  162. xkb_symbols "rctrl_rshift_toggle" {
  163. key <RTSH> {
  164. type[Group1]="PC_CONTROL_LEVEL2",
  165. symbols[Group1] = [ Shift_R, ISO_Next_Group ]
  166. };
  167. key <RCTL> { [ Control_R, ISO_Next_Group ] };
  168. };
  169. partial modifier_keys
  170. xkb_symbols "ctrl_shift_toggle" {
  171. include "group(lctrl_lshift_toggle)"
  172. include "group(rctrl_rshift_toggle)"
  173. };
  174. partial modifier_keys
  175. xkb_symbols "ctrl_shift_toggle_bidir" {
  176. include "group(lctrl_lshift_toggle_rev)"
  177. include "group(rctrl_rshift_toggle)"
  178. };
  179. //
  180. // CTRL-ALT toggle section
  181. //
  182. partial modifier_keys
  183. xkb_symbols "lctrl_lalt_toggle" {
  184. virtual_modifiers Alt;
  185. key <LALT> {
  186. type[Group1]="PC_CONTROL_LEVEL2",
  187. symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
  188. virtualMods= Alt
  189. };
  190. key <LCTL> {
  191. type[Group1]="PC_ALT_LEVEL2",
  192. symbols[Group1] = [ Control_L, ISO_Next_Group ]
  193. };
  194. };
  195. partial modifier_keys
  196. xkb_symbols "lctrl_lalt_toggle_rev" {
  197. virtual_modifiers Alt;
  198. key <LALT> {
  199. type[Group1]="PC_CONTROL_LEVEL2",
  200. symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
  201. virtualMods= Alt
  202. };
  203. key <LCTL> {
  204. type[Group1]="PC_ALT_LEVEL2",
  205. symbols[Group1] = [ Control_L, ISO_Prev_Group ]
  206. };
  207. };
  208. partial modifier_keys
  209. xkb_symbols "rctrl_ralt_toggle" {
  210. virtual_modifiers Alt;
  211. key <RALT> {
  212. type[Group1]="PC_CONTROL_LEVEL2",
  213. symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
  214. virtualMods= Alt
  215. };
  216. key <RCTL> {
  217. type[Group1]="PC_ALT_LEVEL2",
  218. symbols[Group1] = [ Control_R, ISO_Next_Group ]
  219. };
  220. };
  221. partial modifier_keys
  222. xkb_symbols "ctrl_alt_toggle" {
  223. include "group(lctrl_lalt_toggle)"
  224. include "group(rctrl_ralt_toggle)"
  225. };
  226. partial modifier_keys
  227. xkb_symbols "ctrl_alt_toggle_bidir" {
  228. include "group(lctrl_lalt_toggle_rev)"
  229. include "group(rctrl_ralt_toggle)"
  230. };
  231. //
  232. // ALT-SHIFT toggle section
  233. //
  234. partial modifier_keys
  235. xkb_symbols "lalt_lshift_toggle" {
  236. virtual_modifiers Alt;
  237. key <LALT> {
  238. symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
  239. virtualMods= Alt
  240. };
  241. key <LFSH> {
  242. type[Group1]="PC_ALT_LEVEL2",
  243. symbols[Group1] = [ Shift_L, ISO_Next_Group ]
  244. };
  245. };
  246. partial modifier_keys
  247. xkb_symbols "lalt_lshift_toggle_rev" {
  248. virtual_modifiers Alt;
  249. key <LALT> {
  250. symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
  251. virtualMods= Alt
  252. };
  253. key <LFSH> {
  254. type[Group1]="PC_ALT_LEVEL2",
  255. symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
  256. };
  257. };
  258. partial modifier_keys
  259. xkb_symbols "ralt_rshift_toggle" {
  260. virtual_modifiers Alt;
  261. key <RALT> {
  262. symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
  263. virtualMods= Alt
  264. };
  265. key <RTSH> {
  266. type[Group1]="PC_ALT_LEVEL2",
  267. symbols[Group1] = [ Shift_R, ISO_Next_Group ]
  268. };
  269. };
  270. partial modifier_keys
  271. xkb_symbols "alt_shift_toggle" {
  272. include "group(lalt_lshift_toggle)"
  273. include "group(ralt_rshift_toggle)"
  274. };
  275. partial modifier_keys
  276. xkb_symbols "alt_shift_toggle_bidir" {
  277. include "group(lalt_lshift_toggle_rev)"
  278. include "group(ralt_rshift_toggle)"
  279. };
  280. // Pressing the Menu key switches to the next group,
  281. // while Shift+Menu acts as Menu.
  282. partial modifier_keys
  283. xkb_symbols "menu_toggle" {
  284. key <MENU> { [ ISO_Next_Group, Menu ] };
  285. };
  286. // Pressing the left Win key switches to the next group.
  287. // (Using this map, you should declare your keyboard as
  288. // pc101 or pc102 instead of pc104 or pc105.)
  289. partial modifier_keys
  290. xkb_symbols "lwin_toggle" {
  291. virtual_modifiers AltGr;
  292. key <LWIN> {
  293. virtualMods= AltGr,
  294. symbols[Group1] = [ ISO_Next_Group ]
  295. };
  296. };
  297. // Pressing the right Win key switches to the next group.
  298. // (Using this map, you should declare your keyboard as
  299. // pc101 or pc102 instead of pc104 or pc105.)
  300. partial modifier_keys
  301. xkb_symbols "rwin_toggle" {
  302. virtual_modifiers AltGr;
  303. key <RWIN> {
  304. virtualMods= AltGr,
  305. symbols[Group1] = [ ISO_Next_Group ]
  306. };
  307. };
  308. // Pressing both Ctrl keys switches to the next or previous group
  309. // (depending on which Ctrl is pressed first).
  310. partial modifier_keys
  311. xkb_symbols "ctrls_toggle" {
  312. virtual_modifiers LControl, RControl;
  313. key <LCTL> {
  314. type[Group1]="PC_CONTROL_LEVEL2",
  315. symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
  316. virtualMods= LControl
  317. };
  318. key <RCTL> {
  319. type[Group1]="PC_CONTROL_LEVEL2",
  320. symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
  321. virtualMods= RControl
  322. };
  323. };
  324. // Pressing both Alt switches to the next or previous group
  325. // (depending on which Alt is pressed first).
  326. partial modifier_keys
  327. xkb_symbols "alts_toggle" {
  328. virtual_modifiers LAlt, RAlt;
  329. key <LALT> {
  330. type[Group1]="PC_RALT_LEVEL2",
  331. symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
  332. virtualMods= LAlt
  333. };
  334. key <RALT> {
  335. type[Group1]="PC_LALT_LEVEL2",
  336. symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
  337. virtualMods= RAlt
  338. };
  339. };
  340. // Pressing the left Shift key switches to the next group.
  341. partial modifier_keys
  342. xkb_symbols "lshift_toggle" {
  343. virtual_modifiers AltGr;
  344. key <LFSH> {
  345. symbols[Group1] = [ ISO_Next_Group ],
  346. virtualMods= AltGr
  347. };
  348. };
  349. // Pressing the right Shift key switches to the next group.
  350. partial modifier_keys
  351. xkb_symbols "rshift_toggle" {
  352. virtual_modifiers AltGr;
  353. key <RTSH> {
  354. symbols[Group1] = [ ISO_Next_Group ],
  355. virtualMods= AltGr
  356. };
  357. };
  358. // Pressing the left Alt key switches to the next group.
  359. partial modifier_keys
  360. xkb_symbols "lalt_toggle" {
  361. virtual_modifiers AltGr;
  362. key <LALT> {
  363. symbols[Group1] = [ ISO_Next_Group ],
  364. virtualMods= AltGr
  365. };
  366. };
  367. // Pressing the left Ctrl key switches to the next group.
  368. partial modifier_keys
  369. xkb_symbols "lctrl_toggle" {
  370. virtual_modifiers AltGr;
  371. key <LCTL> {
  372. symbols[Group1] = [ ISO_Next_Group ],
  373. virtualMods= AltGr
  374. };
  375. };
  376. xkb_symbols "rctrl_toggle" {
  377. virtual_modifiers AltGr;
  378. key <RCTL> {
  379. symbols[Group1] = [ ISO_Next_Group ],
  380. virtualMods= AltGr
  381. };
  382. };
  383. // Pressing Alt+Caps_Lock switches to the next group,
  384. // pressing Caps_Lock toggles CapsLock.
  385. partial modifier_keys
  386. xkb_symbols "alt_caps_toggle" {
  387. key <CAPS> {
  388. type="PC_ALT_LEVEL2",
  389. symbols[Group1] = [ Caps_Lock, ISO_Next_Group ]
  390. };
  391. };
  392. hidden partial modifier_keys
  393. xkb_symbols "olpc" {
  394. key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
  395. };
  396. partial modifier_keys
  397. xkb_symbols "alt_space_toggle" {
  398. key <SPCE> {
  399. type[Group1]="PC_ALT_LEVEL2",
  400. symbols[Group1] = [ space, ISO_Next_Group ]
  401. };
  402. };
  403. // Pressing the Scroll Lock key switches to the next group,
  404. partial modifier_keys
  405. xkb_symbols "sclk_toggle" {
  406. virtual_modifiers AltGr;
  407. key <SCLK> {
  408. virtualMods= AltGr,
  409. symbols[Group1] = [ ISO_Next_Group ]
  410. };
  411. };
  412. partial modifier_keys
  413. xkb_symbols "sclk_latch_no_lock" {
  414. virtual_modifiers AltGr;
  415. key <SCLK> {
  416. symbols[Group1] = [ ISO_Group_Latch ],
  417. actions[Group1] = [ LatchGroup(group=+1,!latchToLock,!clearLocks) ]
  418. };
  419. };
  420. // Control_L+Win_L selects the first group (presumably Lat),
  421. // Control_R+Menu selects the second group (presumably Rus).
  422. partial modifier_keys
  423. xkb_symbols "lctrl_lwin_rctrl_menu" {
  424. key <LWIN> {
  425. type[Group1] = "PC_CONTROL_LEVEL2",
  426. symbols[Group1] = [ Super_L, ISO_First_Group ]
  427. };
  428. key <MENU> {
  429. type[Group1] = "PC_CONTROL_LEVEL2",
  430. symbols[Group1] = [ Menu, ISO_Last_Group ]
  431. };
  432. };
  433. // Control_L+Win_L toggles groups.
  434. partial modifier_keys
  435. xkb_symbols "lctrl_lwin_toggle" {
  436. key <LWIN> {
  437. type[ Group1 ] = "PC_CONTROL_LEVEL2",
  438. symbols[ Group1 ] = [ Super_L, ISO_Next_Group ]
  439. };
  440. };
  441. partial modifier_keys
  442. xkb_symbols "menu_latch_group2" {
  443. key <MENU> {
  444. symbols[1] = [ ISO_Group_Latch ],
  445. actions[1] = [ LatchGroup(group=2) ]
  446. };
  447. };
  448. partial modifier_keys
  449. xkb_symbols "menu_latch_group2_lock" {
  450. key <MENU> {
  451. symbols[1] = [ ISO_Group_Latch ],
  452. actions[1] = [ LatchGroup(group=2, latchToLock=yes) ]
  453. };
  454. };
  455. partial modifier_keys
  456. xkb_symbols "menu_latch" {
  457. key <MENU> {
  458. symbols[1] = [ ISO_Group_Latch ],
  459. actions[1] = [ LatchGroup(group=+1) ]
  460. };
  461. };
  462. partial modifier_keys
  463. xkb_symbols "menu_latch_lock" {
  464. key <MENU> {
  465. symbols[1] = [ ISO_Group_Latch ],
  466. actions[1] = [ LatchGroup(group=+1, latchToLock=yes) ]
  467. };
  468. };
  469. partial modifier_keys
  470. xkb_symbols "menu_latch_negative" {
  471. key <MENU> {
  472. symbols[1] = [ ISO_Group_Latch ],
  473. actions[1] = [ LatchGroup(group=-1) ]
  474. };
  475. };
  476. partial modifier_keys
  477. xkb_symbols "menu_latch_negative_lock" {
  478. key <MENU> {
  479. symbols[1] = [ ISO_Group_Latch ],
  480. actions[1] = [ LatchGroup(group=-1, latchToLock=yes) ]
  481. };
  482. };