libghostty
Loading...
Searching...
No Matches
encoder.h File Reference
#include <stddef.h>
#include <stdint.h>
#include <ghostty/vt/result.h>
#include <ghostty/vt/allocator.h>
#include <ghostty/vt/key/event.h>

Go to the source code of this file.

Macros

#define GHOSTTY_KITTY_KEY_DISABLED   0
#define GHOSTTY_KITTY_KEY_DISAMBIGUATE   (1 << 0)
#define GHOSTTY_KITTY_KEY_REPORT_EVENTS   (1 << 1)
#define GHOSTTY_KITTY_KEY_REPORT_ALTERNATES   (1 << 2)
#define GHOSTTY_KITTY_KEY_REPORT_ALL   (1 << 3)
#define GHOSTTY_KITTY_KEY_REPORT_ASSOCIATED   (1 << 4)
#define GHOSTTY_KITTY_KEY_ALL   (GHOSTTY_KITTY_KEY_DISAMBIGUATE | GHOSTTY_KITTY_KEY_REPORT_EVENTS | GHOSTTY_KITTY_KEY_REPORT_ALTERNATES | GHOSTTY_KITTY_KEY_REPORT_ALL | GHOSTTY_KITTY_KEY_REPORT_ASSOCIATED)

Typedefs

typedef struct GhosttyKeyEncoderGhosttyKeyEncoder
typedef uint8_t GhosttyKittyKeyFlags

Enumerations

enum  GhosttyOptionAsAlt { GHOSTTY_OPTION_AS_ALT_FALSE = 0 , GHOSTTY_OPTION_AS_ALT_TRUE = 1 , GHOSTTY_OPTION_AS_ALT_LEFT = 2 , GHOSTTY_OPTION_AS_ALT_RIGHT = 3 }
enum  GhosttyKeyEncoderOption {
  GHOSTTY_KEY_ENCODER_OPT_CURSOR_KEY_APPLICATION = 0 , GHOSTTY_KEY_ENCODER_OPT_KEYPAD_KEY_APPLICATION = 1 , GHOSTTY_KEY_ENCODER_OPT_IGNORE_KEYPAD_WITH_NUMLOCK = 2 , GHOSTTY_KEY_ENCODER_OPT_ALT_ESC_PREFIX = 3 ,
  GHOSTTY_KEY_ENCODER_OPT_MODIFY_OTHER_KEYS_STATE_2 = 4 , GHOSTTY_KEY_ENCODER_OPT_KITTY_FLAGS = 5 , GHOSTTY_KEY_ENCODER_OPT_MACOS_OPTION_AS_ALT = 6
}

Functions

GhosttyResult ghostty_key_encoder_new (const GhosttyAllocator *allocator, GhosttyKeyEncoder *encoder)
void ghostty_key_encoder_free (GhosttyKeyEncoder encoder)
void ghostty_key_encoder_setopt (GhosttyKeyEncoder encoder, GhosttyKeyEncoderOption option, const void *value)
GhosttyResult ghostty_key_encoder_encode (GhosttyKeyEncoder encoder, GhosttyKeyEvent event, char *out_buf, size_t out_buf_size, size_t *out_len)

Detailed Description

Key event encoding to terminal escape sequences.

Definition in file encoder.h.

Macro Definition Documentation

◆ GHOSTTY_KITTY_KEY_ALL

All Kitty keyboard protocol flags enabled

Examples
c-vt-key-encode/src/main.c.

Definition at line 56 of file encoder.h.

◆ GHOSTTY_KITTY_KEY_DISABLED

#define GHOSTTY_KITTY_KEY_DISABLED   0

Kitty keyboard protocol disabled (all flags off)

Definition at line 38 of file encoder.h.

◆ GHOSTTY_KITTY_KEY_DISAMBIGUATE

#define GHOSTTY_KITTY_KEY_DISAMBIGUATE   (1 << 0)

Disambiguate escape codes

Definition at line 41 of file encoder.h.

◆ GHOSTTY_KITTY_KEY_REPORT_ALL

#define GHOSTTY_KITTY_KEY_REPORT_ALL   (1 << 3)

Report all key events including those normally handled by the terminal

Definition at line 50 of file encoder.h.

◆ GHOSTTY_KITTY_KEY_REPORT_ALTERNATES

#define GHOSTTY_KITTY_KEY_REPORT_ALTERNATES   (1 << 2)

Report alternate key codes

Definition at line 47 of file encoder.h.

◆ GHOSTTY_KITTY_KEY_REPORT_ASSOCIATED

#define GHOSTTY_KITTY_KEY_REPORT_ASSOCIATED   (1 << 4)

Report associated text with key events

Definition at line 53 of file encoder.h.

◆ GHOSTTY_KITTY_KEY_REPORT_EVENTS

#define GHOSTTY_KITTY_KEY_REPORT_EVENTS   (1 << 1)

Report key press and release events

Definition at line 44 of file encoder.h.