mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-12-28 17:14:39 +00:00
This modernizes `KeyEncoder` to a new `std.Io.Writer`-based API. Additionally, instead of a single struct, it is now an `encode` function that takes a series of more focused options. This is more idiomatic Zig while also making it easier to expose via libghostty-vt. libghostty-vt also gains access to key encoding APIs.
45 lines
1.6 KiB
Zig
45 lines
1.6 KiB
Zig
const std = @import("std");
|
|
const builtin = @import("builtin");
|
|
|
|
const config = @import("input/config.zig");
|
|
const mouse = @import("input/mouse.zig");
|
|
const key = @import("input/key.zig");
|
|
const keyboard = @import("input/keyboard.zig");
|
|
|
|
pub const command = @import("input/command.zig");
|
|
pub const function_keys = @import("input/function_keys.zig");
|
|
pub const keycodes = @import("input/keycodes.zig");
|
|
pub const key_encode = @import("input/key_encode.zig");
|
|
pub const kitty = @import("input/kitty.zig");
|
|
pub const paste = @import("input/paste.zig");
|
|
|
|
pub const ctrlOrSuper = key.ctrlOrSuper;
|
|
pub const Action = key.Action;
|
|
pub const Binding = @import("input/Binding.zig");
|
|
pub const Command = command.Command;
|
|
pub const Link = @import("input/Link.zig");
|
|
pub const Key = key.Key;
|
|
pub const KeyboardLayout = keyboard.Layout;
|
|
pub const KeyEvent = key.KeyEvent;
|
|
pub const InspectorMode = Binding.Action.InspectorMode;
|
|
pub const Mods = key.Mods;
|
|
pub const MouseButton = mouse.Button;
|
|
pub const MouseButtonState = mouse.ButtonState;
|
|
pub const MousePressureStage = mouse.PressureStage;
|
|
pub const OptionAsAlt = config.OptionAsAlt;
|
|
pub const ScrollMods = mouse.ScrollMods;
|
|
pub const SplitFocusDirection = Binding.Action.SplitFocusDirection;
|
|
pub const SplitResizeDirection = Binding.Action.SplitResizeDirection;
|
|
pub const Trigger = Binding.Trigger;
|
|
|
|
// Keymap is only available on macOS right now. We could implement it
|
|
// in theory for XKB too on Linux but we don't need it right now.
|
|
pub const Keymap = switch (builtin.os.tag) {
|
|
.macos => @import("input/KeymapDarwin.zig"),
|
|
else => @import("input/KeymapNoop.zig"),
|
|
};
|
|
|
|
test {
|
|
std.testing.refAllDecls(@This());
|
|
}
|