diff options
Diffstat (limited to 'symbols/keypad')
-rw-r--r-- | symbols/keypad | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/symbols/keypad b/symbols/keypad index 9c0f6447..cd8f0ce8 100644 --- a/symbols/keypad +++ b/symbols/keypad @@ -137,3 +137,215 @@ partial keypad_keys xkb_symbols "dot" { key <KPDL> { [ KP_Delete, KP_Decimal ] }; }; + + +// Legacy PC keypad definition +// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> +keypad_keys +xkb_symbols "legacy" { + + include "keypad(core)" + include "keypad(legacymath)" + include "keypad(legacynumber)" +}; + + +// Complete new keypad definition +// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> +keypad_keys +xkb_symbols "oss" { + + include "keypad(core)" + include "keypad(ossmath)" + include "keypad(ossnumber)" +}; + + +// Latin9 restriction of new keypad definition +// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> +keypad_keys +xkb_symbols "oss_latin9" { + + include "keypad(core)" + include "keypad(ossmath_latin9)" + include "keypad(legacynumber)" + + key <KPDL> { type="FOUR_LEVEL_MIXED_KEYPAD", + [ KP_Delete, period, comma, nobreakspace ] }; // <delete> . , ⍽ (no-break space) +}; + +// Keypad keys nobody changes +// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> +partial keypad_keys +xkb_symbols "core" { + + modifier_map Mod2 { Num_Lock }; + + key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] }; + key <KPEN> { [ KP_Enter ] }; + key <KPEQ> { [ KP_Equal ] }; +}; + + +// Legacy keypad math area +// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> +// +// ┏━━━━━┱─────┬─────┬─────┐ +// ┃Num ┃ ₁ │ ₂ │ ₃ │ ₁ <XF86_Ungrab> +// ┃Lock⇭┃ / │ * │ - │ ₂ <XF86_ClearGrab> +// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode> +// │ ₄ │ ₄ <XF86_Next_VMode> +// │ │ +// ┤ │ 1 None +// │ │ 2 Ctrl+Alt +// │ + │ +// ╆━━━━━┪ +partial keypad_keys +xkb_symbols "legacymath" { + + key.type[Group1]="CTRL+ALT" ; + + key <KPDV> { [ KP_Divide, XF86_Ungrab ] }; // / <XF86_Ungrab> + key <KPMU> { [ KP_Multiply, XF86_ClearGrab ] }; // * <XF86_ClearGrab> + key <KPSU> { [ KP_Subtract, XF86_Prev_VMode ] }; // - <XF86_Prev_VMode> + + key <KPAD> { [ KP_Add, XF86_Next_VMode ] }; // + <XF86_Next_VMode> + +}; + + +// Keypad math area with non-CS operators +// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> +// +// ┏━━━━━┱─────┬─────┬─────┐ +// ┃Num ┃ ∕ ₁ │ . ₂ │ − ₃ │ ₁ <XF86_Ungrab> +// ┃Lock⇭┃ / ÷ │ * × │ - − │ ₂ <XF86_ClearGrab> +// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode> +// │ + ₄ │ ₄ <XF86_Next_VMode> +// │ │ +// ┤ │ 1 None +// │ │ 2 Level3 ⇮ +// │ + + │ 3 Shift+Level3 ⇧⇮ +// ╆━━━━━┪ 4 Ctrl+Alt +partial keypad_keys +xkb_symbols "ossmath" { + + key.type[Group1]="FOUR_LEVEL_X" ; + + key <KPDV> { [ KP_Divide, 0x1002215, 0x10000F7, XF86_Ungrab ] }; // / ∕ ÷ <XF86_Ungrab> + key <KPMU> { [ KP_Multiply, 0x10022C5, 0x10000D7, XF86_ClearGrab ] }; // * ⋅ × <XF86_ClearGrab> + key <KPSU> { [ KP_Subtract, 0x1002212, 0x1002212, XF86_Prev_VMode ] }; // - − − <XF86_Prev_VMode> + + key <KPAD> { [ KP_Add, 0x100002B, 0x100002B, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode> + +}; + + +// Keypad math area with non-CS operators, restricted to latin9 +// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> +// +// ┏━━━━━┱─────┬─────┬─────┐ +// ┃Num ┃ / ₁ │ · ₂ │ - ₃ │ ₁ <XF86_Ungrab> +// ┃Lock⇭┃ / ÷ │ * × │ - - │ ₂ <XF86_ClearGrab> +// ┡━━━━━╃─────┼─────┼─────┤ ₃ <XF86_Prev_VMode> +// │ + ₄ │ ₄ <XF86_Next_VMode> +// │ │ +// ┤ │ 1 None +// │ │ 2 Level3 ⇮ +// │ + + │ 3 Shift+Level3 ⇧⇮ +// ╆━━━━━┪ 4 Ctrl+Alt +partial keypad_keys +xkb_symbols "ossmath_latin9" { + + key.type[Group1]="FOUR_LEVEL_X"; + + key <KPDV> { [ KP_Divide, slash, division, XF86_Ungrab ] }; // / / ÷ <XF86_Ungrab> + key <KPMU> { [ KP_Multiply, periodcentered, multiply, XF86_ClearGrab ] }; // * · × <XF86_ClearGrab> + key <KPSU> { [ KP_Subtract, minus, minus, XF86_Prev_VMode ] }; // - - - <XF86_Prev_VMode> + + key <KPAD> { [ KP_Add, plus, plus, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode> +}; + + +// Legacy keypad number area +// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> +// +// ┏━━━━━┱ ⇱ Home +// ┃Num ┃ ⇲ End +// ┃Lock⇭┃ ⇞ Page up +// ┡━━━━━╃─────┼─────┼ ⇟ Page down +// │ 7 │ 8 │ 9 │ ⇞ Page up +// │ ⇱ │ ⇧ │ ⇞ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions +// │ ⇦ │ │ ⇨ │ +// ├─────┼─────┼─────╆━━━━━┪ +// │ 1 │ 2 │ 3 ┃Enter┃ +// │ ⇲ │ ⇩ │ ⇟ ┃ ⎆ ┃ 1 None +// ├─────┴─────┼─────┨ ┃ 2 Num Lock ⇭ +// │ 0 │ . ┃ ┃ +// │ ⎀ │ ␥ ┃ ┃ +// └───────────┴─────┺━━━━━┛ +partial keypad_keys +xkb_symbols "legacynumber" { + + key.type[Group1]="KEYPAD" ; + + key <KP7> { [ KP_Home, KP_7 ] }; // <home> 7 + key <KP8> { [ KP_Up, KP_8 ] }; // <up> 8 + key <KP9> { [ KP_Prior, KP_9 ] }; // <prior> 9 + + key <KP4> { [ KP_Left, KP_4 ] }; // <left> 4 + key <KP5> { [ KP_Begin, KP_5 ] }; // <begin> 5 + key <KP6> { [ KP_Right, KP_6 ] }; // <right> 6 + + key <KP1> { [ KP_End, KP_1 ] }; // <end> 1 + key <KP2> { [ KP_Down, KP_2 ] }; // <down> 2 + key <KP3> { [ KP_Next, KP_3 ] }; // <next> 3 + + key <KP0> { [ KP_Insert, KP_0 ] }; // <insert> 0 + key <KPDL> { [ KP_Delete, KP_Decimal ] }; // <delete> . +}; + + +// Keypad number area with arrow symbols +// Copyright © 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> +// +// ┏━━━━━┱ ⇱ Home +// ┃Num ┃ ⇲ End +// ┃Lock⇭┃ ⇞ Page up +// ┡━━━━━╃─────┼─────┼ ⇟ Page down +// │ 7 ⇖ │ 8 ⇑ │ 9 ⇗ │ ⇞ Page up +// │ ⇱ ↖ │ ⇧ ↑ │ ⇞ ↗ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ 4 ⇐ │ 5 ⇔ │ 6 ⇗ │ ⇦⇧⇨⇩ Directions +// │ ⇦ ← │ ↔ │ ⇨ ↗ │ ⍽ narrow no-break space +// ├─────┼─────┼─────╆━━━━━┪ +// │ 1 ⇙ │ 2 ⇓ │ 3 ⇘ ┃Enter┃ +// │ ⇲ ↙ │ ⇩ ↓ │ ⇟ ↘ ┃ ⎆ ┃ 1 None +// ├─────┴─────┼─────┨ ┃ 2 Num Lock ⇭ +// │ 0 ⇕ │ . ⍽ ┃ ┃ 3 Level3 ⇮ +// │ ⎀ ↕ │ ␥ , ┃ ┃ 4 Shift+Level3 ⇧⇮ +// └───────────┴─────┺━━━━━┛ +partial keypad_keys +xkb_symbols "ossnumber" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key <KP7> { [ KP_Home, KP_7, 0x1002196, 0x10021D6 ] }; // <home> 7 ↖ ⇖ + key <KP8> { [ KP_Up, KP_8, 0x1002191, 0x10021D1 ] }; // <up> 8 ↑ ⇑ + key <KP9> { [ KP_Prior, KP_9, 0x1002197, 0x10021D7 ] }; // <prior> 9 ↗ ⇗ + + key <KP4> { [ KP_Left, KP_4, 0x1002190, 0x10021D0 ] }; // <left> 4 ← ⇐ + key <KP5> { [ KP_Begin, KP_5, 0x1002194, 0x10021D4 ] }; // <begin> 5 ↔ ⇔ + key <KP6> { [ KP_Right, KP_6, 0x1002192, 0x10021D2 ] }; // <right> 6 → ⇒ + + key <KP1> { [ KP_End, KP_1, 0x1002199, 0x10021D9 ] }; // <end> 1 ↙ ⇙ + key <KP2> { [ KP_Down, KP_2, 0x1002193, 0x10021D3 ] }; // <down> 2 ↓ ⇓ + key <KP3> { [ KP_Next, KP_3, 0x1002198, 0x10021D8 ] }; // <next> 3 ↘ ⇘ + + key <KP0> { [ KP_Insert, KP_0, 0x1002195, 0x10021D5 ] }; // <insert> 0 ↕ ⇕ + // We could use KP_Decimal and KP_Separator but we do not want the locale + // decimal and separator symbol but locale-insensitive dot and comma + key <KPDL> { [ KP_Delete, period, comma, 0x100202F ] }; // <delete> . , ⍽ (narrow no-break space) +}; |