-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Implement double-height/width sequences (DECSWL/DECDWL/DECDHL) #1175
Comments
You might find the VTE counterpart of this issue useful. (TL;DR my conclusion was: "I personally find this feature utterly broken and useless, absolutely not worth complicating our codebase with.") |
@egmontkob I want thinking this is a weird edge case that would be a pain to support and throws a bunch of things out of whack. Ultimately it looks like there is a lot of push back in VTE and I don't think it will ever be supported there so I don't think we should support. I'm open to reconsidering if support is improved though 😃 |
So are we discussing xterm.js or vte.js? Why do you care about VTE that much? In the same way, I could argument that PuTTY/pterm does support this feature too. Your project has "full xterm terminal in your browser" in its title so I would expect it to be as much compatible with xterm as possible. (u)xterm is the only FOSS terminal emulator close enough to the real hardware VT-series terminals so that people like me have never switched to anything else because we do need and we do use these features, althought some are missing even there. If there was no need, I wouldn't bother asking this and wasting other people's time reading this. That is also why I was so excited to see there is a project trying to implement full xterm for web. If you insist on not having this in the core, just give me #1176 and I'll write a couple of plugins for these extra features. I prefer much more to help you designing/implementing these interfaces than maintaining a fork just to support something I need but you don't want it here. |
VTE is the base of many terminals and a good test of whether we should implement something. It's not just a question of whether xterm supports it, it's more about if most terminals support it or want to support it. There isn't much point in implementing something that would be a pain to maintain when so few people use it due to support.
We should change that, xterm has a ridiculous amount of stuff and no one comes close to supporting everything AFAIK. The focus of xterm.js is more to enable the implementation of modern terminals, not so much support APIs that are rarely used. There is also the fact that xterm.js runs in browsers which enforces additional constraints on size and speed. In fact we had a discussion on just this recently and the tagline we're likely going to move to is "A terminal for the web"
I have hundreds of competing priorities. All good things come in time. It would be great to get some feedback/help on #1176 from someone who wants to use the API though. |
@Tyriar Thanks a lot for clarification about your project's goals. I indeed missed the title "full xterm terminal..." that @ztmr pointed out, and felt bad for giving a contradicting suggestion. (And of course, always free to ignore my suggestions and VTE's decision, I'm posting them sometimes in the hope that they might be helpful to you, but in the end it's your project and your call.) |
Thank you both for clarification, I truly appreciate it and didn't really want anybody to feel bad for anything! I'm a bit busy too but have some idea on what the interface would be and this is kinda edge case. I think I'll try to implement all the things I need in a separate fork, and then slowly try to generalize to see what all functions would be needed in such an interface of #1176. |
@egmontkob the brief time you've been commenting here has been very useful 😄 generally I check feature support in Terminal.app/iTerm2/gnome-terminal to gauge whether a feature is worth pursuing. @ztmr no worries, a separate fork might be best for the time being to unblock you. While you're at it if you have insights into good APIs you could use to accomplish your goals let us know 🙂 |
As an FYI, this is supported in Konsole (and derivatives) and several other emulators. It is rarely used because the support is spotty. DECDHL is the ideal way to implement headings in text browsers, man page viewers, markdown renderers and a number of other useful things. However, in a world where notcurses exists, applications with sophisticated TUIs no longer have to care about a terminal not supporting a feature, so the feature will get used as soon as notcurses supports it, and notcurses will (attempt to) gracefully degrade in absence of support, albeit obviously in a visibly non-ideal way, so terminal emulators missing those features will very much be shown to lack them. I understand that a) this may be difficult to implement in your rendering model, b) notcurses was not available at time this issue was filed, c) I have no standing to actually request this since xterm.js on third-party sites with default config has and continues to be unusable for me because of font resolution issues stemming from the 'courier new' default. |
@paulie-g Ive never seen this in real world terminal applications in over 40ys (starting on a vt240 back then). We should not strive to adopt every ancient feature that hardly/never got used. There are much more convenient modern ideas, that need attention. As with any volunteer project, implementing this is just a waste of lifetime of whoever puts energy into it. Ofc be my guest and get a PR up for it... |
I've also never seen it outside of conformance tests.
👍 Though the implementation would need to be sufficiently lightweight enough so as to not add too much maintenance burden.
Is it just because you find courier new ugly? It's the default font because I think it just always has been. If there's real problems we could switch this to |
No, absolutely nothing to do with aesthetics - I tend to use a modernised, TrueType recreation of a VGA-era PC BIOS font for coding most of the time, so retro looks are just fine by me. I filed bugs in, iirc, one or two downstream user projects, demonstrating that it's triggering a font selection bug in the browser (and not freetype) and asking them to just use I would also argue that overriding the clients' choice of monospace font isn't nice, but that's secondary (and presumably you had some reason to do it, at least historically). |
@paulie-g I also have issues with The problem with system fonts is - we cannot do anything about it. Imho the browser will always pick the one installed on the system first, thus you cannot even override the font name with a web font. If that system font is not 100% monospace compliant, it will mess up the terminal output. The solution is still simple - use a different font thats known to work. Thats the reason, why the terminal options have the |
My issue is distinct. From memory, browser (but not font-config) fails to find
Font selection in browsers is very opaque. It certainly doesn't follow font-config/freetype convention on Linux. This is why, as I've stated, it makes no sense to give browsers a chance to mess things up: they all have font preference settings, including a monospace font, which the user can change or leave at bundled default, and requesting
Set the font to |
Does the repo demo work for you, if you set I kinda agree though, that as a library-thingy xterm.js should not default to anything other than @paulie-g Can you create a new issue for that (as its kinda offtopic here) and point out there the hassles you've seen from the current |
I can't recall any particular complaints about the courier fonts. I'm just going to change this to
I'll reopen #5156 and link to commit to that. |
xterm supports these but xterm.js does not.
The text was updated successfully, but these errors were encountered: