Skip to content

keyboardlayouts.cpp: Many characters are missing, at least in German layout. #408

Open
@JacekRuzyczka

Description

@JacekRuzyczka

I checked the keyboard layout file keyboardlayouts.cpp against the German KB layout I've got on my PC and found out that quite a bunch of characters are missing although they appear on Codepage 1252: KB Germany Linux

I've added the missing characters to the corresponding files, but unfortunately, I can't add whole C++ files to this issue:

    { VK_SPACE,       { 0, 0, 1, 0 }, VK_NBSP },            // ALT " "   = NBSP
    { VK_c,           { 0, 0, 1, 0 }, VK_CENTSIGN },        // ALT "c"   = "¢"
    { VK_r,           { 0, 0, 1, 0 }, VK_PARAGRAPH },       // ALT "r"   = "¶"
    { VK_m,           { 0, 0, 1, 0 }, VK_MU },              // ALT "m"   = "µ"
    { VK_p,           { 0, 0, 1, 0 }, VK_thorn },           // ALT "p"   = "þ"
    { VK_d,           { 0, 0, 1, 0 }, VK_eth },             // ALT "d"   = "ð"
    { VK_UMLAUT_u,    { 0, 0, 1, 0 }, VK_DIAERESIS },       // ALT "ü"   = "¨"
    { VK_COMMA,       { 0, 0, 1, 0 }, VK_INTERPUNCT },      // ALT ","   = "·"
    { VK_PERIOD,      { 0, 0, 1, 0 }, VK_ELLIPSIS },        // ALT "."   = "…"
    { VK_MINUS,       { 0, 0, 1, 0 }, VK_NDASH },           // ALT "-"   = "–"
    { VK_a,           { 0, 0, 1, 0 }, VK_aelig },           // ALT "a"   = "æ"
    { VK_o,           { 0, 0, 1, 0 }, VK_oslash },          // ALT "o"   = "ø"
    { VK_w,           { 0, 0, 1, 0 }, VK_aring },           // ALT "w"   = "å"
    { VK_v,           { 0, 0, 1, 0 }, VK_LEFTDBLQUOTE },    // ALT "v"   = "„"
    { VK_b,           { 0, 0, 1, 0 }, VK_RIGHTINVDBLQUOTE },// ALT "b"   = "“"
    { VK_n,           { 0, 0, 1, 0 }, VK_RIGHTDBLQUOTE },   // ALT "n"   = "”"
    { VK_y,           { 0, 0, 1, 0 }, VK_RIGHTDBLGUIL },    // ALT "y"   = "»"
    { VK_x,           { 0, 0, 1, 0 }, VK_LEFTDBLGUIL },     // ALT "x"   = "«"
    { VK_x,           { 0, 0, 1, 1 }, VK_LEFTSINGUIL },     // ALT "X"   = "‹"
    { VK_y,           { 0, 0, 1, 1 }, VK_RIGHTSINGUIL },    // ALT "Y"   = "›"
    { VK_n,           { 0, 0, 1, 1 }, VK_RIGHTSINQUOTE },   // ALT "N"   = "’"
    { VK_b,           { 0, 0, 1, 1 }, VK_RIGHTINVSINQUOTE },// ALT "B"   = "‘"
    { VK_v,           { 0, 0, 1, 1 }, VK_LEFTSINQUOTE },    // ALT "V"   = "‚"
    { VK_w,           { 0, 0, 1, 1 }, VK_ARING },           // ALT "W"   = "Å"
    { VK_o,           { 0, 0, 1, 1 }, VK_OSLASH },          // ALT "O"   = "Ø"
    { VK_a,           { 0, 0, 1, 1 }, VK_AELIG },           // ALT "A"   = "Æ"
    { VK_c,           { 0, 0, 1, 1 }, VK_COPYRIGHT },       // ALT "C"   = "©"
    { VK_r,           { 0, 0, 1, 1 }, VK_REGISTERED },      // ALT "R"   = "®"
    { VK_p,           { 0, 0, 1, 1 }, VK_THORN },           // ALT "P"   = "Þ"
    { VK_d,           { 0, 0, 1, 1 }, VK_ETH },             // ALT "D"   = "Ð"
    { VK_1,           { 0, 0, 1, 1 }, VK_EXCLAIM_INV },     // ALT "!"   = "¡"
    { VK_3,           { 0, 0, 1, 1 }, VK_POUND },           // ALT "§"   = "£"
    { VK_8,           { 0, 0, 1, 1 }, VK_TRADEMARK },       // ALT "("   = "™"
    { VK_9,           { 0, 0, 1, 1 }, VK_PLUSMINUS },       // ALT ")"   = "±"
    { VK_ESZETT,      { 0, 0, 1, 1 }, VK_QUESTION_INV },    // ALT "?"   = "¿"
    { VK_COMMA,       { 0, 0, 1, 1 }, VK_MULTIPLY },        // ALT ";"   = "×"
    { VK_PERIOD,      { 0, 0, 1, 1 }, VK_DIVIDE },          // ALT ":"   = "÷"
    { VK_MINUS,       { 0, 0, 1, 1 }, VK_MDASH },           // ALT "-"   = "—"
    { VK_z,           { 0, 0, 1, 1 }, VK_YEN },             // ALT "Z"   = "¥"
    { VK_m,           { 0, 0, 1, 1 }, VK_UPPER_o },         // ALT "M"   = "º"
    { VK_f,           { 0, 0, 1, 1 }, VK_UPPER_a },         // ALT "F"   = "ª"

