From 8a788b077f188b8f68be9f27c70ca0d7311a6d6c Mon Sep 17 00:00:00 2001 From: Behnam Esfahbod Date: Fri, 18 Sep 2009 17:56:41 +0430 Subject: [PATCH] Add PersoArabic and Arabic keypad options - base.xml: Add 6 keypad options - symbols/keypad: Add extaraind* and araind* layouts - symbols/kpdl: Add araind2 and araind4 layouts - symbols/ir: Remove pes_part_keypad and use keypad(extaraind_oss) --- rules/base.xml.in | 40 ++++++- symbols/ir | 34 +----- symbols/keypad | 339 ++++++++++++++++++++++++++++++++++++++++++++--------- symbols/kpdl | 57 +++++++-- symbols/nbsp | 32 +++--- 5 files changed, 386 insertions(+), 116 deletions(-) diff --git a/rules/base.xml.in b/rules/base.xml.in index 26850e3..4c9dd95 100644 --- a/rules/base.xml.in +++ b/rules/base.xml.in @@ -4678,13 +4678,13 @@ + + + + + + diff --git a/symbols/ir b/symbols/ir index a974188..773909a 100644 --- a/symbols/ir +++ b/symbols/ir @@ -13,6 +13,8 @@ // // Author: Behnam Esfahbod // +// Copyright © 2009 Behnam Esfahbod + partial default alphanumeric_keys xkb_symbols "pes" { @@ -31,7 +33,9 @@ xkb_symbols "pes_keypad" { name[Group1]= "Iran - Persian, with Persian Keypad"; include "ir(pes_part_basic)"; - include "ir(pes_part_keypad)"; + include "ir(pes_part_ext)"; + + include "keypad(extaraind_oss)"; include "nbsp(zwnj2nb3nnb4)"; include "level3(ralt_switch)"; @@ -111,34 +115,6 @@ xkb_symbols "pes_part_ext" { key { [ 0x10006f0, parenleft, 0x100200f, 0 ] }; }; -partial hidden alphanumeric_keys -xkb_symbols "pes_part_keypad" { - - // Persian digits and Mathematical operators - key { [ division, XF86_Ungrab ] }; - key { [ multiply, XF86_ClearGrab ] }; - key { [ 0x1002212, XF86_Prev_VMode ] }; - key { [ plus, XF86_Next_VMode ] }; - - key { [ KP_Enter ] }; - key { [ equal ] }; - - key { [ KP_Home, 0x10006f7 ] }; - key { [ KP_Up, 0x10006f8 ] }; - key { [ KP_Prior, 0x10006f9 ] }; - - key { [ KP_Left, 0x10006f4 ] }; - key { [ KP_Begin, 0x10006f5 ] }; - key { [ KP_Right, 0x10006f6 ] }; - - key { [ KP_End, 0x10006f1 ] }; - key { [ KP_Down, 0x10006f2 ] }; - key { [ KP_Next, 0x10006f3 ] }; - - key { [ KP_Insert, 0x10006f0 ] }; - key { [ KP_Delete, 0x100066b ] }; -}; - //////////////////////////////////////// // Kurdish Layout diff --git a/symbols/keypad b/symbols/keypad index fa2d72f..fb657f0 100644 --- a/symbols/keypad +++ b/symbols/keypad @@ -9,8 +9,6 @@ xkb_symbols "overlay" { partial hidden keypad_keys xkb_symbols "overlay1" { - // Begin "Keypad" section - key { [ KP_Home ], overlay1= }; key { [ KP_Up ], overlay1= }; key { [ KP_Prior ], overlay1= }; @@ -41,14 +39,11 @@ xkb_symbols "overlay1" { key { [ KP_0 ] }; key { [ KP_Decimal ] }; - // End "Keypad" section }; partial hidden keypad_keys xkb_symbols "overlay2" { - // Begin "Keypad" section - key { [ KP_Home ], overlay2= }; key { [ KP_Up ], overlay2= }; key { [ KP_Prior ], overlay2= }; @@ -79,39 +74,38 @@ xkb_symbols "overlay2" { key { [ KP_0 ] }; key { [ KP_Decimal ] }; - // End "Keypad" section }; partial hidden default keypad_keys xkb_symbols "x11" { -// Ungrab cancels server/keyboard/pointer grabs + // Ungrab cancels server/keyboard/pointer grabs key { - type="CTRL+ALT", - symbols[Group1]= [ KP_Divide, XF86_Ungrab ] + type="CTRL+ALT", + symbols[Group1]= [ KP_Divide, XF86_Ungrab ] }; -// ClsGrb kills whichever client has a grab in effect + // ClsGrb kills whichever client has a grab in effect key { - type="CTRL+ALT", - symbols[Group1]= [ KP_Multiply, XF86_ClearGrab ] + type="CTRL+ALT", + symbols[Group1]= [ KP_Multiply, XF86_ClearGrab ] }; -// -VMode switches to the previous video mode + // -VMode switches to the previous video mode key { - type="CTRL+ALT", - symbols[Group1]= [ KP_Subtract, XF86_Prev_VMode ] + type="CTRL+ALT", + symbols[Group1]= [ KP_Subtract, XF86_Prev_VMode ] + }; + + // +VMode switches to the next video mode + key { + type="CTRL+ALT", + symbols[Group1]= [ KP_Add, XF86_Next_VMode ] }; key { [ KP_Home, KP_7 ] }; key { [ KP_Up, KP_8 ] }; key { [ KP_Prior, KP_9 ] }; -// +VMode switches to the next video mode - key { - type="CTRL+ALT", - symbols[Group1]= [ KP_Add, XF86_Next_VMode ] - }; - key { [ KP_Left, KP_4 ] }; key { [ KP_Begin, KP_5 ] }; key { [ KP_Right, KP_6 ] }; @@ -271,11 +265,11 @@ xkb_symbols "ossmath" { key.type[Group1]="FOUR_LEVEL_X" ; - key { [ KP_Divide, 0x1002215, 0x10000F7, XF86_Ungrab ] }; // / ∕ ÷ - key { [ KP_Multiply, 0x10022C5, 0x10000D7, XF86_ClearGrab ] }; // * ⋅ × - key { [ KP_Subtract, 0x1002212, 0x1002212, XF86_Prev_VMode ] }; // - − − + key { [ KP_Divide, U2215, U00F7, XF86_Ungrab ] }; // / ∕ ÷ + key { [ KP_Multiply, U22C5, U00D7, XF86_ClearGrab ] }; // * ⋅ × + key { [ KP_Subtract, U2212, U2212, XF86_Prev_VMode ] }; // - − − - key { [ KP_Add, 0x100002B, 0x100002B, XF86_Next_VMode ] }; // + + + + key { [ KP_Add, U002B, U002B, XF86_Next_VMode ] }; // + + + }; @@ -299,11 +293,11 @@ xkb_symbols "futuremath" { key.type[Group1]="FOUR_LEVEL_X" ; - key { [ 0x1002215, KP_Divide, 0x10000F7, XF86_Ungrab ] }; // ∕ / ÷ - key { [ 0x10022C5, KP_Multiply, 0x10000D7, XF86_ClearGrab ] }; // ⋅ * × - key { [ 0x1002212, KP_Subtract, 0x1002212, XF86_Prev_VMode ] }; // − - − + key { [ U2215, KP_Divide, U00F7, XF86_Ungrab ] }; // ∕ / ÷ + key { [ U22C5, KP_Multiply, U00D7, XF86_ClearGrab ] }; // ⋅ * × + key { [ U2212, KP_Subtract, U2212, XF86_Prev_VMode ] }; // − - − - key { [ 0x100002B, KP_Add, 0x100002B, XF86_Next_VMode ] }; // + + + + key { [ U002B, KP_Add, U002B, XF86_Next_VMode ] }; // + + + }; @@ -360,7 +354,7 @@ xkb_symbols "legacynumber" { key { [ KP_Home, KP_7 ] }; // 7 key { [ KP_Up, KP_8 ] }; // 8 key { [ KP_Prior, KP_9 ] }; // 9 - + key { [ KP_Left, KP_4 ] }; // 4 key { [ KP_Begin, KP_5 ] }; // 5 key { [ KP_Right, KP_6 ] }; // 6 @@ -402,7 +396,7 @@ xkb_symbols "legacynumber_wang" { key { [ KP_Home, KP_7, less ] }; // 7 < key { [ KP_Up, KP_8, greater ] }; // 8 > key { [ KP_Prior, KP_9, asciicircum ] }; // 9 ^ - + key { [ KP_Left, KP_4, bracketleft ] }; // 4 [ key { [ KP_Begin, KP_5, bracketright ] }; // 5 ] key { [ KP_Right, KP_6, dollar ] }; // 6 $ @@ -439,19 +433,19 @@ xkb_symbols "ossnumber" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; - key { [ KP_Home, KP_7, 0x1002196, 0x10021D6 ] }; // 7 ↖ ⇖ - key { [ KP_Up, KP_8, 0x1002191, 0x10021D1 ] }; // 8 ↑ ⇑ - key { [ KP_Prior, KP_9, 0x1002197, 0x10021D7 ] }; // 9 ↗ ⇗ - - key { [ KP_Left, KP_4, 0x1002190, 0x10021D0 ] }; // 4 ← ⇐ - key { [ KP_Begin, KP_5, 0x1002194, 0x10021D4 ] }; // 5 ↔ ⇔ - key { [ KP_Right, KP_6, 0x1002192, 0x10021D2 ] }; // 6 → ⇒ + key { [ KP_Home, KP_7, U2196, U21D6 ] }; // 7 ↖ ⇖ + key { [ KP_Up, KP_8, U2191, U21D1 ] }; // 8 ↑ ⇑ + key { [ KP_Prior, KP_9, U2197, U21D7 ] }; // 9 ↗ ⇗ - key { [ KP_End, KP_1, 0x1002199, 0x10021D9 ] }; // 1 ↙ ⇙ - key { [ KP_Down, KP_2, 0x1002193, 0x10021D3 ] }; // 2 ↓ ⇓ - key { [ KP_Next, KP_3, 0x1002198, 0x10021D8 ] }; // 3 ↘ ⇘ + key { [ KP_Left, KP_4, U2190, U21D0 ] }; // 4 ← ⇐ + key { [ KP_Begin, KP_5, U2194, U21D4 ] }; // 5 ↔ ⇔ + key { [ KP_Right, KP_6, U2192, U21D2 ] }; // 6 → ⇒ - key { [ KP_Insert, KP_0, 0x1002195, 0x10021D5 ] }; // 0 ↕ ⇕ + key { [ KP_End, KP_1, U2199, U21D9 ] }; // 1 ↙ ⇙ + key { [ KP_Down, KP_2, U2193, U21D3 ] }; // 2 ↓ ⇓ + key { [ KP_Next, KP_3, U2198, U21D8 ] }; // 3 ↘ ⇘ + + key { [ KP_Insert, KP_0, U2195, U21D5 ] }; // 0 ↕ ⇕ }; @@ -479,19 +473,19 @@ xkb_symbols "ossnumber_wang" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; - key { [ KP_Home, KP_7, less, 0x1002196 ] }; // 7 < ↖ - key { [ KP_Up, KP_8, greater, 0x1002191 ] }; // 8 > ↑ - key { [ KP_Prior, KP_9, asciicircum, 0x1002197 ] }; // 9 ^ ↗ - - key { [ KP_Left, KP_4, bracketleft, 0x1002190 ] }; // 4 [ ← - key { [ KP_Begin, KP_5, bracketright, 0x1002194 ] }; // 5 ] ↔ - key { [ KP_Right, KP_6, dollar, 0x1002192 ] }; // 6 $ → + key { [ KP_Home, KP_7, less, U2196 ] }; // 7 < ↖ + key { [ KP_Up, KP_8, greater, U2191 ] }; // 8 > ↑ + key { [ KP_Prior, KP_9, asciicircum, U2197 ] }; // 9 ^ ↗ + + key { [ KP_Left, KP_4, bracketleft, U2190 ] }; // 4 [ ← + key { [ KP_Begin, KP_5, bracketright, U2194 ] }; // 5 ] ↔ + key { [ KP_Right, KP_6, dollar, U2192 ] }; // 6 $ → - key { [ KP_End, KP_1, ampersand, 0x1002199 ] }; // 1 & ↙ - key { [ KP_Down, KP_2, at, 0x1002193 ] }; // 2 @ ↓ - key { [ KP_Next, KP_3, numbersign, 0x1002198 ] }; // 3 # ↘ + key { [ KP_End, KP_1, ampersand, U2199 ] }; // 1 & ↙ + key { [ KP_Down, KP_2, at, U2193 ] }; // 2 @ ↓ + key { [ KP_Next, KP_3, numbersign, U2198 ] }; // 3 # ↘ - key { [ KP_Insert, KP_0, apostrophe, 0x1002195 ] }; // 0 ' ↕ + key { [ KP_Insert, KP_0, apostrophe, U2195 ] }; // 0 ' ↕ }; // Standard base "pc" layout only contains cursor keys, and then gets @@ -543,7 +537,7 @@ xkb_symbols "hex" { key { [ NoSymbol, NoSymbol, a ] }; key { [ NoSymbol, NoSymbol, b ] }; key { [ NoSymbol, NoSymbol, c ] }; - + // home row key { [ NoSymbol, NoSymbol, d ] }; key { [ NoSymbol, NoSymbol, e ] }; @@ -578,3 +572,240 @@ xkb_symbols "atm" { key { [ NoSymbol, KP_8 ] }; key { [ NoSymbol, KP_9 ] }; }; + + +//////////////////////////////////////// +// Keypad layouts for Extended Arabic-Indic digits +// for Persian, Kurdish, Pashto, Southern Uzbek, Urdu languages +// Used by ir, af, pk +// +// Author: Behnam Esfahbod +// +// Copyright © 2009 Behnam Esfahbod +// Copyright © 2006 Nicolas Mailhot + +// Extended Arabic-Indic keypad number area +// +// ┏━━━━━┱ ⇱ Home +// ┃Num ┃ ⇲ End +// ┃Lock⇭┃ ⇞ Page up +// ┡━━━━━╃─────┼─────┼ ⇟ Page down +// │ ۷ │ ۸ │ ۹ │ ⇞ Page up +// │ ⇱ │ ⇧ │ ⇞ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ ۴ │ ۵ │ ۶ │ ⇦⇧⇨⇩ Directions +// │ ⇦ │ │ ⇨ │ +// ├─────┼─────┼─────╆ +// │ ۱ │ ۲ │ ۳ ┃ +// │ ⇲ │ ⇩ │ ⇟ ┃ 1 None +// ├─────┴─────┼─────┨ 2 Num Lock ⇭ +// │ ۰ │ +// │ ⎀ │ +// └───────────┴ +partial keypad_keys +xkb_symbols "extaraind_number" { + + key.type[Group1]="KEYPAD" ; + + key { [ KP_Home, U06F7 ] }; // ۷ + key { [ KP_Up, U06F8 ] }; // ۸ + key { [ KP_Prior, U06F9 ] }; // ۹ + + key { [ KP_Left, U06F4 ] }; // ۴ + key { [ KP_Begin, U06F5 ] }; // ۵ + key { [ KP_Right, U06F6 ] }; // ۶ + + key { [ KP_End, U06F1 ] }; // ۱ + key { [ KP_Down, U06F2 ] }; // ۲ + key { [ KP_Next, U06F3 ] }; // ۳ + + key { [ KP_Insert, U06F0 ] }; // ۰ +}; + +// Extended Arabic-Indic keypad number area with arrow symbols +// +// ┏━━━━━┱ ⇱ Home +// ┃Num ┃ ⇲ End +// ┃Lock⇭┃ ⇞ Page up +// ┡━━━━━╃─────┼─────┼ ⇟ Page down +// │ ۷ ⇖ │ ۸ ⇑ │ ۹ ⇗ │ ⇞ Page up +// │ ⇱ ↖ │ ⇧ ↑ │ ⇞ ↗ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ ۴ ⇐ │ ۵ ⇔ │ ۶ ⇗ │ ⇦⇧⇨⇩ Directions +// │ ⇦ ← │ ↔ │ ⇨ ↗ │ ⍽ narrow no-break space +// ├─────┼─────┼─────╆ +// │ ۱ ⇙ │ ۲ ⇓ │ ۳ ⇘ ┃ +// │ ⇲ ↙ │ ⇩ ↓ │ ⇟ ↘ ┃ 1 None +// ├─────┴─────┼─────┨ 2 Num Lock ⇭ +// │ ۰ ⇕ │ 3 Level3 ⇮ +// │ ⎀ ↕ │ 4 Shift+Level3 ⇧⇮ +// └───────────┴ +partial keypad_keys +xkb_symbols "extaraind_number_oss" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Home, U06F7, U2196, U21D6 ] }; // ۷ ↖ ⇖ + key { [ KP_Up, U06F8, U2191, U21D1 ] }; // ۸ ↑ ⇑ + key { [ KP_Prior, U06F9, U2197, U21D7 ] }; // ۹ ↗ ⇗ + + key { [ KP_Left, U06F4, U2190, U21D0 ] }; // ۴ ← ⇐ + key { [ KP_Begin, U06F5, U2194, U21D4 ] }; // ۵ ↔ ⇔ + key { [ KP_Right, U06F6, U2192, U21D2 ] }; // ۶ → ⇒ + + key { [ KP_End, U06F1, U2199, U21D9 ] }; // ۱ ↙ ⇙ + key { [ KP_Down, U06F2, U2193, U21D3 ] }; // ۲ ↓ ⇓ + key { [ KP_Next, U06F3, U2198, U21D8 ] }; // ۳ ↘ ⇘ + + key { [ KP_Insert, U06F0, U2195, U21D5 ] }; // ۰ ↕ ⇕ +}; + +// Extended Arabic-Indic keypad definition +keypad_keys +xkb_symbols "extaraind" { + + include "keypad(core)" + include "keypad(legacymath)" + include "keypad(extaraind_number)" + include "kpdl(araind2)" +}; + +// Extended Arabic-Indic with new Unicode math characters keypad definition +keypad_keys +xkb_symbols "extaraind_oss" { + + include "keypad(core)" + include "keypad(ossmath)" + include "keypad(extaraind_number_oss)" + include "kpdl(araind4)" +}; + +// Extended Arabic-Indic with forward-looking keypad definition +// Won't work with applications that make ASCII assumptions +keypad_keys +xkb_symbols "extaraind_future" { + + include "keypad(core)" + include "keypad(futuremath)" + include "keypad(extaraind_number_oss)" + include "kpdl(araind4)" +}; + + +//////////////////////////////////////// +// Keypad layouts for Arabic-Indic keypad +// for Arabic language +// Used by ara +// +// Author: Behnam Esfahbod +// +// Copyright © 2009 Behnam Esfahbod +// Copyright © 2006 Nicolas Mailhot + +// Arabic-Indic keypad number area +// +// ┏━━━━━┱ ⇱ Home +// ┃Num ┃ ⇲ End +// ┃Lock⇭┃ ⇞ Page up +// ┡━━━━━╃─────┼─────┼ ⇟ Page down +// │ ٧ │ ٨ │ ٩ │ ⇞ Page up +// │ ⇱ │ ⇧ │ ⇞ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ ٤ │ ٥ │ ٦ │ ⇦⇧⇨⇩ Directions +// │ ⇦ │ │ ⇨ │ +// ├─────┼─────┼─────╆ +// │ ١ │ ٢ │ ٣ ┃ +// │ ⇲ │ ⇩ │ ⇟ ┃ 1 None +// ├─────┴─────┼─────┨ 2 Num Lock ⇭ +// │ ٠ │ +// │ ⎀ │ +// └───────────┴ +partial keypad_keys +xkb_symbols "araind_number" { + + key.type[Group1]="KEYPAD" ; + + key { [ KP_Home, U0667 ] }; // ٧ + key { [ KP_Up, U0668 ] }; // ٨ + key { [ KP_Prior, U0669 ] }; // ٩ + + key { [ KP_Left, U0664 ] }; // ٤ + key { [ KP_Begin, U0665 ] }; // ٥ + key { [ KP_Right, U0666 ] }; // ٦ + + key { [ KP_End, U0661 ] }; // ١ + key { [ KP_Down, U0662 ] }; // ٢ + key { [ KP_Next, U0663 ] }; // ٣ + + key { [ KP_Insert, U0660 ] }; // ٠ +}; + +// Extended Arabic-Indic keypad number area with arrow symbols +// +// ┏━━━━━┱ ⇱ Home +// ┃Num ┃ ⇲ End +// ┃Lock⇭┃ ⇞ Page up +// ┡━━━━━╃─────┼─────┼ ⇟ Page down +// │ ٧ ⇖ │ ٨ ⇑ │ ٩ ⇗ │ ⇞ Page up +// │ ⇱ ↖ │ ⇧ ↑ │ ⇞ ↗ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ ٤ ⇐ │ ٥ ⇔ │ ٦ ⇗ │ ⇦⇧⇨⇩ Directions +// │ ⇦ ← │ ↔ │ ⇨ ↗ │ ⍽ narrow no-break space +// ├─────┼─────┼─────╆ +// │ ١ ⇙ │ ٢ ⇓ │ ٣ ⇘ ┃ +// │ ⇲ ↙ │ ⇩ ↓ │ ⇟ ↘ ┃ 1 None +// ├─────┴─────┼─────┨ 2 Num Lock ⇭ +// │ ٠ ⇕ │ 3 Level3 ⇮ +// │ ⎀ ↕ │ 4 Shift+Level3 ⇧⇮ +// └───────────┴ +partial keypad_keys +xkb_symbols "araind_number_oss" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Home, U0667, U2196, U21D6 ] }; // ٧ ↖ ⇖ + key { [ KP_Up, U0668, U2191, U21D1 ] }; // ٨ ↑ ⇑ + key { [ KP_Prior, U0669, U2197, U21D7 ] }; // ٩ ↗ ⇗ + + key { [ KP_Left, U0664, U2190, U21D0 ] }; // ٤ ← ⇐ + key { [ KP_Begin, U0665, U2194, U21D4 ] }; // ٥ ↔ ⇔ + key { [ KP_Right, U0666, U2192, U21D2 ] }; // ٦ → ⇒ + + key { [ KP_End, U0661, U2199, U21D9 ] }; // ١ ↙ ⇙ + key { [ KP_Down, U0662, U2193, U21D3 ] }; // ٢ ↓ ⇓ + key { [ KP_Next, U0663, U2198, U21D8 ] }; // ٣ ↘ ⇘ + + key { [ KP_Insert, U0660, U2195, U21D5 ] }; // ٠ ↕ ⇕ +}; + +// Arabic keypad definition +keypad_keys +xkb_symbols "araind" { + + include "keypad(core)" + include "keypad(legacymath)" + include "keypad(araind_number)" + include "kpdl(araind2)" +}; + +// Extended Arabic-Indic with new Unicode math characters keypad definition +keypad_keys +xkb_symbols "araind_oss" { + + include "keypad(core)" + include "keypad(ossmath)" + include "keypad(araind_number_oss)" + include "kpdl(araind4)" +}; + +// Arabic with forward-looking keypad definition +// Won't work with applications that make ASCII assumptions +keypad_keys +xkb_symbols "araind_future" { + + include "keypad(core)" + include "keypad(futuremath)" + include "keypad(araind_number_oss)" + include "kpdl(araind4)" +}; + diff --git a/symbols/kpdl b/symbols/kpdl index a8bdfb7..396b63e 100644 --- a/symbols/kpdl +++ b/symbols/kpdl @@ -44,7 +44,7 @@ xkb_symbols "dotoss" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; - key { [ KP_Delete, period, comma, 0x100202F ] }; // . , ⍽ (narrow no-break space) + key { [ KP_Delete, period, comma, U202F ] }; // . , ⍽ (narrow no-break space) }; @@ -64,17 +64,7 @@ xkb_symbols "commaoss" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; - key { [ KP_Delete, comma, period, 0x100202F ] }; // , . ⍽ (narrow no-break space) -}; - - -// Momayyez : Bahrain, Iran, Iraq, Kuwait, Oman, Qatar, Saudi Arabia, Syria, UAE -partial keypad_keys -xkb_symbols "momayyezoss" { - - key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; - - key { [ KP_Delete, 0x100066B, comma, 0x100202F ] }; // ? , ⍽ (narrow no-break space) + key { [ KP_Delete, comma, period, U202F ] }; // , . ⍽ (narrow no-break space) }; @@ -84,7 +74,7 @@ xkb_symbols "kposs" { key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; - key { [ KP_Delete, KP_Decimal, KP_Separator, 0x100202F ] }; // ? ? ⍽ (narrow no-break space) + key { [ KP_Delete, KP_Decimal, KP_Separator, U202F ] }; // ? ? ⍽ (narrow no-break space) }; // Spreadsheets may be configured to use the dot as decimal @@ -103,3 +93,44 @@ xkb_symbols "semi" { key { [ NoSymbol, NoSymbol, semicolon ] }; }; + + +//////////////////////////////////////// +// Arabic decimal separator and thousands separator on +// for Arabic, Persian, Kurdish, Pashto, Southern Uzbek, Urdu languages +// +// Author: Behnam Esfahbod +// +// Copyright © 2009 Behnam Esfahbod +// Copyright © 2006 Nicolas Mailhot + +// Two level for Arabic-Indic and Extended Arabic-Indic keypad layouts +// Used by keypad(extaraind), keypad(araind) +// Delete on level 1 +// Arabic decimal separator on level 2 +partial keypad_keys +xkb_symbols "araind2" { + + key.type[Group1]="KEYPAD" ; + + key { [ KP_Delete, U066B ] }; +}; + +// Four level for Arabic-Indic and Extended Arabic-Indic keypad layouts +// Delete on level 1 +// Arabic decimal separator on level 2 +// Arabic thousands separator on level 3 +// NNBSP on level 4 +partial keypad_keys +xkb_symbols "araind4" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Delete, U066B, U066C, U202F ] }; +}; + +partial keypad_keys +xkb_symbols "momayyezoss" { + include "kpdl(araind)"; +}; + diff --git a/symbols/nbsp b/symbols/nbsp index 2f273be..258e052 100644 --- a/symbols/nbsp +++ b/symbols/nbsp @@ -69,7 +69,7 @@ partial xkb_symbols "level3n" { key { type[Group1]="FOUR_LEVEL", - symbols[Group1]= [ space, space, nobreakspace, 0x100202F ] + symbols[Group1]= [ space, space, nobreakspace, U202F ] }; }; @@ -78,7 +78,7 @@ partial xkb_symbols "level4n" { key { type[Group1]="EIGHT_LEVEL", - symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ] + symbols[Group1]= [ space, space, space, nobreakspace, space, U202F, NoSymbol, NoSymbol ] }; }; @@ -89,40 +89,40 @@ partial xkb_symbols "level4nl" { key { type[Group1]="LOCAL_EIGHT_LEVEL", - symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ] + symbols[Group1]= [ space, space, space, nobreakspace, space, U202F, NoSymbol, NoSymbol ] }; }; //////////////////////////////////////// // Zero-Width Non-Joiner & Zero-Width Joiner +// // Author: Behnam Esfahbod +// +// Copyright © 2009 Behnam Esfahbod // ZWNJ and ZWJ are widely used in Persian, Kurdinsh, Pashto, Uzbek and other // languages that use PersoArabic script. - // ZWNJ on level 2 partial xkb_symbols "zwnj2" { key { type[Group1]="TWO_LEVEL", - symbols[Group1]= [ space, 0x100200c ] + symbols[Group1]= [ space, U200C ] }; }; - // ZWNJ on level 2 // ZWJ on level 3 partial xkb_symbols "zwnj2zwj3" { key { type[Group1]="FOUR_LEVEL", - symbols[Group1]= [ space, 0x100200c, 0x100200d ] + symbols[Group1]= [ space, U200C, U200D ] }; }; - // ZWNJ on level 2 // ZWJ on level 3 // NBSP on level 4 @@ -130,7 +130,7 @@ partial xkb_symbols "zwnj2zwj3nb4" { key { type[Group1]="FOUR_LEVEL", - symbols[Group1]= [ space, 0x100200c, 0x100200d, nobreakspace ] + symbols[Group1]= [ space, U200C, U200D, nobreakspace ] }; }; @@ -141,11 +141,10 @@ partial xkb_symbols "zwnj2nb3" { key { type[Group1]="FOUR_LEVEL", - symbols[Group1]= [ space, 0x100200c, nobreakspace ] + symbols[Group1]= [ space, U200C, nobreakspace ] }; }; - // ZWNJ on level 2 // ZWJ on level 3 // NBSP on level 4 @@ -154,11 +153,10 @@ partial xkb_symbols "zwnj2nb3s" { key { type[Group1]="FOUR_LEVEL", - symbols[Group1]= [ space, 0x100200c, nobreakspace, NoSymbol ] + symbols[Group1]= [ space, U200C, nobreakspace, NoSymbol ] }; }; - // ZWNJ on level 2 // NBSP on level 3 // ZWJ on level 4 @@ -166,11 +164,10 @@ partial xkb_symbols "zwnj2nb3zwj4" { key { type[Group1]="FOUR_LEVEL", - symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100200d ] + symbols[Group1]= [ space, U200C, nobreakspace, U200D ] }; }; - // ZWNJ on level 2 // NBSP on level 3 // NNBSP on level 4 @@ -179,11 +176,10 @@ partial xkb_symbols "zwnj2nb3nnb4" { key { type[Group1]="FOUR_LEVEL", - symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100202F ] + symbols[Group1]= [ space, U200C, nobreakspace, U202F ] }; }; - // ZWNJ on level 3 // ZWJ on level 4 // Used by in(deva), in(olpc) @@ -191,7 +187,7 @@ partial xkb_symbols "zwnj3zwj4" { key { type[Group1]="FOUR_LEVEL", - symbols[Group1]= [ space, space, 0x100200c, 0x100200d ] + symbols[Group1]= [ space, space, U200C, U200D ] }; }; -- 1.5.6.3