3 ms·
But this isn't true. console_codes is only what the Linux VT console supports. For an example of what it omits: Alternate Screen Buffer support (DECSET 1049).
by skissane 4mo ago
But this isn't true. console_codes is only what the Linux VT console supports.
For an example of what it omits: Alternate Screen Buffer support (DECSET 1049). This is common used by full screen apps (e.g. vi, less) to save/restore the contents of the command line screen. xterm supports it; most popular terminal emulators support it; the console_codes man page does not mention it. The Linux VT console did not support it until Linux 7.1 (see https://github.com/torvalds/linux/commit/23743ba64709a9c137c1b928f8b8e00d846af9cc https://github.com/torvalds/linux/commit/23743ba64709a9c137c...) and the console_codes man page still hasn't been updated to mention the kernel now supports it.
> And none of them will have documented the OS-specific escapes,
These aren't really "OS-specific". The Linux console defines private sequences of the form CSI Ps ; Ps ] – those aren't specific to Linux, they are specific to the Linux console – you can't assume most Linux terminal emulators support them. They also aren't technically valid per ECMA-48 – the ] terminator was already reserved for the "START DIRECTED STRING" (SDS), which was intended for use with Bidi (e.g. Arabic, Hebrew), although I'm not sure if any terminal supported it; and also, when preceded by a space, the "SELECT ALTERNATIVE PRESENTATION VARIANTS" (SAPV) function, which also relates to Bidi, but also to Indic scripts; few vendors ever implemented either function, but IBM aixterm does partially implement SAPV.
Most terminal emulators (including xterm) instead use OSC (Operating System Command) to implement custom functionality, which would have been a more defensible choice from a standards-compliance perspective, but this feature was added in the 1990s, by developers who likely didn't have a good understanding of ECMA-48. Despite OSC's name, on almost all platforms it isn't implemented by the operating system, it is implemented by the terminal emulator, and so different terminal emulators on the same OS will implement different OSC sequences. (The only exception I am personally aware of is RMX, which uses OSC to do the moral equivalent of the termios IOCTLs under Unix-like systems, and so on RMX an OSC sent by an application is actually interpreted by the tty driver as a command to change its config.)
- shakna 4mo agoI'm pretty sure all the references to X11 systems, aren't supported by the VT, that ain't X. ESC [ ? 1000 h X11 Mouse Reporting (default off): Set reporting mode to 2 (or reset to 0) —see below—. And as I _can_ see a DECSET section, the manpage is referencing it. DEC Private Mode (DECSET/DECRST) sequences These are not described in ECMA-48. We list the Set Mode sequences; the Reset Mode sequences are obtained by replacing the final 'h' by 'l'. And as there's whole sections about sequences _not_ implemented by the Linux console, it does not only contain what the Linux VT console support. Which is the opposite of your first statement. Escape sequences VT100 console sequences not implemented on the Linux console: ESC N SS2 Single shift 2. (Select G2 character set for the next character only.) Which means either we're looking at a different version of the manpage, you haven't looked before throwing things, or you just really like to argue.
- dang 4mo agoCan you please make your substantive points without swipes? This is in the site guidelines: https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html. Your comment would be just fine without that last sentence.
- skissane 4mo ago> I'm pretty sure all the references to X11 systems, aren't supported by the VT, that ain't X. This isn't true. The Linux VT console supports both X10 and X11 mouse reporting–except the Linux kernel source code calls X11 mouse reporting "VT200" instead, but it is the same thing. It relies on a user space component (traditionally the gpm daemon) to talk to the mouse driver to get the actual mouse position, and then feed that into the VT device using the TIOCLINUX ioctl (subcode TIOCL_SETSEL, mode TIOCL_SELMOUSEREPORT) > And as I _can_ see a DECSET section, the manpage is referencing it. Yes, it describes DECSET. But it doesn't describe many of the DECSET codes, including 1049 and 2004 which the Linux VT console supports – see https://github.com/torvalds/linux/blob/master/drivers/tty/vt/vt.c https://github.com/torvalds/linux/blob/master/drivers/tty/vt... – and the many more which xterm supports – https://invisible-island.net/xterm/ctlseqs/ctlseqs.html https://invisible-island.net/xterm/ctlseqs/ctlseqs.html – other terminal emulators frequently implement many (but not necessarily all) of the DECSET codes xterm does. > And as there's whole sections about sequences _not_ implemented by the Linux console, it does not only contain what the Linux VT console support. Which is the opposite of your first statement. It briefly mentions a few features which xterm provide that Linux VT console doesn't. It makes no attempt to provide an exhaustive summary of all the features xterm has which are lacking in the Linux VT console, since that's the job of the xterm documentation
- shakna 4mo agoOkay. I described a manpage as the place you should go first, because it has most things in the one place. You have said that is unacceptable, because it doesn't show absolutely everything ever made. And listed places, which don't show absolutely everything ever made. Feel like actually offering a source you would feel meets the need?