And here is a portion of the codepages.cpp file, which has to be inserted:

  { VK_UPPER_1,      0xb9 },    // ¹
  { VK_SQUARE,       0xb2 },    // ²
  { VK_CUBE,         0xb3 },    // ³
  { VK_FRAC14,       0xbc },    // ¼
  { VK_FRAC12,       0xbd },    // ½
  { VK_FRAC34,       0xbe },    // ¾
  { VK_TRADEMARK,    0x99 },    // ™
  { VK_PARAGRAPH,    0xb6 },    // ¶

  { VK_aring,        0xe5 },    // å
  { VK_ARING,        0xc5 },    // Å
  { VK_aelig,        0xe6 },    // æ
  { VK_AELIG,        0xc6 },    // Æ
  { VK_oslash,       0xf8 },    // ø
  { VK_OSLASH,       0xd8 },    // Ø
  { VK_eth,          0xf0 },    // ð
  { VK_ETH,          0xd0 },    // Ð
  { VK_thorn,        0xfe },    // þ
  { VK_THORN,        0xde },    // Þ
  { VK_COPYRIGHT,    0xa9 },    // ©
  { VK_REGISTERED,   0xae },    // ®
  { VK_YEN,          0xa5 },    // ¥
  { VK_NDASH,        0x96 },    // –
  { VK_MDASH,        0x97 },    // —
  { VK_ELLIPSIS,     0x85 },    // …
  { VK_MULTIPLY,     0xd7 },    // ×
  { VK_DIVIDE,       0xf7 },    // ÷
  { VK_PLUSMINUS,    0xb1 },    // ±
  { VK_NBSP,         0xa0 },    // nbsp

  { VK_LEFTDBLQUOTE,     0x84 },    // „
  { VK_RIGHTINVDBLQUOTE, 0x93 },    // “
  { VK_RIGHTDBLQUOTE,    0x94 },    // ”
  { VK_RIGHTDBLGUIL,     0xbb },    // »
  { VK_LEFTDBLGUIL,      0xab },    // «
  { VK_LEFTSINGUIL,      0x8b },    // ‹
  { VK_RIGHTSINGUIL,     0x9b },    // ›
  { VK_RIGHTSINQUOTE,    0x92 },    // ’
  { VK_RIGHTINVSINQUOTE, 0x91 },    // ‘
  { VK_LEFTSINQUOTE,     0x82 },    // ‚

At last, I had to amend fabutils.h:

  VK_EXCLAIM_INV,     /**< Inverted exclamation mark: ! */
  VK_QUESTION_INV,    /**< Inverted question mark : ? */
  VK_INTERPUNCT,	    /**< Interpunct  : · */
  VK_DIAERESIS,	  	  /**< Diaeresis      : ¨ */
  VK_UPPER_1,         /**< 1st power      : ¹ */
  VK_SQUARE,          /**< Square         : ² */
  VK_CUBE,            /**< Cube           : ³ */
  VK_CURRENCY,        /**< Currency       : ¤ */
  VK_MU,              /**< Mu             : µ */
  VK_UPPER_o,         /**< primero        : º */
  VK_TM,              /**< trademark      : ™ */
  VK_REGISTERED,      /**< registered     : ® */
  VK_COPYRIGHT,       /**< copyright      : © */
  VK_PLUSMINUS,       /**< plusminus      : ± */
  VK_FRAC14,          /**< one quarter    : ¼ */
  VK_FRAC12,          /**< one half       : ½ */
  VK_FRAC34,          /**< three qurters  : ¾ */
  VK_MULTIPLY,        /**< multiplication : × */
  VK_DIVIDE,          /**< division       : ÷ */
  VK_ELLIPSIS,        /**< ellipsis       : … */
  VK_MDASH,           /**< m dash         : — */
  VK_NDASH,           /**< n dash         : – */
  VK_PARAGRAPH,       /**< paragraph      : ¶ */
  VK_NBSP,            /**< non-breaking space */
  
  VK_LEFTSINGUIL,      /**< left single guillemet   : ‹ */
  VK_RIGHTSINGUIL,     /**< right single guillemet  : › */
  VK_LEFTDBLGUIL,      /**< left double guillemet   : « */
  VK_RIGHTDBLGUIL,     /**< right double guillemet  : » */
  VK_LEFTSINQUOTE,     /**< left single quote       : ‚ */
  VK_RIGHTINVSINQUOTE, /**< right inv. single quote : ‘ */
  VK_RIGHTSINQUOTE,    /**< right single quote      : ’ */
  VK_LEFTDBLQUOTE,     /**< left double quote       : „ */
  VK_RIGHTINVDBLQUOTE, /**< right inv. double quote : “ */
  VK_RIGHTDBLQUOTE,    /**< right double quote      : ” */
  
  VK_aelig,           /** Lower case aelig  : æ */
  VK_oslash,          /** Lower case oslash : ø */
  VK_aring,           /** Lower case aring  : å */
  VK_thorn,           /** Lower case thorn  : þ */
  VK_eth,             /** Lower case eth    : ð */

  VK_AELIG,           /** Upper case aelig  : Æ */
  VK_OSLASH,          /** Upper case oslash : Ø */
  VK_ARING,           /** Upper case aring  : Å */
  VK_THORN,           /** Upper case thorn  : Þ */
  VK_ETH,             /** Upper case eth    : Ð */

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions