mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-01-05 21:07:56 +00:00
Implement the XTWINOPS (CSI t) control sequences that "make sense".
These sequences were implemented: CSI 14 t - report the text area size in pixels CSI 16 t - report the cell size in pixels CSI 18 t - report the text area size in cells CSI 21 t - report the window title These sequences were not implemented because they manuipulate the window state in ways that we do not want. CSI 1 t CSI 2 t CSI 3 ; x ; y t CSI 4 ; height ; width ; t CSI 5 t CSI 6 t CSI 7 t CSI 8 ; height ; width ; t CSI 9 ; 0 t CSI 9 ; 1 t CSI 9 ; 2 t CSI 9 ; 3 t CSI 10 ; 0 t CSI 10 ; 1 t CSI 10 ; 2 t CSI 24 t These sequences were not implemented because they do not make sense in a Wayland context: CSI 11 t CSI 13 t CSI 14 ; 2 t These sequences were not implemented because they provide information about the screen that is unnecessary. CSI 15 t CSI 19 t These sequences were not implemeted because Ghostty does not maintain an icon title for windows. CSI 20 t CSI 22 ; 0 t CSI 22 ; 1 t CSI 23 ; 0 t CSI 23 ; 1 t These sequences were not implemented because of the additional complexity of maintaining a stack of window titles. CSI 22 ; 2 t CSI 23 ; 2 t
This commit is contained in:
@@ -598,7 +598,7 @@ pub const StreamHandler = struct {
|
||||
},
|
||||
|
||||
.in_band_size_reports => if (enabled) self.messageWriter(.{
|
||||
.size_report = {},
|
||||
.size_report = .mode_2048,
|
||||
}),
|
||||
|
||||
.mouse_event_x10 => {
|
||||
@@ -1259,4 +1259,14 @@ pub const StreamHandler = struct {
|
||||
|
||||
self.surfaceMessageWriter(message);
|
||||
}
|
||||
|
||||
/// Send a report to the pty.
|
||||
pub fn sendReport(self: *StreamHandler, style: terminal.stream.ReportStyle) void {
|
||||
switch (style) {
|
||||
.csi_14_t => self.messageWriter(.{ .size_report = .csi_14_t }),
|
||||
.csi_16_t => self.messageWriter(.{ .size_report = .csi_16_t }),
|
||||
.csi_18_t => self.messageWriter(.{ .size_report = .csi_18_t }),
|
||||
.csi_21_t => self.surfaceMessageWriter(.{ .report_title = .csi_21_t }),
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user