Uploaded image for project: 'Guacamole'
  1. Guacamole
  2. GUACAMOLE-859

Incorrect Caps Lock keysym sent to Windows via RDP

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.0.0
    • Fix Version/s: 1.2.0
    • Component/s: None
    • Labels:
      None
    • Environment:
      macOS Mojave
      Windows 10

      Description

      1. On a Mac, connect to a Windows machine via an RDP connection in Guacamole
      2. On the Windows machine, open Chrome or Firefox and navigate to https://jsbin.com/reviciceke/2/edit?js,console,output
      3. Click the "Run with JS" button
      4. Click the output pane to make sure it has keyboard focus
      5. Press the Caps Lock key on your Mac (you may need to press it twice if it's already on)

      Actual: The JSBin's console outputs KeyboardEvent.code and KeyboardEvent.key for the "keypress" event. Note how KeyboardEvent.code is an empty string and KeyboardEvent.key is "Unidentified"

      Expected: KeyboardEvent.code should be "CapsLock", as should KeyboardEvent.key

      I believe the keysym being sent by guacamole-common-js's Keyboard.js is 0xffe5. I'm guessing the guacd RDP plugin has a bug, where that keysym is not mapped to the correct RDP scancode.

      For reference, using Microsoft's RDP client for macOS, KeyboardEvent.code and key are correctly "CapsLock".

      Note that this bug probably went un-noticed for a long time because Caps Lock still "works" in that future characters typed are capitalized. But in my use case, I need Windows to handle the Caps Lock key down itself.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                westont Weston Thayer
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: