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

xterm behavior audit #632

Closed
mitchellh opened this issue Oct 7, 2023 · 1 comment
Closed

xterm behavior audit #632

mitchellh opened this issue Oct 7, 2023 · 1 comment

Comments

@mitchellh
Copy link
Contributor

mitchellh commented Oct 7, 2023

This is a tracking issue for the ongoing audit of xterm behavior and comparison to Ghostty. The goal is to ensure Ghostty behaves identically to xterm for the sequences and features we support. We can diverge in behavior for some unsupported features (such as double height/width lines), though we may want to implement them in the future.

  • If the sequence is checked below, it means we match xterm behavior identically and we've backed that up with Zig test cases, shell script conformance tests, and English prose documentation.
  • A "⛔️" prefix means its a sequence we don't support. This does not mean we'll necessarily add support for this sequence, but its listed here so we can take a look. I may be missing some ⛔️ ...
  • This list is not complete, I'll be updating the list as I go, but I also wanted to keep track of some sequences I skipped.

Sequences

Ignored sequences and why:

  • Set warning-bell volume (DECSWBV) - A GUI feature, does not affect terminal behavior/rendering.
  • Set margin-bell volume (DECSMBV) - A GUI feature, does not affect terminal behavior/rendering.

ANSI Modes

DEC Modes

  • 1 - Cursor Keys (DECCKM)
  • 2 - VT52 (DECANM)
  • 3 - 80 or 132 Column Mode (DECCOLM) xterm audit: DEC mode 3 (DECCOLM), 4 (DECSCLM), 40 (132COLS) #870
  • 4 - Slow Scrolling (DECSCLM) xterm audit: DEC mode 3 (DECCOLM), 4 (DECSCLM), 40 (132COLS) #870
  • 5 - Reverse Video (DECSCNM) xterm audit: DEC mode 3 (DECCOLM), 4 (DECSCLM), 40 (132COLS) #870
  • 6 - Origin Mode (DECOM)
  • 7 - Autowrap (DECAWM)
  • 8 - Repeat Held Keys (DECARM)
  • 9 - X10 Mouse Tracking (XT_MOUSE)
  • 10 - Show Toolbar (RXVT_TOOLBAR)
  • 12 - Start/Stop Blinking Cursor (ATT610_BLINK)
  • 13 - Cursor Blink Setting (read-only) (CURSOR_BLINK_OPS)
  • 14 - XOR Cursor Blink (read-only) (XOR_CURSOR_BLINKS)
  • 18 - Print Form Feed (DECPFF)
  • 19 - Print Extent (DECPEX)
  • 25 - Show/Hide Cursor (DECTCEM)
  • 30 - Show Scrollbar (RXVT_SCROLLBAR)
  • 40 - Enable Mode 3 (132 Col Mode) (132COLS) xterm audit: DEC mode 3 (DECCOLM), 4 (DECSCLM), 40 (132COLS) #870
  • 42 - DEC National Character Set (DECNRCM)
  • 45 - Reverse Wrap (REVERSEWRAP)
  • 47 - Alt Buffer
  • 66 - Application Keypad Mode (DECNKM)
  • 67 - Backarrow Key Mode (DECBKM)
  • 69 - Enable Left/Right Margins (DECLRMM)
  • 95 - Set/Reset No Clearing Screen On Column Change (DECNCSM)
  • 1000 - VT200 Mouse (VT200_MOUSE)
  • 1001 - VT200 Highlight Mouse (VT200_HIGHLIGHT_MOUSE)
  • 1002 - Btn Event Mouse (BTN_EVENT_MOUSE)
  • 1003 - Any Event Mouse (ANY_EVENT_MOUSE)
  • 1004 - Focus Event Mouse (FOCUS_EVENT_MOUSE)
  • 1005 - Ext Mode Mouse (EXT_MODE_MOUSE)
  • 1006 - SGR Ext Mode Mouse (SGR_EXT_MODE_MOUSE)
  • 1007 - Alternate Scroll
  • 1010 - Scroll on TTY Output
  • 1011 - Scroll on Keypress
  • 1015 - URXVT Mode Mouse (URXVT_EXT_MODE_MOUSE)
  • 1016 - Pixel Position Mouse (PIXEL_POSITION_MOUSE)
  • 1035 - Real Num Lock
  • 1036 - Meta Sends Esc
  • 1037 - Delete is Delete
  • 1039 - Alt Sends Esc
  • 1045 - Extended Reverse Wrap (REVERSEWRAP2)
  • 1047 - Alt Buffer
  • 1048 - Alt Buffer
  • 1049 - Alt Buffer and Clear
  • 2004 - Bracketed Paste Mode
  • 2005 - Quoted Paste
  • 2006 - Paste Literal NL
@mitchellh
Copy link
Contributor Author

Going to close this. We completed a significant amount of the audit to the point that I don't plan on fully completing this in the short term. I'm happy to revisit this eventually but I'm going to mark this as good enough for now.

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

1 participant