更改指针形状 (OSC 22)

更改指针形状。

  1. 0x1B
    ESC
  2. 0x5D
    ]
  3. 0x32 0x32
    22
  4. 0x3B
    ;
  5. ____
    t
  6. 0x1B
    ESC
  7. 0x5C
    \

将指针形状更改为 t。

遗憾的是,关于 t 允许取哪些值并没有共识。即便是该 OSC 的起源 xterm 也指出,当使用自定义光标主题时,“可以预期它提供其中约三分之一的名称,同时还会添加其他名称。”1

Ghostty 与 Kitty 和 Foot 等其他终端一样,使用 CSS 标准化的光标形状列表,用于 cursor 属性。这绝非完美,但至少它是一个无歧义且与平台无关的国际标准。

避免使用该序列,除非你的程序只面向特定终端模拟器,或者你能通过检测当前终端来在不同光标名称间切换。

终端兼容性

GhosttyKittyVTEAlacrittyFootiTerm2xterm
OSC 221.0.00.31.0否否1.12.03.5.0367
光标样式CSSCSS--CSS + X11 子集2[自定义 X11 子集]X11

Footnotes

  1. https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:pointerShape ↩

  2. Foot maps both CSS and X11 names 到 wp_cursor_shape_device_v1::shape 枚举,它们同样基于 CSS 标准。 ↩