aboutsummaryrefslogtreecommitdiffstats
path: root/src/hci/keymap/keymap_no.c
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2022-02-16 15:19:35 +0000
committerMichael Brown <mcb30@ipxe.org>2022-02-16 15:31:47 +0000
commitbc5c612f756b11c08e5e1eaeee3c1fd91252534d (patch)
tree5068ece4582bf3f2da30bfb35f42ab53984df155 /src/hci/keymap/keymap_no.c
parent304333dace992ea4b876a074c42bb7fd752137ca (diff)
downloadipxe-bc5c612f756b11c08e5e1eaeee3c1fd91252534d.tar.gz
[console] Include mappings for AltGr-Shift-<key>
The BIOS console's interpretation of LShift+RShift as equivalent to AltGr requires the shifted ASCII characters to be present in the AltGr mapping table, to allow AltGr-Shift-<key> to be interpreted in the same way as AltGr-<key>. For keyboard layouts that have different ASCII characters for AltGr-<key> and AltGr-Shift-<key>, this will potentially leave the character for AltGr-<key> inaccessible via the BIOS console if the BIOS requires the use of the LShift+RShift workaround. This theoretically affects the numeric keys in the Lithuanian ("lt") keyboard layout (where the numerals are accessed via AltGr-<key> and punctuation characters via AltGr-Shift-<key>), but the simple workaround for that keyboard layout is to avoid using AltGr and Shift entirely since the unmodified numeric keys are not remapped anyway. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/hci/keymap/keymap_no.c')
-rw-r--r--src/hci/keymap/keymap_no.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/hci/keymap/keymap_no.c b/src/hci/keymap/keymap_no.c
index 239e3aea5..0a624c3ab 100644
--- a/src/hci/keymap/keymap_no.c
+++ b/src/hci/keymap/keymap_no.c
@@ -39,6 +39,10 @@ static struct keymap_key no_basic[] = {
/** "no" AltGr remapping */
static struct keymap_key no_altgr[] = {
+ { 0x26, 0x7b }, /* '&' => '{' */
+ { 0x28, 0x5d }, /* '(' => ']' */
+ { 0x29, 0x7d }, /* ')' => '}' */
+ { 0x2a, 0x5b }, /* '*' => '[' */
{ 0x30, 0x7d }, /* '0' => '}' */
{ 0x32, 0x40 }, /* '2' => '@' */
{ 0x34, 0x24 }, /* '4' => '$' */
@@ -46,9 +50,11 @@ static struct keymap_key no_altgr[] = {
{ 0x38, 0x5b }, /* '8' => '[' */
{ 0x39, 0x5d }, /* '9' => ']' */
{ 0x3a, 0x7e }, /* ':' => '~' */
+ { 0x51, 0x40 }, /* 'Q' => '@' */
{ 0x5c, 0x7e }, /* '\\' => '~' */
{ 0x5d, 0x7e }, /* ']' => '~' */
{ 0x71, 0x40 }, /* 'q' => '@' */
+ { 0x7c, 0x7e }, /* '|' => '~' */
{ 0, 0 }
};