Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backspace not behaving as expected #41

Closed
gpg342 opened this issue Aug 15, 2022 · 8 comments
Closed

Backspace not behaving as expected #41

gpg342 opened this issue Aug 15, 2022 · 8 comments

Comments

@gpg342
Copy link

gpg342 commented Aug 15, 2022

Currently testing this to connect to a Raspberry PI running MMBasic -- the firmware on the PI makes it behave like a VT100 terminal - and you can connect successfully via terminal applications to control the device.

I work in education and am looking for a Chromebook solution for a terminal application. The current version is a Chrome App -- which is depreciated and will probably cease to work in 2023.

The serial terminal present works well -- it connects and controls as expected -- the only issue is that the BACKSPACE key functions as the DEL key (Windows 10 PC). This is the same on the Chromebooks. The VT100 colours come through with is nice.

From setting this up on the Chromebook, I need BACKSPACE to send the following escape code - ('\x08', aka ^H) -- I am not sure what to edit -- have looked in code in the repository, but I suspect this is in one of the external libraries referenced.

With ChromeApps being deprecated, browser access for serial terminal is a real essential for these devices -- especially in education, where ChromeBooks far outweight heavyweight PCs.

Q: How / where to alter the sent escape codes...

Happy to fork and fiddle, I just dont know what / where I am looking.

Sorry if this is outside of scope here.

Cheers
Glen

@gpg342
Copy link
Author

gpg342 commented Aug 15, 2022

https://xtermjs.org/docs/api/vtfeatures/ << BS being \x08 is there....

@reillyeon
Copy link
Collaborator

This app just links up xterm.js with the Web Serial API and doesn't do much processing beyond that. I've been using this app with an Espruino and backspace behaves as expected. What control code is being sent when pressing the backspace key if not BS? Can you try pressing Ctrl-h instead? That should send the same code as the backspace key and would indicate whether the device is processing it correctly.

@gpg342
Copy link
Author

gpg342 commented Aug 15, 2022

Yes Ctrl-h behaves as Backspace -- backspace behaves as DEL -- BACKSPACE seems to be sending \x7f instead. This is the same behaviour on a couple of devices.

@gpg342
Copy link
Author

gpg342 commented Aug 15, 2022

Works as expected in Tera Term on same machines. Most odd.

@reillyeon
Copy link
Collaborator

I just saw your email. I wonder if this is a keyboard layout issue. Can you try out the xterm.js demo on https://xtermjs.org/?

@gpg342
Copy link
Author

gpg342 commented Aug 15, 2022

Yes the xterm demo works as expected -- BACKSPACE as BACKSPACE. (But the cursor keys dont)

Have a look at: See: https://www.thebackshed.com/forum/ViewTopic.php?FID=16&TID=15101

And https://www.thebackshed.com/forum/ViewTopic.php?TID=15100&P=2 for context.

I'm Nimue in the forum.

G

@gpg342
Copy link
Author

gpg342 commented Aug 15, 2022

BUT Ctrl-h doesnt work in the Xterm demo!!!

I'm in the UK if that helps with keyboard layout. Same behaviour on x2 PCs and 1 ChomreBook.

Cheers and Nos Da (good night in Welsh!!! ) too late for me now -- will pick up tomorrow.

Glen

@reillyeon
Copy link
Collaborator

The plot thickens, xterm.js recently removed the Shift-Backspace behavior. The code certainly seems written such that it will send a DEL character when the user hits the backspace key: xtermjs/xterm.js@3322418

The history of this character is interesting: https://en.wikipedia.org/wiki/Delete_character

My best guess is that the code on the Pi is not interpreting ^? as backspace. Unfortunately since this is just the upstream behavior of xterm.js I don't think it would be a good idea for this project and this project alone to change it. I recommend opening an issue with xterm.js to discuss this further as they are the terminal emulation experts. If they release a version with a fix let me know and I can bump the version used by this site.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants