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

Add XTerm bracketed paste support to terminal emulator

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • None
    • 1.7.0
    • guacamole-server, Terminal
    • None
    • Patch

    Description

      The clipboard feature in the terminal emulator sends the clipboard buffer directly to the server, without any preprocessing. Current best practice for terminal emulators appears to be to strip out the majority of control characters, and for shells that support the feature, inject escape sequences at the start and end of the data to indicate pasted input is incoming (aka. XTerm bracketed paste mode - https://invisible-island.net/xterm/xterm-paste64.html ).

      Newer versions of shells with bracketed paste support will buffer multi-line inputs on screen for review, rather than immediately executing them. In addition this provides a better experience in programs which treat pasted data differently from typed data, e.g. IPython will perform automatic indentation on typed text but not pasted text.

      The approach I took is based on this patch adding filtering and bracketed paste to Microsoft Terminal - https://github.com/microsoft/terminal/pull/9034/files . The difference is that Microsoft Terminal uses wchar internally, making it easier to separate out lone Unicode C1 control characters (0x80-0x9f) without impacting UTF-8 codepoint continuation. I ended up writing a sieve to pass valid UTF-8 codepoints.

      Attachments

        Activity

          People

            Unassigned Unassigned
            scottp-dpaw Scott Percival
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: