libghostty
Loading...
Searching...
No Matches
modes.h
Go to the documentation of this file.
1
6
7#ifndef GHOSTTY_VT_MODES_H
8#define GHOSTTY_VT_MODES_H
9
34
35#include <stdbool.h>
36#include <stddef.h>
37#include <stdint.h>
38
39#include <ghostty/vt/types.h>
40
41#ifdef __cplusplus
42extern "C" {
43#endif
44
49#define GHOSTTY_MODE_KAM (ghostty_mode_new(2, true))
50#define GHOSTTY_MODE_INSERT (ghostty_mode_new(4, true))
51#define GHOSTTY_MODE_SRM (ghostty_mode_new(12, true))
52#define GHOSTTY_MODE_LINEFEED (ghostty_mode_new(20, true))
54
59#define GHOSTTY_MODE_DECCKM (ghostty_mode_new(1, false))
60#define GHOSTTY_MODE_132_COLUMN (ghostty_mode_new(3, false))
61#define GHOSTTY_MODE_SLOW_SCROLL (ghostty_mode_new(4, false))
62#define GHOSTTY_MODE_REVERSE_COLORS (ghostty_mode_new(5, false))
63#define GHOSTTY_MODE_ORIGIN (ghostty_mode_new(6, false))
64#define GHOSTTY_MODE_WRAPAROUND (ghostty_mode_new(7, false))
65#define GHOSTTY_MODE_AUTOREPEAT (ghostty_mode_new(8, false))
66#define GHOSTTY_MODE_X10_MOUSE (ghostty_mode_new(9, false))
67#define GHOSTTY_MODE_CURSOR_BLINKING (ghostty_mode_new(12, false))
68#define GHOSTTY_MODE_CURSOR_VISIBLE (ghostty_mode_new(25, false))
69#define GHOSTTY_MODE_ENABLE_MODE_3 (ghostty_mode_new(40, false))
70#define GHOSTTY_MODE_REVERSE_WRAP (ghostty_mode_new(45, false))
71#define GHOSTTY_MODE_ALT_SCREEN_LEGACY (ghostty_mode_new(47, false))
72#define GHOSTTY_MODE_KEYPAD_KEYS (ghostty_mode_new(66, false))
73#define GHOSTTY_MODE_BACKARROW_KEY_MODE (ghostty_mode_new(67, false))
74#define GHOSTTY_MODE_LEFT_RIGHT_MARGIN (ghostty_mode_new(69, false))
75#define GHOSTTY_MODE_NORMAL_MOUSE (ghostty_mode_new(1000, false))
76#define GHOSTTY_MODE_BUTTON_MOUSE (ghostty_mode_new(1002, false))
77#define GHOSTTY_MODE_ANY_MOUSE (ghostty_mode_new(1003, false))
78#define GHOSTTY_MODE_FOCUS_EVENT (ghostty_mode_new(1004, false))
79#define GHOSTTY_MODE_UTF8_MOUSE (ghostty_mode_new(1005, false))
80#define GHOSTTY_MODE_SGR_MOUSE (ghostty_mode_new(1006, false))
81#define GHOSTTY_MODE_ALT_SCROLL (ghostty_mode_new(1007, false))
82#define GHOSTTY_MODE_URXVT_MOUSE (ghostty_mode_new(1015, false))
83#define GHOSTTY_MODE_SGR_PIXELS_MOUSE (ghostty_mode_new(1016, false))
84#define GHOSTTY_MODE_NUMLOCK_KEYPAD (ghostty_mode_new(1035, false))
85#define GHOSTTY_MODE_ALT_ESC_PREFIX (ghostty_mode_new(1036, false))
86#define GHOSTTY_MODE_ALT_SENDS_ESC (ghostty_mode_new(1039, false))
87#define GHOSTTY_MODE_REVERSE_WRAP_EXT (ghostty_mode_new(1045, false))
88#define GHOSTTY_MODE_ALT_SCREEN (ghostty_mode_new(1047, false))
89#define GHOSTTY_MODE_SAVE_CURSOR (ghostty_mode_new(1048, false))
90#define GHOSTTY_MODE_ALT_SCREEN_SAVE (ghostty_mode_new(1049, false))
91#define GHOSTTY_MODE_BRACKETED_PASTE (ghostty_mode_new(2004, false))
92#define GHOSTTY_MODE_SYNC_OUTPUT (ghostty_mode_new(2026, false))
93#define GHOSTTY_MODE_GRAPHEME_CLUSTER (ghostty_mode_new(2027, false))
94#define GHOSTTY_MODE_COLOR_SCHEME_REPORT (ghostty_mode_new(2031, false))
95#define GHOSTTY_MODE_IN_BAND_RESIZE (ghostty_mode_new(2048, false))
97
105typedef uint16_t GhosttyMode;
106
116static inline GhosttyMode ghostty_mode_new(uint16_t value, bool ansi) {
117 return (GhosttyMode)((value & 0x7FFF) | ((uint16_t)ansi << 15));
118}
119
128static inline uint16_t ghostty_mode_value(GhosttyMode mode) {
129 return mode & 0x7FFF;
130}
131
140static inline bool ghostty_mode_ansi(GhosttyMode mode) {
141 return (mode >> 15) != 0;
142}
143
150typedef enum GHOSTTY_ENUM_TYPED {
161 GHOSTTY_MODE_REPORT_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE,
163
186 GhosttyMode mode,
188 char* buf,
189 size_t buf_len,
190 size_t* out_written);
191
192#ifdef __cplusplus
193}
194#endif
195
197
198#endif /* GHOSTTY_VT_MODES_H */
GHOSTTY_API GhosttyResult ghostty_mode_report_encode(GhosttyMode mode, GhosttyModeReportState state, char *buf, size_t buf_len, size_t *out_written)
uint16_t GhosttyMode
Definition modes.h:105
GhosttyModeReportState
Definition modes.h:150
@ GHOSTTY_MODE_REPORT_PERMANENTLY_SET
Definition modes.h:158
@ GHOSTTY_MODE_REPORT_NOT_RECOGNIZED
Definition modes.h:152
@ GHOSTTY_MODE_REPORT_RESET
Definition modes.h:156
@ GHOSTTY_MODE_REPORT_SET
Definition modes.h:154
@ GHOSTTY_MODE_REPORT_PERMANENTLY_RESET
Definition modes.h:160
GhosttyResult
Definition types.h:74
#define GHOSTTY_ENUM_TYPED
Definition types.h:67