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

In-notebook terminal rendering of certain whole-screen applications (like mc) is broken. #7782

Closed
fperez opened this issue Feb 14, 2015 · 4 comments

Comments

@fperez
Copy link
Member

fperez commented Feb 14, 2015

This is related to #7242, but not quite fixed by that PR...

On Chrome on Linux, if I set the Consolas font to being my monospaced font, when running mc (Midnight Commander) in the in-notebook terminal, the computation of the column width must be wrong, b/c the page misrenders:

image

This is even more evident when an error box is drawn:

image

Checking the value of Terminal.brokenBold in the JS Console returns true with Consolas. Yet, the fix in #7242 isn't helping here.

For reference, switching to another monospaced font, such as DejaVu Sans Mono, fixes the problem. So at least there's a workaround.

But even if the bug is in Consolas, it would be nice if we could make it work correctly (if viable). Regular terminal emulators don't exhibit this behavior. In as much as possible, we want our terminal to match a 'real' terminal 100%.

Marking this for 3.1, as it's fairly obscure and there's an easy workaround for now.

@fperez fperez added this to the 3.1 milestone Feb 14, 2015
@takluyver
Copy link
Member

I guess 'real' terminal emulators draw each character at a calculated position. As @Carreau mentioned on gitter, doing that in termjs would involve wrapping each character in its own div.

Shouldn't we file this against term.js? It seems like setting a bad precedent to file bugs in termjs on IPython.

@fperez
Copy link
Member Author

fperez commented Feb 14, 2015

Certainly! I wasn't completely sure where the bug lied, which is why I filed it here.

You understand the details better (having actually worked with term.js). Feel free to close it here and reopen it on term.js. That way it's documented for us, even if we can't actually do anything about it.

@takluyver
Copy link
Member

As far as I'm concerned, all the rendering and interaction with the terminal is done by term.js. We just put it on a page with a bit of CSS, and pass messages between it and a websocket.

@fperez
Copy link
Member Author

fperez commented Feb 14, 2015

Reported as chjj/term.js#60, closing here.

@fperez fperez closed this as completed Feb 14, 2015
@minrk minrk modified the milestones: no action, 3.1 Feb 19, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants