mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 15:56:13 +03:00
terminal: decscusr
This commit is contained in:
@ -1487,3 +1487,37 @@ test "stream: DECEL, DECSEL" {
|
||||
try testing.expect(!s.handler.protected.?);
|
||||
}
|
||||
}
|
||||
|
||||
test "stream: DECSCUSR" {
|
||||
const H = struct {
|
||||
style: ?ansi.CursorStyle = null,
|
||||
|
||||
pub fn setCursorStyle(self: *@This(), style: ansi.CursorStyle) !void {
|
||||
self.style = style;
|
||||
}
|
||||
};
|
||||
|
||||
var s: Stream(H) = .{ .handler = .{} };
|
||||
try s.nextSlice("\x1B[ q");
|
||||
try testing.expect(s.handler.style.? == .default);
|
||||
|
||||
try s.nextSlice("\x1B[1 q");
|
||||
try testing.expect(s.handler.style.? == .blinking_block);
|
||||
}
|
||||
|
||||
test "stream: DECSCUSR without space" {
|
||||
const H = struct {
|
||||
style: ?ansi.CursorStyle = null,
|
||||
|
||||
pub fn setCursorStyle(self: *@This(), style: ansi.CursorStyle) !void {
|
||||
self.style = style;
|
||||
}
|
||||
};
|
||||
|
||||
var s: Stream(H) = .{ .handler = .{} };
|
||||
try s.nextSlice("\x1B[q");
|
||||
try testing.expect(s.handler.style == null);
|
||||
|
||||
try s.nextSlice("\x1B[1q");
|
||||
try testing.expect(s.handler.style == null);
|
||||
}
|
||||
|
24
website/app/vt/decscusr/page.mdx
Normal file
24
website/app/vt/decscusr/page.mdx
Normal file
@ -0,0 +1,24 @@
|
||||
import VTSequence from "@/components/VTSequence";
|
||||
|
||||
# Set Cursor Style (DECSCUSR)
|
||||
|
||||
<VTSequence sequence={["ESC", "Pn", " ", "q"]} />
|
||||
|
||||
Set the mouse cursor style.
|
||||
|
||||
If `n` is omitted, `n` defaults to `0`. `n` must be an integer between
|
||||
0 and 6 (inclusive). The mapping of `n` to cursor style is below:
|
||||
|
||||
| n | style |
|
||||
| --- | --------------------- |
|
||||
| 0 | terminal default |
|
||||
| 1 | blinking block |
|
||||
| 2 | steady block |
|
||||
| 3 | blinking underline |
|
||||
| 4 | steady underline |
|
||||
| 5 | blinking vertical bar |
|
||||
| 6 | steady vertical bar |
|
||||
|
||||
For `n = 0`, the terminal default is up to the terminal and is inconsistent
|
||||
across terminal implementations. The default may also be impacted by terminal
|
||||
configuration.
|
Reference in New Issue
Block a user