vercel / vercel/hyper

Glitches when using certain applications such as mutt

Open
#3,535 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
44.7k
Forks
3.6k
Avg merge
21m
Merged PRs (30d)
1

Description

Hello, apologies if this is a duplicate,

I've noticed that some applications, most notably mutt or neomutt will render not quite correctly when viewed from hyper. Specifically:

  • There are problems with resizing detection, which I believe have been mentioned in other xterm.js bug reports already.
  • Bold black colour is not rendered as a light gray as it should and instead is not visible at all. Other colours, including bold ones are unaffected.
  • Some transitions from index view to message view will leave behind stray characters which should have been cleared.

I am not seeing this behaviour with xterm or iTerm2. In all my tests, TERM is xterm-256color and mutt or neomutt uses regular ncurses from FreeBSD base. I will test with other ncurses in the near future.

Obviously I'm not expecting anyone to magically figure out what's wrong. Besides, this is more likely a bug with xterm.js rather than hyper.

But, I'm looking for a way to debug the exact character stream (mostly interested in the control sequences) that moves to and from the xterm.js component. If anyone is aware how to do it in hyper, would you be so kind as to let me know?

Many many thanks!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the Hyper terminal path that embeds the xterm.js component and captures the control sequences exchanged with mutt or neomutt. Reproduce the resizing, bold-black, and stray-character symptoms with TERM=xterm-256color, then compare the received stream with xterm or iTerm2; done means the affected applications render correctly or the exact responsible sequence is isolated.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, typescript
Domain
desktop-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.