Added complete Xlib stubs (#9279)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
Avasam
2022-11-30 11:10:34 -05:00
committed by GitHub
parent 5c3f10e1df
commit ee69f6085e
69 changed files with 5878 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
# Type helpers
Xlib._typing
# __all__ is a map at runtime
# https://github.com/python-xlib/python-xlib/pull/238
Xlib.ext(\.__all__)?
# These will unconditionally fail at runtime
# See: https://github.com/python-xlib/python-xlib/issues/253
Xlib.protocol.rq.DictWrapper.__gt__
Xlib.protocol.rq.DictWrapper.__lt__
Xlib.protocol.rq.Event.__gt__
Xlib.protocol.rq.Event.__lt__
# Default values
Xlib.protocol.display.Display.send_and_recv
# Can be None or str once instanciated
Xlib.protocol.rq.*.structcode
# Should only ever be str once instanciated
Xlib.protocol.rq.*.name
# Structs generate their attributes (@type_check_only)
Xlib.protocol.rq.Struct.__getattr__
# Iteration variable bleed into the global scope
Xlib.protocol.rq.c
# Re-export from tkinter
Xlib.ext.randr.W
# Re-exports from six
Xlib.ext.xinput.integer_types
Xlib.protocol.display.PY3
Xlib.protocol.display.byte2int
Xlib.protocol.rq.PY3
Xlib.protocol.rq.byte2int

View File

@@ -0,0 +1,3 @@
# failed to import, ModuleNotFoundError: No module named 'fcntl'
# https://github.com/python-xlib/python-xlib/pull/217
Xlib.support.unix_connect

View File

@@ -0,0 +1,5 @@
version = "0.32.*"
requires = ["types-Pillow"]
[tool.stubtest]
ignore_missing_stub = false

View File

@@ -0,0 +1,345 @@
NONE: int
ParentRelative: int
CopyFromParent: int
PointerWindow: int
InputFocus: int
PointerRoot: int
AnyPropertyType: int
AnyKey: int
AnyButton: int
AllTemporary: int
CurrentTime: int
NoSymbol: int
NoEventMask: int
KeyPressMask: int
KeyReleaseMask: int
ButtonPressMask: int
ButtonReleaseMask: int
EnterWindowMask: int
LeaveWindowMask: int
PointerMotionMask: int
PointerMotionHintMask: int
Button1MotionMask: int
Button2MotionMask: int
Button3MotionMask: int
Button4MotionMask: int
Button5MotionMask: int
ButtonMotionMask: int
KeymapStateMask: int
ExposureMask: int
VisibilityChangeMask: int
StructureNotifyMask: int
ResizeRedirectMask: int
SubstructureNotifyMask: int
SubstructureRedirectMask: int
FocusChangeMask: int
PropertyChangeMask: int
ColormapChangeMask: int
OwnerGrabButtonMask: int
KeyPress: int
KeyRelease: int
ButtonPress: int
ButtonRelease: int
MotionNotify: int
EnterNotify: int
LeaveNotify: int
FocusIn: int
FocusOut: int
KeymapNotify: int
Expose: int
GraphicsExpose: int
NoExpose: int
VisibilityNotify: int
CreateNotify: int
DestroyNotify: int
UnmapNotify: int
MapNotify: int
MapRequest: int
ReparentNotify: int
ConfigureNotify: int
ConfigureRequest: int
GravityNotify: int
ResizeRequest: int
CirculateNotify: int
CirculateRequest: int
PropertyNotify: int
SelectionClear: int
SelectionRequest: int
SelectionNotify: int
ColormapNotify: int
ClientMessage: int
MappingNotify: int
LASTEvent: int
ShiftMask: int
LockMask: int
ControlMask: int
Mod1Mask: int
Mod2Mask: int
Mod3Mask: int
Mod4Mask: int
Mod5Mask: int
ShiftMapIndex: int
LockMapIndex: int
ControlMapIndex: int
Mod1MapIndex: int
Mod2MapIndex: int
Mod3MapIndex: int
Mod4MapIndex: int
Mod5MapIndex: int
Button1Mask: int
Button2Mask: int
Button3Mask: int
Button4Mask: int
Button5Mask: int
AnyModifier: int
Button1: int
Button2: int
Button3: int
Button4: int
Button5: int
NotifyNormal: int
NotifyGrab: int
NotifyUngrab: int
NotifyWhileGrabbed: int
NotifyHint: int
NotifyAncestor: int
NotifyVirtual: int
NotifyInferior: int
NotifyNonlinear: int
NotifyNonlinearVirtual: int
NotifyPointer: int
NotifyPointerRoot: int
NotifyDetailNone: int
VisibilityUnobscured: int
VisibilityPartiallyObscured: int
VisibilityFullyObscured: int
PlaceOnTop: int
PlaceOnBottom: int
FamilyInternet: int
FamilyDECnet: int
FamilyChaos: int
FamilyServerInterpreted: int
FamilyInternetV6: int
PropertyNewValue: int
PropertyDelete: int
ColormapUninstalled: int
ColormapInstalled: int
GrabModeSync: int
GrabModeAsync: int
GrabSuccess: int
AlreadyGrabbed: int
GrabInvalidTime: int
GrabNotViewable: int
GrabFrozen: int
AsyncPointer: int
SyncPointer: int
ReplayPointer: int
AsyncKeyboard: int
SyncKeyboard: int
ReplayKeyboard: int
AsyncBoth: int
SyncBoth: int
RevertToNone: int
RevertToPointerRoot: int
RevertToParent: int
Success: int
BadRequest: int
BadValue: int
BadWindow: int
BadPixmap: int
BadAtom: int
BadCursor: int
BadFont: int
BadMatch: int
BadDrawable: int
BadAccess: int
BadAlloc: int
BadColor: int
BadGC: int
BadIDChoice: int
BadName: int
BadLength: int
BadImplementation: int
FirstExtensionError: int
LastExtensionError: int
InputOutput: int
InputOnly: int
CWBackPixmap: int
CWBackPixel: int
CWBorderPixmap: int
CWBorderPixel: int
CWBitGravity: int
CWWinGravity: int
CWBackingStore: int
CWBackingPlanes: int
CWBackingPixel: int
CWOverrideRedirect: int
CWSaveUnder: int
CWEventMask: int
CWDontPropagate: int
CWColormap: int
CWCursor: int
CWX: int
CWY: int
CWWidth: int
CWHeight: int
CWBorderWidth: int
CWSibling: int
CWStackMode: int
ForgetGravity: int
NorthWestGravity: int
NorthGravity: int
NorthEastGravity: int
WestGravity: int
CenterGravity: int
EastGravity: int
SouthWestGravity: int
SouthGravity: int
SouthEastGravity: int
StaticGravity: int
UnmapGravity: int
NotUseful: int
WhenMapped: int
Always: int
IsUnmapped: int
IsUnviewable: int
IsViewable: int
SetModeInsert: int
SetModeDelete: int
DestroyAll: int
RetainPermanent: int
RetainTemporary: int
Above: int
Below: int
TopIf: int
BottomIf: int
Opposite: int
RaiseLowest: int
LowerHighest: int
PropModeReplace: int
PropModePrepend: int
PropModeAppend: int
GXclear: int
GXand: int
GXandReverse: int
GXcopy: int
GXandInverted: int
GXnoop: int
GXxor: int
GXor: int
GXnor: int
GXequiv: int
GXinvert: int
GXorReverse: int
GXcopyInverted: int
GXorInverted: int
GXnand: int
GXset: int
LineSolid: int
LineOnOffDash: int
LineDoubleDash: int
CapNotLast: int
CapButt: int
CapRound: int
CapProjecting: int
JoinMiter: int
JoinRound: int
JoinBevel: int
FillSolid: int
FillTiled: int
FillStippled: int
FillOpaqueStippled: int
EvenOddRule: int
WindingRule: int
ClipByChildren: int
IncludeInferiors: int
Unsorted: int
YSorted: int
YXSorted: int
YXBanded: int
CoordModeOrigin: int
CoordModePrevious: int
Complex: int
Nonconvex: int
Convex: int
ArcChord: int
ArcPieSlice: int
GCFunction: int
GCPlaneMask: int
GCForeground: int
GCBackground: int
GCLineWidth: int
GCLineStyle: int
GCCapStyle: int
GCJoinStyle: int
GCFillStyle: int
GCFillRule: int
GCTile: int
GCStipple: int
GCTileStipXOrigin: int
GCTileStipYOrigin: int
GCFont: int
GCSubwindowMode: int
GCGraphicsExposures: int
GCClipXOrigin: int
GCClipYOrigin: int
GCClipMask: int
GCDashOffset: int
GCDashList: int
GCArcMode: int
GCLastBit: int
FontLeftToRight: int
FontRightToLeft: int
FontChange: int
XYBitmap: int
XYPixmap: int
ZPixmap: int
AllocNone: int
AllocAll: int
DoRed: int
DoGreen: int
DoBlue: int
CursorShape: int
TileShape: int
StippleShape: int
AutoRepeatModeOff: int
AutoRepeatModeOn: int
AutoRepeatModeDefault: int
LedModeOff: int
LedModeOn: int
KBKeyClickPercent: int
KBBellPercent: int
KBBellPitch: int
KBBellDuration: int
KBLed: int
KBLedMode: int
KBKey: int
KBAutoRepeatMode: int
MappingSuccess: int
MappingBusy: int
MappingFailed: int
MappingModifier: int
MappingKeyboard: int
MappingPointer: int
DontPreferBlanking: int
PreferBlanking: int
DefaultBlanking: int
DisableScreenSaver: int
DisableScreenInterval: int
DontAllowExposures: int
AllowExposures: int
DefaultExposures: int
ScreenSaverReset: int
ScreenSaverActive: int
HostInsert: int
HostDelete: int
EnableAccess: int
DisableAccess: int
StaticGray: int
GrayScale: int
StaticColor: int
PseudoColor: int
TrueColor: int
DirectColor: int
LSBFirst: int
MSBFirst: int

View File

@@ -0,0 +1,7 @@
from Xlib.keysymdef.latin1 import *
from Xlib.keysymdef.miscellany import *
from Xlib.X import NoSymbol as NoSymbol
def string_to_keysym(keysym: str) -> int: ...
def load_keysym_group(group: str) -> None: ...
def keysym_to_string(keysym: int) -> str | None: ...

View File

@@ -0,0 +1,69 @@
PRIMARY: int
SECONDARY: int
ARC: int
ATOM: int
BITMAP: int
CARDINAL: int
COLORMAP: int
CURSOR: int
CUT_BUFFER0: int
CUT_BUFFER1: int
CUT_BUFFER2: int
CUT_BUFFER3: int
CUT_BUFFER4: int
CUT_BUFFER5: int
CUT_BUFFER6: int
CUT_BUFFER7: int
DRAWABLE: int
FONT: int
INTEGER: int
PIXMAP: int
POINT: int
RECTANGLE: int
RESOURCE_MANAGER: int
RGB_COLOR_MAP: int
RGB_BEST_MAP: int
RGB_BLUE_MAP: int
RGB_DEFAULT_MAP: int
RGB_GRAY_MAP: int
RGB_GREEN_MAP: int
RGB_RED_MAP: int
STRING: int
VISUALID: int
WINDOW: int
WM_COMMAND: int
WM_HINTS: int
WM_CLIENT_MACHINE: int
WM_ICON_NAME: int
WM_ICON_SIZE: int
WM_NAME: int
WM_NORMAL_HINTS: int
WM_SIZE_HINTS: int
WM_ZOOM_HINTS: int
MIN_SPACE: int
NORM_SPACE: int
MAX_SPACE: int
END_SPACE: int
SUPERSCRIPT_X: int
SUPERSCRIPT_Y: int
SUBSCRIPT_X: int
SUBSCRIPT_Y: int
UNDERLINE_POSITION: int
UNDERLINE_THICKNESS: int
STRIKEOUT_ASCENT: int
STRIKEOUT_DESCENT: int
ITALIC_ANGLE: int
X_HEIGHT: int
QUAD_WIDTH: int
WEIGHT: int
POINT_SIZE: int
RESOLUTION: int
COPYRIGHT: int
NOTICE: int
FONT_NAME: int
FAMILY_NAME: int
FULL_NAME: int
CAP_HEIGHT: int
WM_CLASS: int
WM_TRANSIENT_FOR: int
LAST_PREDEFINED: int

View File

@@ -0,0 +1,78 @@
num_glyphs: int
X_cursor: int
arrow: int
based_arrow_down: int
based_arrow_up: int
boat: int
bogosity: int
bottom_left_corner: int
bottom_right_corner: int
bottom_side: int
bottom_tee: int
box_spiral: int
center_ptr: int
circle: int
clock: int
coffee_mug: int
cross: int
cross_reverse: int
crosshair: int
diamond_cross: int
dot: int
dotbox: int
double_arrow: int
draft_large: int
draft_small: int
draped_box: int
exchange: int
fleur: int
gobbler: int
gumby: int
hand1: int
hand2: int
heart: int
icon: int
iron_cross: int
left_ptr: int
left_side: int
left_tee: int
leftbutton: int
ll_angle: int
lr_angle: int
man: int
middlebutton: int
mouse: int
pencil: int
pirate: int
plus: int
question_arrow: int
right_ptr: int
right_side: int
right_tee: int
rightbutton: int
rtl_logo: int
sailboat: int
sb_down_arrow: int
sb_h_double_arrow: int
sb_left_arrow: int
sb_right_arrow: int
sb_up_arrow: int
sb_v_double_arrow: int
shuttle: int
sizing: int
spider: int
spraycan: int
star: int
target: int
tcross: int
top_left_arrow: int
top_left_corner: int
top_right_corner: int
top_side: int
top_tee: int
trek: int
ul_angle: int
umbrella: int
ur_angle: int
watch: int
xterm: int

View File

@@ -0,0 +1,57 @@
NoValue: int
XValue: int
YValue: int
WidthValue: int
HeightValue: int
AllValues: int
XNegative: int
YNegative: int
USPosition: int
USSize: int
PPosition: int
PSize: int
PMinSize: int
PMaxSize: int
PResizeInc: int
PAspect: int
PBaseSize: int
PWinGravity: int
PAllHints: int
InputHint: int
StateHint: int
IconPixmapHint: int
IconWindowHint: int
IconPositionHint: int
IconMaskHint: int
WindowGroupHint: int
MessageHint: int
UrgencyHint: int
AllHints: int
WithdrawnState: int
NormalState: int
IconicState: int
DontCareState: int
ZoomState: int
InactiveState: int
RectangleOut: int
RectangleIn: int
RectanglePart: int
VisualNoMask: int
VisualIDMask: int
VisualScreenMask: int
VisualDepthMask: int
VisualClassMask: int
VisualRedMaskMask: int
VisualGreenMaskMask: int
VisualBlueMaskMask: int
VisualColormapSizeMask: int
VisualBitsPerRGBMask: int
VisualAllMask: int
ReleaseByFreeingColormap: int
BitmapSuccess: int
BitmapOpenFailed: int
BitmapFileInvalid: int
BitmapNoMemory: int
XCSUCCESS: int
XCNOMEM: int
XCNOENT: int

View File

@@ -0,0 +1,14 @@
from Xlib import (
XK as XK,
X as X,
Xatom as Xatom,
Xcursorfont as Xcursorfont,
Xutil as Xutil,
display as display,
error as error,
rdb as rdb,
)
__all__ = ["X", "XK", "Xatom", "Xcursorfont", "Xutil", "display", "error", "rdb"]
# Shared types throughout the stub

View File

@@ -0,0 +1,12 @@
from _typeshed import FileDescriptor, StrOrBytesPath
from collections.abc import Callable
from typing import Optional, TypeVar
from typing_extensions import TypeAlias
from Xlib.error import XError
from Xlib.protocol.rq import Request
_T = TypeVar("_T")
ErrorHandler: TypeAlias = Callable[[XError, Optional[Request]], _T]
Unused: TypeAlias = object
OpenFile: TypeAlias = StrOrBytesPath | FileDescriptor

View File

@@ -0,0 +1,161 @@
from collections.abc import Callable, Iterable, Sequence
from types import FunctionType, MethodType
from typing import Any, Pattern, overload
from typing_extensions import Literal, TypeAlias, TypedDict
from Xlib import error
from Xlib._typing import ErrorHandler
from Xlib.protocol import display, request, rq
from Xlib.xobject import colormap, cursor, drawable, fontable, resource
_ResourceBaseClass: TypeAlias = (
resource.Resource
| drawable.Drawable
| drawable.Window
| drawable.Pixmap
| fontable.Fontable
| fontable.Font
| fontable.GC
| colormap.Colormap
| cursor.Cursor
)
# Is the type of the `_resource_baseclasses` variable, defined in this file at runtime
class _ResourceBaseClassesType(TypedDict): # noqa: Y049
resource: type[resource.Resource]
drawable: type[drawable.Drawable]
window: type[drawable.Window]
pixmap: type[drawable.Pixmap]
fontable: type[fontable.Fontable]
font: type[fontable.Font]
gc: type[fontable.GC]
colormap: type[colormap.Colormap]
cursor: type[cursor.Cursor]
class _BaseDisplay(display.Display):
def __init__(self, display: str | None = ...) -> None: ...
def get_atom(self, atomname: str, only_if_exists: bool = ...) -> int: ...
class Display:
display: _BaseDisplay
keysym_translations: dict[int, str]
extensions: list[str]
class_extension_dicts: dict[str, dict[str, FunctionType]]
display_extension_methods: dict[str, Callable[..., Any]]
extension_event: rq.DictWrapper
def __init__(self, display: str | None = ...) -> None: ...
def get_display_name(self) -> str: ...
def fileno(self) -> int: ...
def close(self) -> None: ...
def set_error_handler(self, handler: ErrorHandler[object] | None) -> None: ...
def flush(self) -> None: ...
def sync(self) -> None: ...
def next_event(self) -> rq.Event: ...
def pending_events(self) -> int: ...
def has_extension(self, extension: str) -> bool: ...
@overload
def create_resource_object(self, type: Literal["resource"], id: int) -> resource.Resource: ...
@overload
def create_resource_object(self, type: Literal["drawable"], id: int) -> drawable.Drawable: ...
@overload
def create_resource_object(self, type: Literal["window"], id: int) -> drawable.Window: ...
@overload
def create_resource_object(self, type: Literal["pixmap"], id: int) -> drawable.Pixmap: ...
@overload
def create_resource_object(self, type: Literal["fontable"], id: int) -> fontable.Fontable: ...
@overload
def create_resource_object(self, type: Literal["font"], id: int) -> fontable.Font: ...
@overload
def create_resource_object(self, type: Literal["gc"], id: int) -> fontable.GC: ...
@overload
def create_resource_object(self, type: Literal["colormap"], id: int) -> colormap.Colormap: ...
@overload
def create_resource_object(self, type: Literal["cursor"], id: int) -> cursor.Cursor: ...
@overload
def create_resource_object(self, type: str, id: int) -> resource.Resource: ...
def __getattr__(self, attr: str) -> MethodType: ...
def screen(self, sno: int | None = ...) -> rq.Struct: ...
def screen_count(self) -> int: ...
def get_default_screen(self) -> int: ...
def extension_add_method(self, object: str, name: str, function: Callable[..., Any]) -> None: ...
def extension_add_event(self, code: int, evt: type, name: str | None = ...) -> None: ...
def extension_add_subevent(self, code: int, subcode: int | None, evt: type[rq.Event], name: str | None = ...) -> None: ...
def extension_add_error(self, code: int, err: type[error.XError]) -> None: ...
def keycode_to_keysym(self, keycode: int, index: int) -> int: ...
def keysym_to_keycode(self, keysym: int) -> int: ...
def keysym_to_keycodes(self, keysym: int) -> Iterable[tuple[int, int]]: ...
def refresh_keyboard_mapping(self, evt: rq.Event) -> None: ...
def lookup_string(self, keysym: int) -> str | None: ...
def rebind_string(self, keysym: int, newstring: str | None) -> None: ...
def intern_atom(self, name: str, only_if_exists: bool = ...) -> int: ...
def get_atom(self, atom: str, only_if_exists: bool = ...) -> int: ...
def get_atom_name(self, atom: int) -> str: ...
def get_selection_owner(self, selection: int) -> int: ...
def send_event(
self,
destination: int,
event: rq.Event,
event_mask: int = ...,
propagate: bool = ...,
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def ungrab_pointer(self, time: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def change_active_pointer_grab(
self, event_mask: int, cursor: cursor.Cursor, time: int, onerror: ErrorHandler[object] | None = ...
) -> None: ...
def ungrab_keyboard(self, time: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def allow_events(self, mode: int, time: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def grab_server(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def ungrab_server(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def warp_pointer(
self,
x: int,
y: int,
src_window: int = ...,
src_x: int = ...,
src_y: int = ...,
src_width: int = ...,
src_height: int = ...,
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def set_input_focus(self, focus: int, revert_to: int, time: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def get_input_focus(self) -> request.GetInputFocus: ...
def query_keymap(self) -> bytes: ... # TODO: Validate if this is correct
def open_font(self, name: str) -> _ResourceBaseClass | None: ...
def list_fonts(self, pattern: Pattern[str] | str, max_names: int) -> list[str]: ...
def list_fonts_with_info(self, pattern: Pattern[str] | str, max_names: int) -> request.ListFontsWithInfo: ...
def set_font_path(self, path: Sequence[str], onerror: ErrorHandler[object] | None = ...) -> None: ...
def get_font_path(self) -> list[str]: ...
def query_extension(self, name: str) -> request.QueryExtension | None: ...
def list_extensions(self) -> list[str]: ...
def change_keyboard_mapping(
self, first_keycode: int, keysyms: Sequence[Sequence[int]], onerror: ErrorHandler[object] | None = ...
) -> None: ...
def get_keyboard_mapping(self, first_keycode: int, count: int) -> list[tuple[int, ...]]: ...
def change_keyboard_control(self, onerror: ErrorHandler[object] | None = ..., **keys: object) -> None: ...
def get_keyboard_control(self) -> request.GetKeyboardControl: ...
def bell(self, percent: int = ..., onerror: ErrorHandler[object] | None = ...) -> None: ...
def change_pointer_control(
self, accel: tuple[int, int] | None = ..., threshold: int | None = ..., onerror: ErrorHandler[object] | None = ...
) -> None: ...
def get_pointer_control(self) -> request.GetPointerControl: ...
def set_screen_saver(
self, timeout: int, interval: int, prefer_blank: int, allow_exposures: int, onerror: ErrorHandler[object] | None = ...
) -> None: ...
def get_screen_saver(self) -> request.GetScreenSaver: ...
def change_hosts(
self,
mode: int,
host_family: int,
host: Sequence[int] | Sequence[bytes], # TODO: validate
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def list_hosts(self) -> request.ListHosts: ...
def set_access_control(self, mode: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def set_close_down_mode(self, mode: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def force_screen_saver(self, mode: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def set_pointer_mapping(self, map: Sequence[int]) -> int: ...
def get_pointer_mapping(self) -> list[int]: ...
def set_modifier_mapping(self, keycodes: rq._ModifierMappingList8Elements) -> int: ...
def get_modifier_mapping(self) -> Sequence[Sequence[int]]: ...
def no_operation(self, onerror: ErrorHandler[object] | None = ...) -> None: ...

View File

@@ -0,0 +1,57 @@
from _typeshed import SliceableBuffer
from typing_extensions import Literal
from Xlib.protocol import display, rq
class DisplayError(Exception):
display: object
def __init__(self, display: object) -> None: ...
class DisplayNameError(DisplayError): ...
class DisplayConnectionError(DisplayError):
display: object
msg: object
def __init__(self, display: object, msg: object) -> None: ...
class ConnectionClosedError(Exception):
whom: object
def __init__(self, whom: object) -> None: ...
class XauthError(Exception): ...
class XNoAuthError(Exception): ...
class ResourceIDError(Exception): ...
class XError(rq.GetAttrData, Exception):
def __init__(self, display: display.Display, data: SliceableBuffer) -> None: ...
class XResourceError(XError): ...
class BadRequest(XError): ...
class BadValue(XError): ...
class BadWindow(XResourceError): ...
class BadPixmap(XResourceError): ...
class BadAtom(XError): ...
class BadCursor(XResourceError): ...
class BadFont(XResourceError): ...
class BadMatch(XError): ...
class BadDrawable(XResourceError): ...
class BadAccess(XError): ...
class BadAlloc(XError): ...
class BadColor(XResourceError): ...
class BadGC(XResourceError): ...
class BadIDChoice(XResourceError): ...
class BadName(XError): ...
class BadLength(XError): ...
class BadImplementation(XError): ...
xerror_class: dict[int, type[XError]]
class CatchError:
error_types: tuple[type[XError], ...]
error: XError | None
request: rq.Request | None
def __init__(self, *errors: type[XError]) -> None: ...
def __call__(self, error: XError, request: rq.Request | None) -> Literal[0, 1]: ...
def get_error(self) -> XError | None: ...
def get_request(self) -> rq.Request | None: ...
def reset(self) -> None: ...

View File

@@ -0,0 +1,35 @@
from Xlib.ext import (
composite as composite,
damage as damage,
dpms as dpms,
ge as ge,
nvcontrol as nvcontrol,
randr as randr,
record as record,
res as res,
screensaver as screensaver,
security as security,
shape as shape,
xfixes as xfixes,
xinerama as xinerama,
xinput as xinput,
xtest as xtest,
)
__all__ = [
"ge",
"xtest",
"shape",
"xinerama",
"record",
"composite",
"randr",
"xfixes",
"security",
"xinput",
"nvcontrol",
"damage",
"dpms",
"res",
"screensaver",
]

View File

@@ -0,0 +1,47 @@
from collections.abc import Callable
from typing import Any, Union
from typing_extensions import TypeAlias
from Xlib._typing import ErrorHandler, Unused
from Xlib.display import Display
from Xlib.protocol import rq
from Xlib.xobject import drawable, resource
_Update: TypeAlias = Callable[[Union[rq.DictWrapper, dict[str, Any]]], object]
extname: str
RedirectAutomatic: int
RedirectManual: int
class QueryVersion(rq.ReplyRequest): ...
def query_version(self: Display | resource.Resource) -> QueryVersion: ...
class RedirectWindow(rq.Request): ...
def redirect_window(self: drawable.Window, update: _Update, onerror: ErrorHandler[object] | None = ...) -> None: ...
class RedirectSubwindows(rq.Request): ...
def redirect_subwindows(self: drawable.Window, update: _Update, onerror: ErrorHandler[object] | None = ...) -> None: ...
class UnredirectWindow(rq.Request): ...
def unredirect_window(self: drawable.Window, update: _Update, onerror: ErrorHandler[object] | None = ...) -> None: ...
class UnredirectSubindows(rq.Request): ...
def unredirect_subwindows(self: drawable.Window, update: _Update, onerror: ErrorHandler[object] | None = ...) -> None: ...
class CreateRegionFromBorderClip(rq.Request): ...
def create_region_from_border_clip(self: drawable.Window, onerror: ErrorHandler[object] | None = ...) -> int: ...
class NameWindowPixmap(rq.Request): ...
def name_window_pixmap(self: Display | resource.Resource, onerror: ErrorHandler[object] | None = ...) -> drawable.Pixmap: ...
class GetOverlayWindow(rq.ReplyRequest): ...
def get_overlay_window(self: Display) -> GetOverlayWindow: ...
def init(disp: Display, info: Unused) -> None: ...

View File

@@ -0,0 +1,41 @@
from Xlib.display import Display
from Xlib.error import XError
from Xlib.protocol import request, rq
from Xlib.xobject import resource
extname: str
DamageNotifyCode: int
BadDamageCode: int
class BadDamageError(XError): ...
DamageReportRawRectangles: int
DamageReportDeltaRectangles: int
DamageReportBoundingBox: int
DamageReportNonEmpty: int
DamageReportLevel: tuple[int, int, int, int]
DAMAGE = rq.Card32
class QueryVersion(rq.ReplyRequest): ...
def query_version(self: Display | resource.Resource) -> QueryVersion: ...
class DamageCreate(rq.Request): ...
def damage_create(self: Display | resource.Resource, level: int) -> int: ...
class DamageDestroy(rq.Request): ...
def damage_destroy(self: Display | resource.Resource, damage: int) -> None: ...
class DamageSubtract(rq.Request): ...
def damage_subtract(self: Display | resource.Resource, damage: int, repair: int = ..., parts: int = ...) -> None: ...
class DamageAdd(rq.Request): ...
def damage_add(self: Display | resource.Resource, repair: int, parts: int) -> None: ...
class DamageNotify(rq.Event): ...
def init(disp: Display, info: request.QueryExtension) -> None: ...

View File

@@ -0,0 +1,46 @@
from Xlib._typing import Unused
from Xlib.display import Display
from Xlib.protocol import rq
from Xlib.xobject import resource
extname: str
DPMSModeOn: int
DPMSModeStandby: int
DPMSModeSuspend: int
DPMSModeOff: int
DPMSPowerLevel: tuple[int, int, int, int]
class DPMSGetVersion(rq.ReplyRequest): ...
def get_version(self: Display | resource.Resource) -> DPMSGetVersion: ...
class DPMSCapable(rq.ReplyRequest): ...
def capable(self: Display | resource.Resource) -> DPMSCapable: ...
class DPMSGetTimeouts(rq.ReplyRequest): ...
def get_timeouts(self: Display | resource.Resource) -> DPMSGetTimeouts: ...
class DPMSSetTimeouts(rq.Request): ...
def set_timeouts(
self: Display | resource.Resource, standby_timeout: int, suspend_timeout: int, off_timeout: int
) -> DPMSSetTimeouts: ...
class DPMSEnable(rq.Request): ...
def enable(self: Display | resource.Resource) -> DPMSEnable: ...
class DPMSDisable(rq.Request): ...
def disable(self: Display | resource.Resource) -> DPMSDisable: ...
class DPMSForceLevel(rq.Request): ...
def force_level(self: Display | resource.Resource, power_level: int) -> DPMSForceLevel: ...
class DPMSInfo(rq.ReplyRequest): ...
def info(self: Display | resource.Resource) -> DPMSInfo: ...
def init(disp: Display, _info: Unused) -> None: ...

View File

@@ -0,0 +1,16 @@
from Xlib._typing import Unused
from Xlib.display import Display
from Xlib.protocol import rq
from Xlib.xobject import resource
extname: str
GenericEventCode: int
class GEQueryVersion(rq.ReplyRequest): ...
def query_version(self: Display | resource.Resource) -> GEQueryVersion: ...
class GenericEvent(rq.Event): ...
def add_event_data(self: Display | resource.Resource, extension: int, evtype: int, estruct: int) -> None: ...
def init(disp: Display, info: Unused) -> None: ...

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,261 @@
from collections.abc import Sequence
from typing_extensions import TypeAlias
from Xlib.display import Display
from Xlib.protocol import request, rq
from Xlib.xobject import drawable, resource
_RandRModeInfo13IntSequence: TypeAlias = Sequence[int]
extname: str
RRScreenChangeNotify: int
RRNotify: int
RRNotify_CrtcChange: int
RRNotify_OutputChange: int
RRNotify_OutputProperty: int
RRScreenChangeNotifyMask: int
RRCrtcChangeNotifyMask: int
RROutputChangeNotifyMask: int
RROutputPropertyNotifyMask: int
SetConfigSuccess: int
SetConfigInvalidConfigTime: int
SetConfigInvalidTime: int
SetConfigFailed: int
Rotate_0: int
Rotate_90: int
Rotate_180: int
Rotate_270: int
Reflect_X: int
Reflect_Y: int
HSyncPositive: int
HSyncNegative: int
VSyncPositive: int
VSyncNegative: int
Interlace: int
DoubleScan: int
CSync: int
CSyncPositive: int
CSyncNegative: int
HSkewPresent: int
BCast: int
PixelMultiplex: int
DoubleClock: int
ClockDivideBy2: int
Connected: int
Disconnected: int
UnknownConnection: int
PROPERTY_RANDR_EDID: str
PROPERTY_SIGNAL_FORMAT: str
PROPERTY_SIGNAL_PROPERTIES: str
PROPERTY_CONNECTOR_TYPE: str
PROPERTY_CONNECTOR_NUMBER: str
PROPERTY_COMPATIBILITY_LIST: str
PROPERTY_CLONE_LIST: str
SubPixelUnknown: int
SubPixelHorizontalRGB: int
SubPixelHorizontalBGR: int
SubPixelVerticalRGB: int
SubPixelVerticalBGR: int
SubPixelNone: int
BadRROutput: int
BadRRCrtc: int
BadRRMode: int
class BadRROutputError(Exception): ...
class BadRRCrtcError(Exception): ...
class BadRRModeError(Exception): ...
RandR_ScreenSizes: rq.Struct
RandR_ModeInfo: rq.Struct
RandR_Rates: rq.Struct
Render_Transform: rq.Struct
MonitorInfo: rq.Struct
class QueryVersion(rq.ReplyRequest): ...
def query_version(self: Display | resource.Resource) -> QueryVersion: ...
class _1_0SetScreenConfig(rq.ReplyRequest): ...
class SetScreenConfig(rq.ReplyRequest): ...
def set_screen_config(
self: drawable.Drawable, size_id: int, rotation: int, config_timestamp: int, rate: int = ..., timestamp: int = ...
) -> SetScreenConfig: ...
class SelectInput(rq.Request): ...
def select_input(self: drawable.Window, mask: int) -> SelectInput: ...
class GetScreenInfo(rq.ReplyRequest): ...
def get_screen_info(self: drawable.Window) -> GetScreenInfo: ...
class GetScreenSizeRange(rq.ReplyRequest): ...
def get_screen_size_range(self: drawable.Window) -> GetScreenSizeRange: ...
class SetScreenSize(rq.Request): ...
def set_screen_size(
self: drawable.Window,
width: int,
height: int,
width_in_millimeters: int | None = ...,
height_in_millimeters: int | None = ...,
) -> SetScreenSize: ...
class GetScreenResources(rq.ReplyRequest): ...
def get_screen_resources(self: drawable.Window) -> GetScreenResources: ...
class GetOutputInfo(rq.ReplyRequest): ...
def get_output_info(self: Display | resource.Resource, output: int, config_timestamp: int) -> GetOutputInfo: ...
class ListOutputProperties(rq.ReplyRequest): ...
def list_output_properties(self: Display | resource.Resource, output: int) -> ListOutputProperties: ...
class QueryOutputProperty(rq.ReplyRequest): ...
def query_output_property(self: Display | resource.Resource, output: int, property: int) -> QueryOutputProperty: ...
class ConfigureOutputProperty(rq.Request): ...
def configure_output_property(self: Display | resource.Resource, output: int, property: int) -> ConfigureOutputProperty: ...
class ChangeOutputProperty(rq.Request): ...
def change_output_property(
self: Display | resource.Resource, output: int, property: int, type: int, mode: int, value: Sequence[float] | Sequence[str]
) -> ChangeOutputProperty: ...
class DeleteOutputProperty(rq.Request): ...
def delete_output_property(self: Display | resource.Resource, output: int, property: int) -> DeleteOutputProperty: ...
class GetOutputProperty(rq.ReplyRequest): ...
def get_output_property(
self: Display | resource.Resource,
output: int,
property: int,
type: int,
long_offset: int,
long_length: int,
delete: bool = ...,
pending: bool = ...,
) -> GetOutputProperty: ...
class CreateMode(rq.ReplyRequest): ...
def create_mode(self: drawable.Window, mode: _RandRModeInfo13IntSequence, name: str) -> CreateMode: ...
class DestroyMode(rq.Request): ...
def destroy_mode(self: Display | resource.Resource, mode: int) -> DestroyMode: ...
class AddOutputMode(rq.Request): ...
def add_output_mode(self: Display | resource.Resource, output: int, mode: int) -> AddOutputMode: ...
class DeleteOutputMode(rq.Request): ...
def delete_output_mode(self: Display | resource.Resource, output: int, mode: int) -> DeleteOutputMode: ...
class GetCrtcInfo(rq.ReplyRequest): ...
def get_crtc_info(self: Display | resource.Resource, crtc: int, config_timestamp: int) -> GetCrtcInfo: ...
class SetCrtcConfig(rq.ReplyRequest): ...
def set_crtc_config(
self: Display | resource.Resource,
crtc: int,
config_timestamp: int,
x: int,
y: int,
mode: int,
rotation: int,
outputs: Sequence[int],
timestamp: int = ...,
) -> SetCrtcConfig: ...
class GetCrtcGammaSize(rq.ReplyRequest): ...
def get_crtc_gamma_size(self: Display | resource.Resource, crtc: int) -> GetCrtcGammaSize: ...
class GetCrtcGamma(rq.ReplyRequest): ...
def get_crtc_gamma(self: Display | resource.Resource, crtc: int) -> GetCrtcGamma: ...
class SetCrtcGamma(rq.Request): ...
def set_crtc_gamma(
self: Display | resource.Resource, crtc: int, size: int, red: Sequence[int], green: Sequence[int], blue: Sequence[int]
) -> SetCrtcGamma: ...
class GetScreenResourcesCurrent(rq.ReplyRequest): ...
def get_screen_resources_current(self: drawable.Window) -> GetScreenResourcesCurrent: ...
class SetCrtcTransform(rq.Request): ...
def set_crtc_transform(self: Display | resource.Resource, crtc: int, n_bytes_filter: Sequence[int]) -> SetCrtcTransform: ...
class GetCrtcTransform(rq.ReplyRequest): ...
def get_crtc_transform(self: Display | resource.Resource, crtc: int) -> GetCrtcTransform: ...
class GetPanning(rq.ReplyRequest): ...
def get_panning(self: Display | resource.Resource, crtc: int) -> GetPanning: ...
class SetPanning(rq.ReplyRequest): ...
def set_panning(
self: Display | resource.Resource,
crtc: int,
left: int,
top: int,
width: int,
height: int,
track_left: int,
track_top: int,
track_width: int,
track_height: int,
border_left: int,
border_top: int,
border_width: int,
border_height: int,
timestamp: int = ...,
) -> SetPanning: ...
class SetOutputPrimary(rq.Request): ...
def set_output_primary(self: drawable.Window, output: int) -> SetOutputPrimary: ...
class GetOutputPrimary(rq.ReplyRequest): ...
def get_output_primary(self: drawable.Window) -> GetOutputPrimary: ...
class GetMonitors(rq.ReplyRequest): ...
def get_monitors(self: drawable.Window, is_active: bool = ...) -> GetMonitors: ...
class SetMonitor(rq.Request): ...
def set_monitor(
self: drawable.Window, monitor_info: tuple[int, bool, bool, Sequence[int], int, int, int, int, int]
) -> SetMonitor: ...
class DeleteMonitor(rq.Request): ...
def delete_monitor(self: Display | resource.Resource, name: str) -> DeleteMonitor: ...
class ScreenChangeNotify(rq.Event): ...
class CrtcChangeNotify(rq.Event): ...
class OutputChangeNotify(rq.Event): ...
class OutputPropertyNotify(rq.Event): ...
def init(disp: Display, info: request.QueryExtension) -> None: ...

View File

@@ -0,0 +1,113 @@
from collections.abc import Callable, Sequence, Sized
from typing import Any, TypeVar
from typing_extensions import Literal
from Xlib._typing import Unused
from Xlib.display import Display
from Xlib.protocol import display, rq
from Xlib.xobject import resource
_T = TypeVar("_T")
_S = TypeVar("_S", bound=Sized)
extname: str
FromServerTime: int
FromClientTime: int
FromClientSequence: int
CurrentClients: int
FutureClients: int
AllClients: int
FromServer: int
FromClient: int
ClientStarted: int
ClientDied: int
StartOfData: int
EndOfData: int
Record_Range8: rq.Struct
Record_Range16: rq.Struct
Record_ExtRange: rq.Struct
Record_Range: rq.Struct
Record_ClientInfo: rq.Struct
class RawField(rq.ValueField):
structcode: None
def pack_value(self, val: _S) -> tuple[_S, int, None]: ... # type: ignore[override]
def parse_binary_value(self, data: _T, display: Unused, length: Unused, format: Unused) -> tuple[_T, Literal[""]]: ... # type: ignore[override] # See: https://github.com/python-xlib/python-xlib/pull/249
class GetVersion(rq.ReplyRequest): ...
def get_version(self: Display | resource.Resource, major: int, minor: int) -> GetVersion: ...
class CreateContext(rq.Request): ...
def create_context(
self: Display | resource.Resource,
datum_flags: int,
clients: Sequence[int],
ranges: Sequence[
tuple[
tuple[int, int],
tuple[int, int],
tuple[int, int],
tuple[int, int],
tuple[int, int],
tuple[int, int],
tuple[int, int],
bool,
bool,
]
],
) -> int: ...
class RegisterClients(rq.Request): ...
def register_clients(
self: Display | resource.Resource,
context: int,
element_header: int,
clients: int,
ranges: Sequence[
tuple[
tuple[int, int],
tuple[int, int],
tuple[int, int],
tuple[int, int],
tuple[int, int],
tuple[int, int],
tuple[int, int],
bool,
bool,
]
],
) -> None: ...
class UnregisterClients(rq.Request): ...
def unregister_clients(self: Display | resource.Resource, context: int, clients: Sequence[int]) -> None: ...
class GetContext(rq.ReplyRequest): ...
def get_context(self: Display | resource.Resource, context: int) -> GetContext: ...
class EnableContext(rq.ReplyRequest):
def __init__(
self,
callback: Callable[[rq.DictWrapper | dict[str, Any]], Any],
display: display.Display,
defer: bool = ...,
*args: object | bool,
**keys: object | bool,
) -> None: ...
def enable_context(
self: Display | resource.Resource, context: int, callback: Callable[[rq.DictWrapper | dict[str, Any]], Any]
) -> None: ...
class DisableContext(rq.Request): ...
def disable_context(self: Display | resource.Resource, context: int) -> None: ...
class FreeContext(rq.Request): ...
def free_context(self: Display | resource.Resource, context: int) -> None: ...
def init(disp: Display, info: Unused) -> None: ...

View File

@@ -0,0 +1,61 @@
from collections.abc import Sequence
from Xlib._typing import Unused
from Xlib.display import Display
from Xlib.protocol import rq
from Xlib.xobject import resource
RES_MAJOR_VERSION: int
RES_MINOR_VERSION: int
extname: str
ResQueryVersion: int
ResQueryClients: int
ResQueryClientResources: int
ResQueryClientPixmapBytes: int
ResQueryClientIds: int
ResQueryResourceBytes: int
class QueryVersion(rq.ReplyRequest): ...
def query_version(self: Display | resource.Resource, client_major: int = ..., client_minor: int = ...) -> QueryVersion: ...
Client: rq.Struct
class QueryClients(rq.ReplyRequest): ...
def query_clients(self: Display | resource.Resource) -> QueryClients: ...
Type: rq.Struct
class QueryClientResources(rq.ReplyRequest): ...
def query_client_resources(self: Display | resource.Resource, client: int) -> QueryClientResources: ...
class QueryClientPixmapBytes(rq.ReplyRequest): ...
def query_client_pixmap_bytes(self: Display | resource.Resource, client: int) -> QueryClientPixmapBytes: ...
class SizeOf(rq.LengthOf):
item_size: int
def __init__(self, name: str | list[str] | tuple[str, ...], size: int, item_size: int) -> None: ...
def parse_value(self, length: int, display: Unused) -> int: ... # type: ignore[override]
ClientXIDMask: int
LocalClientPIDMask: int
ClientIdSpec: rq.Struct
ClientIdValue: rq.Struct
class QueryClientIds(rq.ReplyRequest): ...
def query_client_ids(self: Display | resource.Resource, specs: Sequence[tuple[int, int]]) -> QueryClientIds: ...
ResourceIdSpec: rq.Struct
ResourceSizeSpec: rq.Struct
ResourceSizeValue: rq.Struct
class QueryResourceBytes(rq.ReplyRequest): ...
def query_resource_bytes(
self: Display | resource.Resource, client: int, specs: Sequence[tuple[int, int]]
) -> QueryResourceBytes: ...
def init(disp: Display, info: Unused) -> None: ...

View File

@@ -0,0 +1,50 @@
from Xlib._typing import ErrorHandler
from Xlib.display import Display
from Xlib.protocol import request, rq
from Xlib.xobject import drawable
extname: str
NotifyMask: int
CycleMask: int
StateOff: int
StateOn: int
StateCycle: int
KindBlanked: int
KindInternal: int
KindExternal: int
class QueryVersion(rq.ReplyRequest): ...
def query_version(self: drawable.Drawable) -> QueryVersion: ...
class QueryInfo(rq.ReplyRequest): ...
def query_info(self: drawable.Drawable) -> QueryInfo: ...
class SelectInput(rq.Request): ...
def select_input(self: drawable.Drawable, mask: int) -> SelectInput: ...
class SetAttributes(rq.Request): ...
def set_attributes(
self: drawable.Drawable,
x: int,
y: int,
width: int,
height: int,
border_width: int,
window_class: int = ...,
depth: int = ...,
visual: int = ...,
onerror: ErrorHandler[object] | None = ...,
**keys: object,
) -> SetAttributes: ...
class UnsetAttributes(rq.Request): ...
def unset_attributes(self: drawable.Drawable, onerror: ErrorHandler[object] | None = ...) -> UnsetAttributes: ...
class Notify(rq.Event): ...
def init(disp: Display, info: request.QueryExtension) -> None: ...

View File

@@ -0,0 +1,31 @@
from Xlib._typing import Unused
from Xlib.display import Display
from Xlib.protocol import rq
from Xlib.xobject import resource
extname: str
SecurityClientTrusted: int
SecurityClientUntrusted: int
SecurityAuthorizationRevokedMask: int
AUTHID = rq.Card32
class QueryVersion(rq.ReplyRequest): ...
def query_version(self: Display | resource.Resource) -> QueryVersion: ...
class SecurityGenerateAuthorization(rq.ReplyRequest): ...
def generate_authorization(
self: Display | resource.Resource,
auth_proto: str,
auth_data: bytes | bytearray = ...,
timeout: int | None = ...,
trust_level: int | None = ...,
group: int | None = ...,
event_mask: int | None = ...,
) -> SecurityGenerateAuthorization: ...
class SecurityRevokeAuthorization(rq.Request): ...
def revoke_authorization(self: Display | resource.Resource, authid: int) -> SecurityRevokeAuthorization: ...
def init(disp: Display, info: Unused) -> None: ...

View File

@@ -0,0 +1,61 @@
from collections.abc import Sequence
from Xlib.display import Display
from Xlib.protocol import request, rq
from Xlib.protocol.structs import _Rectangle4IntSequence
from Xlib.xobject import drawable, resource
extname: str
OP = rq.Card8
class SO:
Set: int
Union: int
Intersect: int
Subtract: int
Invert: int
class SK:
Bounding: int
Clip: int
Input: int
class KIND(rq.Set):
def __init__(self, name: str) -> None: ...
class NotifyEventData(rq.Event): ...
class QueryVersion(rq.ReplyRequest): ...
class Rectangles(rq.Request): ...
class Mask(rq.Request): ...
class Combine(rq.Request): ...
class Offset(rq.Request): ...
class QueryExtents(rq.ReplyRequest): ...
class SelectInput(rq.Request): ...
class InputSelected(rq.ReplyRequest): ...
class GetRectangles(rq.ReplyRequest): ...
class Event:
Notify: int
def combine(
self: drawable.Window, operation: int, destination_kind: int, source_kind: int, x_offset: int, y_offset: int
) -> None: ...
def get_rectangles(self: drawable.Window, source_kind: int) -> GetRectangles: ...
def input_selected(self: drawable.Window) -> InputSelected: ...
def mask(
self: drawable.Window, operation: int, destination_kind: int, x_offset: int, y_offset: int, source_bitmap: int
) -> None: ...
def offset(self: drawable.Window, destination_kind: int, x_offset: int, y_offset: int) -> None: ...
def query_extents(self: drawable.Window) -> QueryExtents: ...
def query_version(self: Display | resource.Resource) -> QueryVersion: ...
def rectangles(
self: drawable.Window,
operation: int,
destination_kind: int,
ordering: int,
x_offset: int,
y_offset: int,
rectangles: Sequence[_Rectangle4IntSequence],
) -> None: ...
def select_input(self: drawable.Window, enable: int) -> None: ...
def init(disp: Display, info: request.QueryExtension) -> None: ...

View File

@@ -0,0 +1,48 @@
from Xlib._typing import Unused
from Xlib.display import Display
from Xlib.protocol import request, rq
from Xlib.xobject import drawable, resource
extname: str
XFixesSelectionNotify: int
XFixesCursorNotify: int
XFixesSetSelectionOwnerNotifyMask: int
XFixesSelectionWindowDestroyNotifyMask: int
XFixesSelectionClientCloseNotifyMask: int
XFixesDisplayCursorNotifyMask: int
XFixesSetSelectionOwnerNotify: int
XFixesSelectionWindowDestroyNotify: int
XFixesSelectionClientCloseNotify: int
XFixesDisplayCursorNotify: int
class QueryVersion(rq.ReplyRequest): ...
def query_version(self: Display | resource.Resource) -> QueryVersion: ...
class HideCursor(rq.Request): ...
def hide_cursor(self: drawable.Window) -> None: ...
class ShowCursor(rq.Request): ...
def show_cursor(self: drawable.Window) -> None: ...
class SelectSelectionInput(rq.Request): ...
def select_selection_input(self: Display | resource.Resource, window: int, selection: int, mask: int) -> SelectSelectionInput: ...
class SelectionNotify(rq.Event): ...
class SetSelectionOwnerNotify(SelectionNotify): ...
class SelectionWindowDestroyNotify(SelectionNotify): ...
class SelectionClientCloseNotify(SelectionNotify): ...
class SelectCursorInput(rq.Request): ...
def select_cursor_input(self: Display | resource.Resource, window: int, mask: int) -> SelectCursorInput: ...
class GetCursorImage(rq.ReplyRequest): ...
def get_cursor_image(self: Display | resource.Resource, window: Unused) -> GetCursorImage: ...
class DisplayCursorNotify(rq.Event): ...
def init(disp: Display, info: request.QueryExtension) -> None: ...

View File

@@ -0,0 +1,35 @@
from Xlib._typing import Unused
from Xlib.display import Display
from Xlib.protocol import rq
from Xlib.xobject import drawable, resource
extname: str
class QueryVersion(rq.ReplyRequest): ...
def query_version(self: Display | resource.Resource) -> QueryVersion: ...
class GetState(rq.ReplyRequest): ...
def get_state(self: drawable.Window) -> GetState: ...
class GetScreenCount(rq.ReplyRequest): ...
def get_screen_count(self: drawable.Window) -> GetScreenCount: ...
class GetScreenSize(rq.ReplyRequest): ...
def get_screen_size(self: drawable.Window, screen_no: int) -> GetScreenSize: ...
class IsActive(rq.ReplyRequest): ...
def is_active(self: Display | resource.Resource) -> int: ...
class QueryScreens(rq.ReplyRequest): ...
def query_screens(self: Display | resource.Resource) -> QueryScreens: ...
class GetInfo(rq.ReplyRequest): ...
def get_info(self: Display | resource.Resource, visual: int) -> None: ...
def init(disp: Display, info: Unused) -> None: ...

View File

@@ -0,0 +1,252 @@
from _typeshed import ReadableBuffer, SliceableBuffer
from collections.abc import Iterable, Sequence
from typing import SupportsFloat, TypeVar
from typing_extensions import SupportsIndex, TypeAlias
from Xlib._typing import Unused
from Xlib.display import Display
from Xlib.protocol import display, request, rq
from Xlib.xobject import drawable, resource
_T = TypeVar("_T")
_Floatable: TypeAlias = SupportsFloat | SupportsIndex | str | ReadableBuffer
extname: str
PropertyDeleted: int
PropertyCreated: int
PropertyModified: int
NotifyNormal: int
NotifyGrab: int
NotifyUngrab: int
NotifyWhileGrabbed: int
NotifyPassiveGrab: int
NotifyPassiveUngrab: int
NotifyAncestor: int
NotifyVirtual: int
NotifyInferior: int
NotifyNonlinear: int
NotifyNonlinearVirtual: int
NotifyPointer: int
NotifyPointerRoot: int
NotifyDetailNone: int
GrabtypeButton: int
GrabtypeKeycode: int
GrabtypeEnter: int
GrabtypeFocusIn: int
GrabtypeTouchBegin: int
AnyModifier: int
AnyButton: int
AnyKeycode: int
AsyncDevice: int
SyncDevice: int
ReplayDevice: int
AsyncPairedDevice: int
AsyncPair: int
SyncPair: int
SlaveSwitch: int
DeviceChange: int
MasterAdded: int
MasterRemoved: int
SlaveAdded: int
SlaveRemoved: int
SlaveAttached: int
SlaveDetached: int
DeviceEnabled: int
DeviceDisabled: int
AddMaster: int
RemoveMaster: int
AttachSlave: int
DetachSlave: int
AttachToMaster: int
Floating: int
ModeRelative: int
ModeAbsolute: int
MasterPointer: int
MasterKeyboard: int
SlavePointer: int
SlaveKeyboard: int
FloatingSlave: int
KeyClass: int
ButtonClass: int
ValuatorClass: int
ScrollClass: int
TouchClass: int
KeyRepeat: int
AllDevices: int
AllMasterDevices: int
DeviceChanged: int
KeyPress: int
KeyRelease: int
ButtonPress: int
ButtonRelease: int
Motion: int
Enter: int
Leave: int
FocusIn: int
FocusOut: int
HierarchyChanged: int
PropertyEvent: int
RawKeyPress: int
RawKeyRelease: int
RawButtonPress: int
RawButtonRelease: int
RawMotion: int
DeviceChangedMask: int
KeyPressMask: int
KeyReleaseMask: int
ButtonPressMask: int
ButtonReleaseMask: int
MotionMask: int
EnterMask: int
LeaveMask: int
FocusInMask: int
FocusOutMask: int
HierarchyChangedMask: int
PropertyEventMask: int
RawKeyPressMask: int
RawKeyReleaseMask: int
RawButtonPressMask: int
RawButtonReleaseMask: int
RawMotionMask: int
GrabModeSync: int
GrabModeAsync: int
GrabModeTouch: int
DEVICEID = rq.Card16
DEVICE = rq.Card16
DEVICEUSE = rq.Card8
PROPERTY_TYPE_FLOAT: str
# ignore[override] because of Liskov substitution principle violations
class FP1616(rq.Int32):
def check_value(self, value: float) -> int: ... # type: ignore[override]
def parse_value(self, value: _Floatable, display: Unused) -> float: ... # type: ignore[override]
class FP3232(rq.ValueField):
structcode: str
def check_value(self, value: _T) -> _T: ... # type: ignore[override]
def parse_value(self, value: tuple[_Floatable, _Floatable], display: Unused) -> float: ... # type: ignore[override]
class XIQueryVersion(rq.ReplyRequest): ...
def query_version(self: Display | resource.Resource) -> XIQueryVersion: ...
class Mask(rq.List):
def __init__(self, name: str) -> None: ...
def pack_value(self, val: int | Iterable[int]) -> tuple[bytes, int, None]: ... # type: ignore[override]
EventMask: rq.Struct
class XISelectEvents(rq.Request): ...
def select_events(self: drawable.Window, event_masks: Sequence[tuple[int, Sequence[int]]]) -> XISelectEvents: ...
AnyInfo: rq.Struct
class ButtonMask:
def __init__(self, value: int, length: int) -> None: ...
def __getitem__(self, key: int) -> int: ...
def __len__(self) -> int: ...
class ButtonState(rq.ValueField):
structcode: None
def __init__(self, name: str) -> None: ...
def parse_binary_value( # type: ignore[override] # length: None will error. See: https://github.com/python-xlib/python-xlib/pull/248
self, data: SliceableBuffer, display: Unused, length: int, fmt: Unused
) -> tuple[ButtonMask, SliceableBuffer]: ...
ButtonInfo: rq.Struct
KeyInfo: rq.Struct
ValuatorInfo: rq.Struct
ScrollInfo: rq.Struct
TouchInfo: rq.Struct
INFO_CLASSES: dict[int, rq.Struct]
class ClassInfoClass:
structcode: None
def parse_binary(self, data: SliceableBuffer, display: display.Display | None) -> tuple[rq.DictWrapper, SliceableBuffer]: ...
ClassInfo: ClassInfoClass
DeviceInfo: rq.Struct
class XIQueryDevice(rq.ReplyRequest): ...
def query_device(self: Display | resource.Resource, deviceid: int) -> XIQueryDevice: ...
class XIListProperties(rq.ReplyRequest): ...
def list_device_properties(self: Display | resource.Resource, deviceid: int) -> XIListProperties: ...
class XIGetProperty(rq.ReplyRequest): ...
def get_device_property(
self: Display | resource.Resource, deviceid: int, property: int, type: int, offset: int, length: int, delete: int = ...
) -> XIGetProperty: ...
class XIChangeProperty(rq.Request): ...
def change_device_property(
self: Display | resource.Resource, deviceid: int, property: int, type: int, mode: int, value: Sequence[float] | Sequence[str]
) -> XIChangeProperty: ...
class XIDeleteProperty(rq.Request): ...
def delete_device_property(self: Display | resource.Resource, deviceid: int, property: int) -> XIDeleteProperty: ...
class XIGrabDevice(rq.ReplyRequest): ...
def grab_device(
self: drawable.Window,
deviceid: int,
time: int,
grab_mode: int,
paired_device_mode: int,
owner_events: bool,
event_mask: Sequence[int],
) -> XIGrabDevice: ...
class XIUngrabDevice(rq.Request): ...
def ungrab_device(self: Display | resource.Resource, deviceid: int, time: int) -> XIUngrabDevice: ...
class XIPassiveGrabDevice(rq.ReplyRequest): ...
def passive_grab_device(
self: drawable.Window,
deviceid: int,
time: int,
detail: int,
grab_type: int,
grab_mode: int,
paired_device_mode: int,
owner_events: bool,
event_mask: Sequence[int],
modifiers: Sequence[int],
) -> XIPassiveGrabDevice: ...
def grab_keycode(
self: drawable.Window,
deviceid: int,
time: int,
keycode: int,
grab_mode: int,
paired_device_mode: int,
owner_events: bool,
event_mask: Sequence[int],
modifiers: Sequence[int],
) -> XIPassiveGrabDevice: ...
class XIPassiveUngrabDevice(rq.Request): ...
def passive_ungrab_device(
self: drawable.Window, deviceid: int, detail: int, grab_type: int, modifiers: Sequence[int]
) -> XIPassiveUngrabDevice: ...
def ungrab_keycode(self: drawable.Window, deviceid: int, keycode: int, modifiers: Sequence[int]) -> XIPassiveUngrabDevice: ...
HierarchyInfo: rq.Struct
HierarchyEventData: rq.Struct
ModifierInfo: rq.Struct
GroupInfo: rq.Struct
DeviceEventData: rq.Struct
DeviceChangedEventData: rq.Struct
PropertyEventData: rq.Struct
def init(disp: Display, info: request.QueryExtension) -> None: ...

View File

@@ -0,0 +1,32 @@
from Xlib._typing import Unused
from Xlib.display import Display
from Xlib.protocol import rq
from Xlib.xobject import resource
extname: str
CurrentCursor: int
class GetVersion(rq.ReplyRequest): ...
def get_version(self: Display | resource.Resource, major: int, minor: int) -> GetVersion: ...
class CompareCursor(rq.ReplyRequest): ...
def compare_cursor(self: Display | resource.Resource, cursor: int) -> int: ...
class FakeInput(rq.Request): ...
def fake_input(
self: Display | resource.Resource,
event_type: int,
detail: int = ...,
time: int = ...,
root: int = ...,
x: int = ...,
y: int = ...,
) -> None: ...
class GrabControl(rq.Request): ...
def grab_control(self: Display | resource.Resource, impervious: bool) -> None: ...
def init(disp: Display, info: Unused) -> None: ...

View File

@@ -0,0 +1,43 @@
from Xlib.keysymdef import (
apl as apl,
arabic as arabic,
cyrillic as cyrillic,
greek as greek,
hebrew as hebrew,
katakana as katakana,
korean as korean,
latin1 as latin1,
latin2 as latin2,
latin3 as latin3,
latin4 as latin4,
miscellany as miscellany,
publishing as publishing,
special as special,
technical as technical,
thai as thai,
xf86 as xf86,
xk3270 as xk3270,
xkb as xkb,
)
__all__ = [
"apl",
"arabic",
"cyrillic",
"greek",
"hebrew",
"katakana",
"korean",
"latin1",
"latin2",
"latin3",
"latin4",
"miscellany",
"publishing",
"special",
"technical",
"thai",
"xf86",
"xk3270",
"xkb",
]

View File

@@ -0,0 +1,19 @@
XK_leftcaret: int
XK_rightcaret: int
XK_downcaret: int
XK_upcaret: int
XK_overbar: int
XK_downtack: int
XK_upshoe: int
XK_downstile: int
XK_underbar: int
XK_jot: int
XK_quad: int
XK_uptack: int
XK_circle: int
XK_upstile: int
XK_downshoe: int
XK_rightshoe: int
XK_leftshoe: int
XK_lefttack: int
XK_righttack: int

View File

@@ -0,0 +1,50 @@
XK_Arabic_comma: int
XK_Arabic_semicolon: int
XK_Arabic_question_mark: int
XK_Arabic_hamza: int
XK_Arabic_maddaonalef: int
XK_Arabic_hamzaonalef: int
XK_Arabic_hamzaonwaw: int
XK_Arabic_hamzaunderalef: int
XK_Arabic_hamzaonyeh: int
XK_Arabic_alef: int
XK_Arabic_beh: int
XK_Arabic_tehmarbuta: int
XK_Arabic_teh: int
XK_Arabic_theh: int
XK_Arabic_jeem: int
XK_Arabic_hah: int
XK_Arabic_khah: int
XK_Arabic_dal: int
XK_Arabic_thal: int
XK_Arabic_ra: int
XK_Arabic_zain: int
XK_Arabic_seen: int
XK_Arabic_sheen: int
XK_Arabic_sad: int
XK_Arabic_dad: int
XK_Arabic_tah: int
XK_Arabic_zah: int
XK_Arabic_ain: int
XK_Arabic_ghain: int
XK_Arabic_tatweel: int
XK_Arabic_feh: int
XK_Arabic_qaf: int
XK_Arabic_kaf: int
XK_Arabic_lam: int
XK_Arabic_meem: int
XK_Arabic_noon: int
XK_Arabic_ha: int
XK_Arabic_heh: int
XK_Arabic_waw: int
XK_Arabic_alefmaksura: int
XK_Arabic_yeh: int
XK_Arabic_fathatan: int
XK_Arabic_dammatan: int
XK_Arabic_kasratan: int
XK_Arabic_fatha: int
XK_Arabic_damma: int
XK_Arabic_kasra: int
XK_Arabic_shadda: int
XK_Arabic_sukun: int
XK_Arabic_switch: int

View File

@@ -0,0 +1,107 @@
XK_Serbian_dje: int
XK_Macedonia_gje: int
XK_Cyrillic_io: int
XK_Ukrainian_ie: int
XK_Ukranian_je: int
XK_Macedonia_dse: int
XK_Ukrainian_i: int
XK_Ukranian_i: int
XK_Ukrainian_yi: int
XK_Ukranian_yi: int
XK_Cyrillic_je: int
XK_Serbian_je: int
XK_Cyrillic_lje: int
XK_Serbian_lje: int
XK_Cyrillic_nje: int
XK_Serbian_nje: int
XK_Serbian_tshe: int
XK_Macedonia_kje: int
XK_Byelorussian_shortu: int
XK_Cyrillic_dzhe: int
XK_Serbian_dze: int
XK_numerosign: int
XK_Serbian_DJE: int
XK_Macedonia_GJE: int
XK_Cyrillic_IO: int
XK_Ukrainian_IE: int
XK_Ukranian_JE: int
XK_Macedonia_DSE: int
XK_Ukrainian_I: int
XK_Ukranian_I: int
XK_Ukrainian_YI: int
XK_Ukranian_YI: int
XK_Cyrillic_JE: int
XK_Serbian_JE: int
XK_Cyrillic_LJE: int
XK_Serbian_LJE: int
XK_Cyrillic_NJE: int
XK_Serbian_NJE: int
XK_Serbian_TSHE: int
XK_Macedonia_KJE: int
XK_Byelorussian_SHORTU: int
XK_Cyrillic_DZHE: int
XK_Serbian_DZE: int
XK_Cyrillic_yu: int
XK_Cyrillic_a: int
XK_Cyrillic_be: int
XK_Cyrillic_tse: int
XK_Cyrillic_de: int
XK_Cyrillic_ie: int
XK_Cyrillic_ef: int
XK_Cyrillic_ghe: int
XK_Cyrillic_ha: int
XK_Cyrillic_i: int
XK_Cyrillic_shorti: int
XK_Cyrillic_ka: int
XK_Cyrillic_el: int
XK_Cyrillic_em: int
XK_Cyrillic_en: int
XK_Cyrillic_o: int
XK_Cyrillic_pe: int
XK_Cyrillic_ya: int
XK_Cyrillic_er: int
XK_Cyrillic_es: int
XK_Cyrillic_te: int
XK_Cyrillic_u: int
XK_Cyrillic_zhe: int
XK_Cyrillic_ve: int
XK_Cyrillic_softsign: int
XK_Cyrillic_yeru: int
XK_Cyrillic_ze: int
XK_Cyrillic_sha: int
XK_Cyrillic_e: int
XK_Cyrillic_shcha: int
XK_Cyrillic_che: int
XK_Cyrillic_hardsign: int
XK_Cyrillic_YU: int
XK_Cyrillic_A: int
XK_Cyrillic_BE: int
XK_Cyrillic_TSE: int
XK_Cyrillic_DE: int
XK_Cyrillic_IE: int
XK_Cyrillic_EF: int
XK_Cyrillic_GHE: int
XK_Cyrillic_HA: int
XK_Cyrillic_I: int
XK_Cyrillic_SHORTI: int
XK_Cyrillic_KA: int
XK_Cyrillic_EL: int
XK_Cyrillic_EM: int
XK_Cyrillic_EN: int
XK_Cyrillic_O: int
XK_Cyrillic_PE: int
XK_Cyrillic_YA: int
XK_Cyrillic_ER: int
XK_Cyrillic_ES: int
XK_Cyrillic_TE: int
XK_Cyrillic_U: int
XK_Cyrillic_ZHE: int
XK_Cyrillic_VE: int
XK_Cyrillic_SOFTSIGN: int
XK_Cyrillic_YERU: int
XK_Cyrillic_ZE: int
XK_Cyrillic_SHA: int
XK_Cyrillic_E: int
XK_Cyrillic_SHCHA: int
XK_Cyrillic_CHE: int
XK_Cyrillic_HARDSIGN: int

View File

@@ -0,0 +1,74 @@
XK_Greek_ALPHAaccent: int
XK_Greek_EPSILONaccent: int
XK_Greek_ETAaccent: int
XK_Greek_IOTAaccent: int
XK_Greek_IOTAdiaeresis: int
XK_Greek_OMICRONaccent: int
XK_Greek_UPSILONaccent: int
XK_Greek_UPSILONdieresis: int
XK_Greek_OMEGAaccent: int
XK_Greek_accentdieresis: int
XK_Greek_horizbar: int
XK_Greek_alphaaccent: int
XK_Greek_epsilonaccent: int
XK_Greek_etaaccent: int
XK_Greek_iotaaccent: int
XK_Greek_iotadieresis: int
XK_Greek_iotaaccentdieresis: int
XK_Greek_omicronaccent: int
XK_Greek_upsilonaccent: int
XK_Greek_upsilondieresis: int
XK_Greek_upsilonaccentdieresis: int
XK_Greek_omegaaccent: int
XK_Greek_ALPHA: int
XK_Greek_BETA: int
XK_Greek_GAMMA: int
XK_Greek_DELTA: int
XK_Greek_EPSILON: int
XK_Greek_ZETA: int
XK_Greek_ETA: int
XK_Greek_THETA: int
XK_Greek_IOTA: int
XK_Greek_KAPPA: int
XK_Greek_LAMDA: int
XK_Greek_LAMBDA: int
XK_Greek_MU: int
XK_Greek_NU: int
XK_Greek_XI: int
XK_Greek_OMICRON: int
XK_Greek_PI: int
XK_Greek_RHO: int
XK_Greek_SIGMA: int
XK_Greek_TAU: int
XK_Greek_UPSILON: int
XK_Greek_PHI: int
XK_Greek_CHI: int
XK_Greek_PSI: int
XK_Greek_OMEGA: int
XK_Greek_alpha: int
XK_Greek_beta: int
XK_Greek_gamma: int
XK_Greek_delta: int
XK_Greek_epsilon: int
XK_Greek_zeta: int
XK_Greek_eta: int
XK_Greek_theta: int
XK_Greek_iota: int
XK_Greek_kappa: int
XK_Greek_lamda: int
XK_Greek_lambda: int
XK_Greek_mu: int
XK_Greek_nu: int
XK_Greek_xi: int
XK_Greek_omicron: int
XK_Greek_pi: int
XK_Greek_rho: int
XK_Greek_sigma: int
XK_Greek_finalsmallsigma: int
XK_Greek_tau: int
XK_Greek_upsilon: int
XK_Greek_phi: int
XK_Greek_chi: int
XK_Greek_psi: int
XK_Greek_omega: int
XK_Greek_switch: int

View File

@@ -0,0 +1,40 @@
XK_hebrew_doublelowline: int
XK_hebrew_aleph: int
XK_hebrew_bet: int
XK_hebrew_beth: int
XK_hebrew_gimel: int
XK_hebrew_gimmel: int
XK_hebrew_dalet: int
XK_hebrew_daleth: int
XK_hebrew_he: int
XK_hebrew_waw: int
XK_hebrew_zain: int
XK_hebrew_zayin: int
XK_hebrew_chet: int
XK_hebrew_het: int
XK_hebrew_tet: int
XK_hebrew_teth: int
XK_hebrew_yod: int
XK_hebrew_finalkaph: int
XK_hebrew_kaph: int
XK_hebrew_lamed: int
XK_hebrew_finalmem: int
XK_hebrew_mem: int
XK_hebrew_finalnun: int
XK_hebrew_nun: int
XK_hebrew_samech: int
XK_hebrew_samekh: int
XK_hebrew_ayin: int
XK_hebrew_finalpe: int
XK_hebrew_pe: int
XK_hebrew_finalzade: int
XK_hebrew_finalzadi: int
XK_hebrew_zade: int
XK_hebrew_zadi: int
XK_hebrew_qoph: int
XK_hebrew_kuf: int
XK_hebrew_resh: int
XK_hebrew_shin: int
XK_hebrew_taw: int
XK_hebrew_taf: int
XK_Hebrew_switch: int

View File

@@ -0,0 +1,70 @@
XK_overline: int
XK_kana_fullstop: int
XK_kana_openingbracket: int
XK_kana_closingbracket: int
XK_kana_comma: int
XK_kana_conjunctive: int
XK_kana_middledot: int
XK_kana_WO: int
XK_kana_a: int
XK_kana_i: int
XK_kana_u: int
XK_kana_e: int
XK_kana_o: int
XK_kana_ya: int
XK_kana_yu: int
XK_kana_yo: int
XK_kana_tsu: int
XK_kana_tu: int
XK_prolongedsound: int
XK_kana_A: int
XK_kana_I: int
XK_kana_U: int
XK_kana_E: int
XK_kana_O: int
XK_kana_KA: int
XK_kana_KI: int
XK_kana_KU: int
XK_kana_KE: int
XK_kana_KO: int
XK_kana_SA: int
XK_kana_SHI: int
XK_kana_SU: int
XK_kana_SE: int
XK_kana_SO: int
XK_kana_TA: int
XK_kana_CHI: int
XK_kana_TI: int
XK_kana_TSU: int
XK_kana_TU: int
XK_kana_TE: int
XK_kana_TO: int
XK_kana_NA: int
XK_kana_NI: int
XK_kana_NU: int
XK_kana_NE: int
XK_kana_NO: int
XK_kana_HA: int
XK_kana_HI: int
XK_kana_FU: int
XK_kana_HU: int
XK_kana_HE: int
XK_kana_HO: int
XK_kana_MA: int
XK_kana_MI: int
XK_kana_MU: int
XK_kana_ME: int
XK_kana_MO: int
XK_kana_YA: int
XK_kana_YU: int
XK_kana_YO: int
XK_kana_RA: int
XK_kana_RI: int
XK_kana_RU: int
XK_kana_RE: int
XK_kana_RO: int
XK_kana_WA: int
XK_kana_N: int
XK_voicedsound: int
XK_semivoicedsound: int
XK_kana_switch: int

View File

@@ -0,0 +1,107 @@
XK_Hangul: int
XK_Hangul_Start: int
XK_Hangul_End: int
XK_Hangul_Hanja: int
XK_Hangul_Jamo: int
XK_Hangul_Romaja: int
XK_Hangul_Codeinput: int
XK_Hangul_Jeonja: int
XK_Hangul_Banja: int
XK_Hangul_PreHanja: int
XK_Hangul_PostHanja: int
XK_Hangul_SingleCandidate: int
XK_Hangul_MultipleCandidate: int
XK_Hangul_PreviousCandidate: int
XK_Hangul_Special: int
XK_Hangul_switch: int
XK_Hangul_Kiyeog: int
XK_Hangul_SsangKiyeog: int
XK_Hangul_KiyeogSios: int
XK_Hangul_Nieun: int
XK_Hangul_NieunJieuj: int
XK_Hangul_NieunHieuh: int
XK_Hangul_Dikeud: int
XK_Hangul_SsangDikeud: int
XK_Hangul_Rieul: int
XK_Hangul_RieulKiyeog: int
XK_Hangul_RieulMieum: int
XK_Hangul_RieulPieub: int
XK_Hangul_RieulSios: int
XK_Hangul_RieulTieut: int
XK_Hangul_RieulPhieuf: int
XK_Hangul_RieulHieuh: int
XK_Hangul_Mieum: int
XK_Hangul_Pieub: int
XK_Hangul_SsangPieub: int
XK_Hangul_PieubSios: int
XK_Hangul_Sios: int
XK_Hangul_SsangSios: int
XK_Hangul_Ieung: int
XK_Hangul_Jieuj: int
XK_Hangul_SsangJieuj: int
XK_Hangul_Cieuc: int
XK_Hangul_Khieuq: int
XK_Hangul_Tieut: int
XK_Hangul_Phieuf: int
XK_Hangul_Hieuh: int
XK_Hangul_A: int
XK_Hangul_AE: int
XK_Hangul_YA: int
XK_Hangul_YAE: int
XK_Hangul_EO: int
XK_Hangul_E: int
XK_Hangul_YEO: int
XK_Hangul_YE: int
XK_Hangul_O: int
XK_Hangul_WA: int
XK_Hangul_WAE: int
XK_Hangul_OE: int
XK_Hangul_YO: int
XK_Hangul_U: int
XK_Hangul_WEO: int
XK_Hangul_WE: int
XK_Hangul_WI: int
XK_Hangul_YU: int
XK_Hangul_EU: int
XK_Hangul_YI: int
XK_Hangul_I: int
XK_Hangul_J_Kiyeog: int
XK_Hangul_J_SsangKiyeog: int
XK_Hangul_J_KiyeogSios: int
XK_Hangul_J_Nieun: int
XK_Hangul_J_NieunJieuj: int
XK_Hangul_J_NieunHieuh: int
XK_Hangul_J_Dikeud: int
XK_Hangul_J_Rieul: int
XK_Hangul_J_RieulKiyeog: int
XK_Hangul_J_RieulMieum: int
XK_Hangul_J_RieulPieub: int
XK_Hangul_J_RieulSios: int
XK_Hangul_J_RieulTieut: int
XK_Hangul_J_RieulPhieuf: int
XK_Hangul_J_RieulHieuh: int
XK_Hangul_J_Mieum: int
XK_Hangul_J_Pieub: int
XK_Hangul_J_PieubSios: int
XK_Hangul_J_Sios: int
XK_Hangul_J_SsangSios: int
XK_Hangul_J_Ieung: int
XK_Hangul_J_Jieuj: int
XK_Hangul_J_Cieuc: int
XK_Hangul_J_Khieuq: int
XK_Hangul_J_Tieut: int
XK_Hangul_J_Phieuf: int
XK_Hangul_J_Hieuh: int
XK_Hangul_RieulYeorinHieuh: int
XK_Hangul_SunkyeongeumMieum: int
XK_Hangul_SunkyeongeumPieub: int
XK_Hangul_PanSios: int
XK_Hangul_KkogjiDalrinIeung: int
XK_Hangul_SunkyeongeumPhieuf: int
XK_Hangul_YeorinHieuh: int
XK_Hangul_AraeA: int
XK_Hangul_AraeAE: int
XK_Hangul_J_PanSios: int
XK_Hangul_J_KkogjiDalrinIeung: int
XK_Hangul_J_YeorinHieuh: int
XK_Korean_Won: int

View File

@@ -0,0 +1,195 @@
XK_space: int
XK_exclam: int
XK_quotedbl: int
XK_numbersign: int
XK_dollar: int
XK_percent: int
XK_ampersand: int
XK_apostrophe: int
XK_quoteright: int
XK_parenleft: int
XK_parenright: int
XK_asterisk: int
XK_plus: int
XK_comma: int
XK_minus: int
XK_period: int
XK_slash: int
XK_0: int
XK_1: int
XK_2: int
XK_3: int
XK_4: int
XK_5: int
XK_6: int
XK_7: int
XK_8: int
XK_9: int
XK_colon: int
XK_semicolon: int
XK_less: int
XK_equal: int
XK_greater: int
XK_question: int
XK_at: int
XK_A: int
XK_B: int
XK_C: int
XK_D: int
XK_E: int
XK_F: int
XK_G: int
XK_H: int
XK_I: int
XK_J: int
XK_K: int
XK_L: int
XK_M: int
XK_N: int
XK_O: int
XK_P: int
XK_Q: int
XK_R: int
XK_S: int
XK_T: int
XK_U: int
XK_V: int
XK_W: int
XK_X: int
XK_Y: int
XK_Z: int
XK_bracketleft: int
XK_backslash: int
XK_bracketright: int
XK_asciicircum: int
XK_underscore: int
XK_grave: int
XK_quoteleft: int
XK_a: int
XK_b: int
XK_c: int
XK_d: int
XK_e: int
XK_f: int
XK_g: int
XK_h: int
XK_i: int
XK_j: int
XK_k: int
XK_l: int
XK_m: int
XK_n: int
XK_o: int
XK_p: int
XK_q: int
XK_r: int
XK_s: int
XK_t: int
XK_u: int
XK_v: int
XK_w: int
XK_x: int
XK_y: int
XK_z: int
XK_braceleft: int
XK_bar: int
XK_braceright: int
XK_asciitilde: int
XK_nobreakspace: int
XK_exclamdown: int
XK_cent: int
XK_sterling: int
XK_currency: int
XK_yen: int
XK_brokenbar: int
XK_section: int
XK_diaeresis: int
XK_copyright: int
XK_ordfeminine: int
XK_guillemotleft: int
XK_notsign: int
XK_hyphen: int
XK_registered: int
XK_macron: int
XK_degree: int
XK_plusminus: int
XK_twosuperior: int
XK_threesuperior: int
XK_acute: int
XK_mu: int
XK_paragraph: int
XK_periodcentered: int
XK_cedilla: int
XK_onesuperior: int
XK_masculine: int
XK_guillemotright: int
XK_onequarter: int
XK_onehalf: int
XK_threequarters: int
XK_questiondown: int
XK_Agrave: int
XK_Aacute: int
XK_Acircumflex: int
XK_Atilde: int
XK_Adiaeresis: int
XK_Aring: int
XK_AE: int
XK_Ccedilla: int
XK_Egrave: int
XK_Eacute: int
XK_Ecircumflex: int
XK_Ediaeresis: int
XK_Igrave: int
XK_Iacute: int
XK_Icircumflex: int
XK_Idiaeresis: int
XK_ETH: int
XK_Eth: int
XK_Ntilde: int
XK_Ograve: int
XK_Oacute: int
XK_Ocircumflex: int
XK_Otilde: int
XK_Odiaeresis: int
XK_multiply: int
XK_Ooblique: int
XK_Ugrave: int
XK_Uacute: int
XK_Ucircumflex: int
XK_Udiaeresis: int
XK_Yacute: int
XK_THORN: int
XK_Thorn: int
XK_ssharp: int
XK_agrave: int
XK_aacute: int
XK_acircumflex: int
XK_atilde: int
XK_adiaeresis: int
XK_aring: int
XK_ae: int
XK_ccedilla: int
XK_egrave: int
XK_eacute: int
XK_ecircumflex: int
XK_ediaeresis: int
XK_igrave: int
XK_iacute: int
XK_icircumflex: int
XK_idiaeresis: int
XK_eth: int
XK_ntilde: int
XK_ograve: int
XK_oacute: int
XK_ocircumflex: int
XK_otilde: int
XK_odiaeresis: int
XK_division: int
XK_oslash: int
XK_ugrave: int
XK_uacute: int
XK_ucircumflex: int
XK_udiaeresis: int
XK_yacute: int
XK_thorn: int
XK_ydiaeresis: int

View File

@@ -0,0 +1,57 @@
XK_Aogonek: int
XK_breve: int
XK_Lstroke: int
XK_Lcaron: int
XK_Sacute: int
XK_Scaron: int
XK_Scedilla: int
XK_Tcaron: int
XK_Zacute: int
XK_Zcaron: int
XK_Zabovedot: int
XK_aogonek: int
XK_ogonek: int
XK_lstroke: int
XK_lcaron: int
XK_sacute: int
XK_caron: int
XK_scaron: int
XK_scedilla: int
XK_tcaron: int
XK_zacute: int
XK_doubleacute: int
XK_zcaron: int
XK_zabovedot: int
XK_Racute: int
XK_Abreve: int
XK_Lacute: int
XK_Cacute: int
XK_Ccaron: int
XK_Eogonek: int
XK_Ecaron: int
XK_Dcaron: int
XK_Dstroke: int
XK_Nacute: int
XK_Ncaron: int
XK_Odoubleacute: int
XK_Rcaron: int
XK_Uring: int
XK_Udoubleacute: int
XK_Tcedilla: int
XK_racute: int
XK_abreve: int
XK_lacute: int
XK_cacute: int
XK_ccaron: int
XK_eogonek: int
XK_ecaron: int
XK_dcaron: int
XK_dstroke: int
XK_nacute: int
XK_ncaron: int
XK_odoubleacute: int
XK_udoubleacute: int
XK_rcaron: int
XK_uring: int
XK_tcedilla: int
XK_abovedot: int

View File

@@ -0,0 +1,22 @@
XK_Hstroke: int
XK_Hcircumflex: int
XK_Iabovedot: int
XK_Gbreve: int
XK_Jcircumflex: int
XK_hstroke: int
XK_hcircumflex: int
XK_idotless: int
XK_gbreve: int
XK_jcircumflex: int
XK_Cabovedot: int
XK_Ccircumflex: int
XK_Gabovedot: int
XK_Gcircumflex: int
XK_Ubreve: int
XK_Scircumflex: int
XK_cabovedot: int
XK_ccircumflex: int
XK_gabovedot: int
XK_gcircumflex: int
XK_ubreve: int
XK_scircumflex: int

View File

@@ -0,0 +1,36 @@
XK_kra: int
XK_kappa: int
XK_Rcedilla: int
XK_Itilde: int
XK_Lcedilla: int
XK_Emacron: int
XK_Gcedilla: int
XK_Tslash: int
XK_rcedilla: int
XK_itilde: int
XK_lcedilla: int
XK_emacron: int
XK_gcedilla: int
XK_tslash: int
XK_ENG: int
XK_eng: int
XK_Amacron: int
XK_Iogonek: int
XK_Eabovedot: int
XK_Imacron: int
XK_Ncedilla: int
XK_Omacron: int
XK_Kcedilla: int
XK_Uogonek: int
XK_Utilde: int
XK_Umacron: int
XK_amacron: int
XK_iogonek: int
XK_eabovedot: int
XK_imacron: int
XK_ncedilla: int
XK_omacron: int
XK_kcedilla: int
XK_uogonek: int
XK_utilde: int
XK_umacron: int

View File

@@ -0,0 +1,169 @@
XK_BackSpace: int
XK_Tab: int
XK_Linefeed: int
XK_Clear: int
XK_Return: int
XK_Pause: int
XK_Scroll_Lock: int
XK_Sys_Req: int
XK_Escape: int
XK_Delete: int
XK_Multi_key: int
XK_SingleCandidate: int
XK_MultipleCandidate: int
XK_PreviousCandidate: int
XK_Kanji: int
XK_Muhenkan: int
XK_Henkan_Mode: int
XK_Henkan: int
XK_Romaji: int
XK_Hiragana: int
XK_Katakana: int
XK_Hiragana_Katakana: int
XK_Zenkaku: int
XK_Hankaku: int
XK_Zenkaku_Hankaku: int
XK_Touroku: int
XK_Massyo: int
XK_Kana_Lock: int
XK_Kana_Shift: int
XK_Eisu_Shift: int
XK_Eisu_toggle: int
XK_Zen_Koho: int
XK_Mae_Koho: int
XK_Home: int
XK_Left: int
XK_Up: int
XK_Right: int
XK_Down: int
XK_Prior: int
XK_Page_Up: int
XK_Next: int
XK_Page_Down: int
XK_End: int
XK_Begin: int
XK_Select: int
XK_Print: int
XK_Execute: int
XK_Insert: int
XK_Undo: int
XK_Redo: int
XK_Menu: int
XK_Find: int
XK_Cancel: int
XK_Help: int
XK_Break: int
XK_Mode_switch: int
XK_script_switch: int
XK_Num_Lock: int
XK_KP_Space: int
XK_KP_Tab: int
XK_KP_Enter: int
XK_KP_F1: int
XK_KP_F2: int
XK_KP_F3: int
XK_KP_F4: int
XK_KP_Home: int
XK_KP_Left: int
XK_KP_Up: int
XK_KP_Right: int
XK_KP_Down: int
XK_KP_Prior: int
XK_KP_Page_Up: int
XK_KP_Next: int
XK_KP_Page_Down: int
XK_KP_End: int
XK_KP_Begin: int
XK_KP_Insert: int
XK_KP_Delete: int
XK_KP_Equal: int
XK_KP_Multiply: int
XK_KP_Add: int
XK_KP_Separator: int
XK_KP_Subtract: int
XK_KP_Decimal: int
XK_KP_Divide: int
XK_KP_0: int
XK_KP_1: int
XK_KP_2: int
XK_KP_3: int
XK_KP_4: int
XK_KP_5: int
XK_KP_6: int
XK_KP_7: int
XK_KP_8: int
XK_KP_9: int
XK_F1: int
XK_F2: int
XK_F3: int
XK_F4: int
XK_F5: int
XK_F6: int
XK_F7: int
XK_F8: int
XK_F9: int
XK_F10: int
XK_F11: int
XK_L1: int
XK_F12: int
XK_L2: int
XK_F13: int
XK_L3: int
XK_F14: int
XK_L4: int
XK_F15: int
XK_L5: int
XK_F16: int
XK_L6: int
XK_F17: int
XK_L7: int
XK_F18: int
XK_L8: int
XK_F19: int
XK_L9: int
XK_F20: int
XK_L10: int
XK_F21: int
XK_R1: int
XK_F22: int
XK_R2: int
XK_F23: int
XK_R3: int
XK_F24: int
XK_R4: int
XK_F25: int
XK_R5: int
XK_F26: int
XK_R6: int
XK_F27: int
XK_R7: int
XK_F28: int
XK_R8: int
XK_F29: int
XK_R9: int
XK_F30: int
XK_R10: int
XK_F31: int
XK_R11: int
XK_F32: int
XK_R12: int
XK_F33: int
XK_R13: int
XK_F34: int
XK_R14: int
XK_F35: int
XK_R15: int
XK_Shift_L: int
XK_Shift_R: int
XK_Control_L: int
XK_Control_R: int
XK_Caps_Lock: int
XK_Shift_Lock: int
XK_Meta_L: int
XK_Meta_R: int
XK_Alt_L: int
XK_Alt_R: int
XK_Super_L: int
XK_Super_R: int
XK_Hyper_L: int
XK_Hyper_R: int

View File

@@ -0,0 +1,83 @@
XK_emspace: int
XK_enspace: int
XK_em3space: int
XK_em4space: int
XK_digitspace: int
XK_punctspace: int
XK_thinspace: int
XK_hairspace: int
XK_emdash: int
XK_endash: int
XK_signifblank: int
XK_ellipsis: int
XK_doubbaselinedot: int
XK_onethird: int
XK_twothirds: int
XK_onefifth: int
XK_twofifths: int
XK_threefifths: int
XK_fourfifths: int
XK_onesixth: int
XK_fivesixths: int
XK_careof: int
XK_figdash: int
XK_leftanglebracket: int
XK_decimalpoint: int
XK_rightanglebracket: int
XK_marker: int
XK_oneeighth: int
XK_threeeighths: int
XK_fiveeighths: int
XK_seveneighths: int
XK_trademark: int
XK_signaturemark: int
XK_trademarkincircle: int
XK_leftopentriangle: int
XK_rightopentriangle: int
XK_emopencircle: int
XK_emopenrectangle: int
XK_leftsinglequotemark: int
XK_rightsinglequotemark: int
XK_leftdoublequotemark: int
XK_rightdoublequotemark: int
XK_prescription: int
XK_minutes: int
XK_seconds: int
XK_latincross: int
XK_hexagram: int
XK_filledrectbullet: int
XK_filledlefttribullet: int
XK_filledrighttribullet: int
XK_emfilledcircle: int
XK_emfilledrect: int
XK_enopencircbullet: int
XK_enopensquarebullet: int
XK_openrectbullet: int
XK_opentribulletup: int
XK_opentribulletdown: int
XK_openstar: int
XK_enfilledcircbullet: int
XK_enfilledsqbullet: int
XK_filledtribulletup: int
XK_filledtribulletdown: int
XK_leftpointer: int
XK_rightpointer: int
XK_club: int
XK_diamond: int
XK_heart: int
XK_maltesecross: int
XK_dagger: int
XK_doubledagger: int
XK_checkmark: int
XK_ballotcross: int
XK_musicalsharp: int
XK_musicalflat: int
XK_malesymbol: int
XK_femalesymbol: int
XK_telephone: int
XK_telephonerecorder: int
XK_phonographcopyright: int
XK_caret: int
XK_singlelowquotemark: int
XK_doublelowquotemark: int
XK_cursor: int

View File

@@ -0,0 +1,24 @@
XK_blank: int
XK_soliddiamond: int
XK_checkerboard: int
XK_ht: int
XK_ff: int
XK_cr: int
XK_lf: int
XK_nl: int
XK_vt: int
XK_lowrightcorner: int
XK_uprightcorner: int
XK_upleftcorner: int
XK_lowleftcorner: int
XK_crossinglines: int
XK_horizlinescan1: int
XK_horizlinescan3: int
XK_horizlinescan5: int
XK_horizlinescan7: int
XK_horizlinescan9: int
XK_leftt: int
XK_rightt: int
XK_bott: int
XK_topt: int
XK_vertbar: int

View File

@@ -0,0 +1,49 @@
XK_leftradical: int
XK_topleftradical: int
XK_horizconnector: int
XK_topintegral: int
XK_botintegral: int
XK_vertconnector: int
XK_topleftsqbracket: int
XK_botleftsqbracket: int
XK_toprightsqbracket: int
XK_botrightsqbracket: int
XK_topleftparens: int
XK_botleftparens: int
XK_toprightparens: int
XK_botrightparens: int
XK_leftmiddlecurlybrace: int
XK_rightmiddlecurlybrace: int
XK_topleftsummation: int
XK_botleftsummation: int
XK_topvertsummationconnector: int
XK_botvertsummationconnector: int
XK_toprightsummation: int
XK_botrightsummation: int
XK_rightmiddlesummation: int
XK_lessthanequal: int
XK_notequal: int
XK_greaterthanequal: int
XK_integral: int
XK_therefore: int
XK_variation: int
XK_infinity: int
XK_nabla: int
XK_approximate: int
XK_similarequal: int
XK_ifonlyif: int
XK_implies: int
XK_identical: int
XK_radical: int
XK_includedin: int
XK_includes: int
XK_intersection: int
XK_union: int
XK_logicaland: int
XK_logicalor: int
XK_partialderivative: int
XK_function: int
XK_leftarrow: int
XK_uparrow: int
XK_rightarrow: int
XK_downarrow: int

View File

@@ -0,0 +1,84 @@
XK_Thai_kokai: int
XK_Thai_khokhai: int
XK_Thai_khokhuat: int
XK_Thai_khokhwai: int
XK_Thai_khokhon: int
XK_Thai_khorakhang: int
XK_Thai_ngongu: int
XK_Thai_chochan: int
XK_Thai_choching: int
XK_Thai_chochang: int
XK_Thai_soso: int
XK_Thai_chochoe: int
XK_Thai_yoying: int
XK_Thai_dochada: int
XK_Thai_topatak: int
XK_Thai_thothan: int
XK_Thai_thonangmontho: int
XK_Thai_thophuthao: int
XK_Thai_nonen: int
XK_Thai_dodek: int
XK_Thai_totao: int
XK_Thai_thothung: int
XK_Thai_thothahan: int
XK_Thai_thothong: int
XK_Thai_nonu: int
XK_Thai_bobaimai: int
XK_Thai_popla: int
XK_Thai_phophung: int
XK_Thai_fofa: int
XK_Thai_phophan: int
XK_Thai_fofan: int
XK_Thai_phosamphao: int
XK_Thai_moma: int
XK_Thai_yoyak: int
XK_Thai_rorua: int
XK_Thai_ru: int
XK_Thai_loling: int
XK_Thai_lu: int
XK_Thai_wowaen: int
XK_Thai_sosala: int
XK_Thai_sorusi: int
XK_Thai_sosua: int
XK_Thai_hohip: int
XK_Thai_lochula: int
XK_Thai_oang: int
XK_Thai_honokhuk: int
XK_Thai_paiyannoi: int
XK_Thai_saraa: int
XK_Thai_maihanakat: int
XK_Thai_saraaa: int
XK_Thai_saraam: int
XK_Thai_sarai: int
XK_Thai_saraii: int
XK_Thai_saraue: int
XK_Thai_sarauee: int
XK_Thai_sarau: int
XK_Thai_sarauu: int
XK_Thai_phinthu: int
XK_Thai_maihanakat_maitho: int
XK_Thai_baht: int
XK_Thai_sarae: int
XK_Thai_saraae: int
XK_Thai_sarao: int
XK_Thai_saraaimaimuan: int
XK_Thai_saraaimaimalai: int
XK_Thai_lakkhangyao: int
XK_Thai_maiyamok: int
XK_Thai_maitaikhu: int
XK_Thai_maiek: int
XK_Thai_maitho: int
XK_Thai_maitri: int
XK_Thai_maichattawa: int
XK_Thai_thanthakhat: int
XK_Thai_nikhahit: int
XK_Thai_leksun: int
XK_Thai_leknung: int
XK_Thai_leksong: int
XK_Thai_leksam: int
XK_Thai_leksi: int
XK_Thai_lekha: int
XK_Thai_lekhok: int
XK_Thai_lekchet: int
XK_Thai_lekpaet: int
XK_Thai_lekkao: int

View File

@@ -0,0 +1,184 @@
XK_XF86_ModeLock: int
XK_XF86_MonBrightnessUp: int
XK_XF86_MonBrightnessDown: int
XK_XF86_KbdLightOnOff: int
XK_XF86_KbdBrightnessUp: int
XK_XF86_KbdBrightnessDown: int
XK_XF86_MonBrightnessCycle: int
XK_XF86_Standby: int
XK_XF86_AudioLowerVolume: int
XK_XF86_AudioMute: int
XK_XF86_AudioRaiseVolume: int
XK_XF86_AudioPlay: int
XK_XF86_AudioStop: int
XK_XF86_AudioPrev: int
XK_XF86_AudioNext: int
XK_XF86_HomePage: int
XK_XF86_Mail: int
XK_XF86_Start: int
XK_XF86_Search: int
XK_XF86_AudioRecord: int
XK_XF86_Calculator: int
XK_XF86_Memo: int
XK_XF86_ToDoList: int
XK_XF86_Calendar: int
XK_XF86_PowerDown: int
XK_XF86_ContrastAdjust: int
XK_XF86_RockerUp: int
XK_XF86_RockerDown: int
XK_XF86_RockerEnter: int
XK_XF86_Back: int
XK_XF86_Forward: int
XK_XF86_Stop: int
XK_XF86_Refresh: int
XK_XF86_PowerOff: int
XK_XF86_WakeUp: int
XK_XF86_Eject: int
XK_XF86_ScreenSaver: int
XK_XF86_WWW: int
XK_XF86_Sleep: int
XK_XF86_Favorites: int
XK_XF86_AudioPause: int
XK_XF86_AudioMedia: int
XK_XF86_MyComputer: int
XK_XF86_VendorHome: int
XK_XF86_LightBulb: int
XK_XF86_Shop: int
XK_XF86_History: int
XK_XF86_OpenURL: int
XK_XF86_AddFavorite: int
XK_XF86_HotLinks: int
XK_XF86_BrightnessAdjust: int
XK_XF86_Finance: int
XK_XF86_Community: int
XK_XF86_AudioRewind: int
XK_XF86_XF86BackForward: int
XK_XF86_Launch0: int
XK_XF86_Launch1: int
XK_XF86_Launch2: int
XK_XF86_Launch3: int
XK_XF86_Launch4: int
XK_XF86_Launch5: int
XK_XF86_Launch6: int
XK_XF86_Launch7: int
XK_XF86_Launch8: int
XK_XF86_Launch9: int
XK_XF86_LaunchA: int
XK_XF86_LaunchB: int
XK_XF86_LaunchC: int
XK_XF86_LaunchD: int
XK_XF86_LaunchE: int
XK_XF86_LaunchF: int
XK_XF86_ApplicationLeft: int
XK_XF86_ApplicationRight: int
XK_XF86_Book: int
XK_XF86_CD: int
XK_XF86_Calculater: int
XK_XF86_Clear: int
XK_XF86_Close: int
XK_XF86_Copy: int
XK_XF86_Cut: int
XK_XF86_Display: int
XK_XF86_DOS: int
XK_XF86_Documents: int
XK_XF86_Excel: int
XK_XF86_Explorer: int
XK_XF86_Game: int
XK_XF86_Go: int
XK_XF86_iTouch: int
XK_XF86_LogOff: int
XK_XF86_Market: int
XK_XF86_Meeting: int
XK_XF86_MenuKB: int
XK_XF86_MenuPB: int
XK_XF86_MySites: int
XK_XF86_New: int
XK_XF86_News: int
XK_XF86_OfficeHome: int
XK_XF86_Open: int
XK_XF86_Option: int
XK_XF86_Paste: int
XK_XF86_Phone: int
XK_XF86_Q: int
XK_XF86_Reply: int
XK_XF86_Reload: int
XK_XF86_RotateWindows: int
XK_XF86_RotationPB: int
XK_XF86_RotationKB: int
XK_XF86_Save: int
XK_XF86_ScrollUp: int
XK_XF86_ScrollDown: int
XK_XF86_ScrollClick: int
XK_XF86_Send: int
XK_XF86_Spell: int
XK_XF86_SplitScreen: int
XK_XF86_Support: int
XK_XF86_TaskPane: int
XK_XF86_Terminal: int
XK_XF86_Tools: int
XK_XF86_Travel: int
XK_XF86_UserPB: int
XK_XF86_User1KB: int
XK_XF86_User2KB: int
XK_XF86_Video: int
XK_XF86_WheelButton: int
XK_XF86_Word: int
XK_XF86_Xfer: int
XK_XF86_ZoomIn: int
XK_XF86_ZoomOut: int
XK_XF86_Away: int
XK_XF86_Messenger: int
XK_XF86_WebCam: int
XK_XF86_MailForward: int
XK_XF86_Pictures: int
XK_XF86_Music: int
XK_XF86_Battery: int
XK_XF86_Bluetooth: int
XK_XF86_WLAN: int
XK_XF86_UWB: int
XK_XF86_AudioForward: int
XK_XF86_AudioRepeat: int
XK_XF86_AudioRandomPlay: int
XK_XF86_Subtitle: int
XK_XF86_AudioCycleTrack: int
XK_XF86_CycleAngle: int
XK_XF86_FrameBack: int
XK_XF86_FrameForward: int
XK_XF86_Time: int
XK_XF86_Select: int
XK_XF86_View: int
XK_XF86_TopMenu: int
XK_XF86_Red: int
XK_XF86_Green: int
XK_XF86_Yellow: int
XK_XF86_Blue: int
XK_XF86_Suspend: int
XK_XF86_Hibernate: int
XK_XF86_TouchpadToggle: int
XK_XF86_TouchpadOn: int
XK_XF86_TouchpadOff: int
XK_XF86_AudioMicMute: int
XK_XF86_Keyboard: int
XK_XF86_WWAN: int
XK_XF86_RFKill: int
XK_XF86_AudioPreset: int
XK_XF86_RotationLockToggle: int
XK_XF86_FullScreen: int
XK_XF86_Switch_VT_1: int
XK_XF86_Switch_VT_2: int
XK_XF86_Switch_VT_3: int
XK_XF86_Switch_VT_4: int
XK_XF86_Switch_VT_5: int
XK_XF86_Switch_VT_6: int
XK_XF86_Switch_VT_7: int
XK_XF86_Switch_VT_8: int
XK_XF86_Switch_VT_9: int
XK_XF86_Switch_VT_10: int
XK_XF86_Switch_VT_11: int
XK_XF86_Switch_VT_12: int
XK_XF86_Ungrab: int
XK_XF86_ClearGrab: int
XK_XF86_Next_VMode: int
XK_XF86_Prev_VMode: int
XK_XF86_LogWindowTree: int
XK_XF86_LogGrabInfo: int

View File

@@ -0,0 +1,30 @@
XK_3270_Duplicate: int
XK_3270_FieldMark: int
XK_3270_Right2: int
XK_3270_Left2: int
XK_3270_BackTab: int
XK_3270_EraseEOF: int
XK_3270_EraseInput: int
XK_3270_Reset: int
XK_3270_Quit: int
XK_3270_PA1: int
XK_3270_PA2: int
XK_3270_PA3: int
XK_3270_Test: int
XK_3270_Attn: int
XK_3270_CursorBlink: int
XK_3270_AltCursor: int
XK_3270_KeyClick: int
XK_3270_Jump: int
XK_3270_Ident: int
XK_3270_Rule: int
XK_3270_Copy: int
XK_3270_Play: int
XK_3270_Setup: int
XK_3270_Record: int
XK_3270_ChangeScreen: int
XK_3270_DeleteWord: int
XK_3270_ExSelect: int
XK_3270_CursorSelect: int
XK_3270_PrintScreen: int
XK_3270_Enter: int

View File

@@ -0,0 +1,100 @@
XK_ISO_Lock: int
XK_ISO_Level2_Latch: int
XK_ISO_Level3_Shift: int
XK_ISO_Level3_Latch: int
XK_ISO_Level3_Lock: int
XK_ISO_Group_Shift: int
XK_ISO_Group_Latch: int
XK_ISO_Group_Lock: int
XK_ISO_Next_Group: int
XK_ISO_Next_Group_Lock: int
XK_ISO_Prev_Group: int
XK_ISO_Prev_Group_Lock: int
XK_ISO_First_Group: int
XK_ISO_First_Group_Lock: int
XK_ISO_Last_Group: int
XK_ISO_Last_Group_Lock: int
XK_ISO_Left_Tab: int
XK_ISO_Move_Line_Up: int
XK_ISO_Move_Line_Down: int
XK_ISO_Partial_Line_Up: int
XK_ISO_Partial_Line_Down: int
XK_ISO_Partial_Space_Left: int
XK_ISO_Partial_Space_Right: int
XK_ISO_Set_Margin_Left: int
XK_ISO_Set_Margin_Right: int
XK_ISO_Release_Margin_Left: int
XK_ISO_Release_Margin_Right: int
XK_ISO_Release_Both_Margins: int
XK_ISO_Fast_Cursor_Left: int
XK_ISO_Fast_Cursor_Right: int
XK_ISO_Fast_Cursor_Up: int
XK_ISO_Fast_Cursor_Down: int
XK_ISO_Continuous_Underline: int
XK_ISO_Discontinuous_Underline: int
XK_ISO_Emphasize: int
XK_ISO_Center_Object: int
XK_ISO_Enter: int
XK_dead_grave: int
XK_dead_acute: int
XK_dead_circumflex: int
XK_dead_tilde: int
XK_dead_macron: int
XK_dead_breve: int
XK_dead_abovedot: int
XK_dead_diaeresis: int
XK_dead_abovering: int
XK_dead_doubleacute: int
XK_dead_caron: int
XK_dead_cedilla: int
XK_dead_ogonek: int
XK_dead_iota: int
XK_dead_voiced_sound: int
XK_dead_semivoiced_sound: int
XK_dead_belowdot: int
XK_First_Virtual_Screen: int
XK_Prev_Virtual_Screen: int
XK_Next_Virtual_Screen: int
XK_Last_Virtual_Screen: int
XK_Terminate_Server: int
XK_AccessX_Enable: int
XK_AccessX_Feedback_Enable: int
XK_RepeatKeys_Enable: int
XK_SlowKeys_Enable: int
XK_BounceKeys_Enable: int
XK_StickyKeys_Enable: int
XK_MouseKeys_Enable: int
XK_MouseKeys_Accel_Enable: int
XK_Overlay1_Enable: int
XK_Overlay2_Enable: int
XK_AudibleBell_Enable: int
XK_Pointer_Left: int
XK_Pointer_Right: int
XK_Pointer_Up: int
XK_Pointer_Down: int
XK_Pointer_UpLeft: int
XK_Pointer_UpRight: int
XK_Pointer_DownLeft: int
XK_Pointer_DownRight: int
XK_Pointer_Button_Dflt: int
XK_Pointer_Button1: int
XK_Pointer_Button2: int
XK_Pointer_Button3: int
XK_Pointer_Button4: int
XK_Pointer_Button5: int
XK_Pointer_DblClick_Dflt: int
XK_Pointer_DblClick1: int
XK_Pointer_DblClick2: int
XK_Pointer_DblClick3: int
XK_Pointer_DblClick4: int
XK_Pointer_DblClick5: int
XK_Pointer_Drag_Dflt: int
XK_Pointer_Drag1: int
XK_Pointer_Drag2: int
XK_Pointer_Drag3: int
XK_Pointer_Drag4: int
XK_Pointer_Drag5: int
XK_Pointer_EnableKeys: int
XK_Pointer_Accelerate: int
XK_Pointer_DfltBtnNext: int
XK_Pointer_DfltBtnPrev: int

View File

@@ -0,0 +1,3 @@
from Xlib.protocol import display as display, event as event, request as request, rq as rq, structs as structs
__all__ = ["display", "event", "request", "rq", "structs"]

View File

@@ -0,0 +1,120 @@
from _typeshed import _BufferWithLen
from socket import socket
from typing import TypeVar, overload
from typing_extensions import Literal
from Xlib import error
from Xlib._typing import ErrorHandler
from Xlib.display import _ResourceBaseClass, _ResourceBaseClassesType
from Xlib.protocol import rq
from Xlib.support import lock
from Xlib.xobject import colormap, cursor, drawable, fontable, resource
_T = TypeVar("_T")
class bytesview:
view: memoryview
@overload
def __init__(self, data: bytes | bytesview, offset: int, size: int) -> None: ...
@overload
def __init__(self, data: _BufferWithLen, offset: int = ..., size: int | None = ...) -> None: ...
@overload
def __getitem__(self, key: slice) -> bytes: ...
@overload
def __getitem__(self, key: int) -> int: ...
def __len__(self) -> int: ...
class Display:
extension_major_opcodes: dict[str, int]
error_classes: dict[int, type[error.XError]]
event_classes: dict[int, type[rq.Event] | dict[int, type[rq.Event]]]
resource_classes: _ResourceBaseClassesType | None
display_name: str
default_screen: int
socket: socket
socket_error_lock: lock._DummyLock
socket_error: Exception | None
event_queue_read_lock: lock._DummyLock
event_queue_write_lock: lock._DummyLock
event_queue: list[rq.Event]
request_queue_lock: lock._DummyLock
request_serial: int
request_queue: list[tuple[rq.Request | rq.ReplyRequest | ConnectionSetupRequest, int]]
send_recv_lock: lock._DummyLock
send_active: int
recv_active: int
event_waiting: int
event_wait_lock: lock._DummyLock
request_waiting: int
request_wait_lock: lock._DummyLock
recv_buffer_size: int
sent_requests: list[rq.Request | rq.ReplyRequest | ConnectionSetupRequest]
recv_packet_len: int
data_send: bytes
data_recv: bytes
data_sent_bytes: int
resource_id_lock: lock._DummyLock
resource_ids: dict[int, None]
last_resource_id: int
error_handler: ErrorHandler[object] | None
big_endian: bool
info: ConnectionSetupRequest
def __init__(self, display: str | None = ...) -> None: ...
def get_display_name(self) -> str: ...
def get_default_screen(self) -> int: ...
def fileno(self) -> int: ...
def next_event(self) -> rq.Event: ...
def pending_events(self) -> int: ...
def flush(self) -> None: ...
def close(self) -> None: ...
def set_error_handler(self, handler: ErrorHandler[object] | None) -> None: ...
def allocate_resource_id(self) -> int: ...
def free_resource_id(self, rid: int) -> None: ...
@overload
def get_resource_class(self, class_name: Literal["resource"], default: object = ...) -> type[resource.Resource]: ...
@overload
def get_resource_class(self, class_name: Literal["drawable"], default: object = ...) -> type[drawable.Drawable]: ...
@overload
def get_resource_class(self, class_name: Literal["window"], default: object = ...) -> type[drawable.Window]: ...
@overload
def get_resource_class(self, class_name: Literal["pixmap"], default: object = ...) -> type[drawable.Pixmap]: ...
@overload
def get_resource_class(self, class_name: Literal["fontable"], default: object = ...) -> type[fontable.Fontable]: ...
@overload
def get_resource_class(self, class_name: Literal["font"], default: object = ...) -> type[fontable.Font]: ...
@overload
def get_resource_class(self, class_name: Literal["gc"], default: object = ...) -> type[fontable.GC]: ...
@overload
def get_resource_class(self, class_name: Literal["colormap"], default: object = ...) -> type[colormap.Colormap]: ...
@overload
def get_resource_class(self, class_name: Literal["cursor"], default: object) -> type[cursor.Cursor]: ...
@overload
def get_resource_class(self, class_name: str, default: _T) -> type[_ResourceBaseClass] | _T: ...
@overload
def get_resource_class(self, class_name: str, default: None = ...) -> type[_ResourceBaseClass] | None: ...
def set_extension_major(self, extname: str, major: int) -> None: ...
def get_extension_major(self, extname: str) -> int: ...
def add_extension_event(self, code: int, evt: type[rq.Event], subcode: int | None = ...) -> None: ...
def add_extension_error(self, code: int, err: type[error.XError]) -> None: ...
def check_for_error(self) -> None: ...
def send_request(self, request: rq.Request | rq.ReplyRequest | ConnectionSetupRequest, wait_for_response: bool) -> None: ...
def close_internal(self, whom: object) -> None: ...
def send_and_recv(
self, flush: bool = ..., event: bool = ..., request: int | None = ..., recv: bool = ... # noqa: F811
) -> None: ...
def parse_response(self, request: int) -> bool: ...
def parse_error_response(self, request: int) -> bool: ...
def default_error_handler(self, err: object) -> None: ...
def parse_request_response(self, request: int) -> bool: ...
def parse_event_response(self, etype: int) -> None: ...
def get_waiting_request(self, sno: int) -> rq.ReplyRequest | ConnectionSetupRequest | None: ...
def get_waiting_replyrequest(self) -> rq.ReplyRequest | ConnectionSetupRequest: ...
def parse_connection_setup(self) -> bool: ...
PixmapFormat: rq.Struct
VisualType: rq.Struct
Depth: rq.Struct
Screen: rq.Struct
class ConnectionSetupRequest(rq.GetAttrData):
def __init__(self, display: Display, *args: object, **keys: object) -> None: ...

View File

@@ -0,0 +1,80 @@
from typing_extensions import TypeAlias
from Xlib.protocol import rq
class AnyEvent(rq.Event): ...
class KeyButtonPointer(rq.Event): ...
class KeyPress(KeyButtonPointer): ...
class KeyRelease(KeyButtonPointer): ...
class ButtonPress(KeyButtonPointer): ...
class ButtonRelease(KeyButtonPointer): ...
class MotionNotify(KeyButtonPointer): ...
class EnterLeave(rq.Event): ...
class EnterNotify(EnterLeave): ...
class LeaveNotify(EnterLeave): ...
class Focus(rq.Event): ...
class FocusIn(Focus): ...
class FocusOut(Focus): ...
class Expose(rq.Event): ...
class GraphicsExpose(rq.Event): ...
class NoExpose(rq.Event): ...
class VisibilityNotify(rq.Event): ...
class CreateNotify(rq.Event): ...
class DestroyNotify(rq.Event): ...
class UnmapNotify(rq.Event): ...
class MapNotify(rq.Event): ...
class MapRequest(rq.Event): ...
class ReparentNotify(rq.Event): ...
class ConfigureNotify(rq.Event): ...
class ConfigureRequest(rq.Event): ...
class GravityNotify(rq.Event): ...
class ResizeRequest(rq.Event): ...
class Circulate(rq.Event): ...
class CirculateNotify(Circulate): ...
class CirculateRequest(Circulate): ...
class PropertyNotify(rq.Event): ...
class SelectionClear(rq.Event): ...
class SelectionRequest(rq.Event): ...
class SelectionNotify(rq.Event): ...
class ColormapNotify(rq.Event): ...
class MappingNotify(rq.Event): ...
class ClientMessage(rq.Event): ...
class KeymapNotify(rq.Event): ...
_EventClass: TypeAlias = dict[
int,
type[KeyPress]
| type[KeyRelease]
| type[ButtonPress]
| type[ButtonRelease]
| type[MotionNotify]
| type[EnterNotify]
| type[LeaveNotify]
| type[FocusIn]
| type[FocusOut]
| type[KeymapNotify]
| type[Expose]
| type[GraphicsExpose]
| type[NoExpose]
| type[VisibilityNotify]
| type[CreateNotify]
| type[DestroyNotify]
| type[UnmapNotify]
| type[MapNotify]
| type[MapRequest]
| type[ReparentNotify]
| type[ConfigureNotify]
| type[ConfigureRequest]
| type[GravityNotify]
| type[ResizeRequest]
| type[CirculateNotify]
| type[CirculateRequest]
| type[PropertyNotify]
| type[SelectionClear]
| type[SelectionRequest]
| type[SelectionNotify]
| type[ColormapNotify]
| type[ClientMessage]
| type[MappingNotify],
]
event_class: _EventClass

View File

@@ -0,0 +1,133 @@
from typing import NoReturn
from Xlib import display
from Xlib.protocol import rq
class CreateWindow(rq.Request): ...
class ChangeWindowAttributes(rq.Request): ...
class GetWindowAttributes(rq.ReplyRequest): ...
class DestroyWindow(rq.Request): ...
class DestroySubWindows(rq.Request): ...
class ChangeSaveSet(rq.Request): ...
class ReparentWindow(rq.Request): ...
class MapWindow(rq.Request): ...
class MapSubwindows(rq.Request): ...
class UnmapWindow(rq.Request): ...
class UnmapSubwindows(rq.Request): ...
class ConfigureWindow(rq.Request): ...
class CirculateWindow(rq.Request): ...
class GetGeometry(rq.ReplyRequest): ...
class QueryTree(rq.ReplyRequest): ...
class InternAtom(rq.ReplyRequest): ...
class GetAtomName(rq.ReplyRequest): ...
class ChangeProperty(rq.Request): ...
class DeleteProperty(rq.Request): ...
class GetProperty(rq.ReplyRequest): ...
class ListProperties(rq.ReplyRequest): ...
class SetSelectionOwner(rq.Request): ...
class GetSelectionOwner(rq.ReplyRequest): ...
class ConvertSelection(rq.Request): ...
class SendEvent(rq.Request): ...
class GrabPointer(rq.ReplyRequest): ...
class UngrabPointer(rq.Request): ...
class GrabButton(rq.Request): ...
class UngrabButton(rq.Request): ...
class ChangeActivePointerGrab(rq.Request): ...
class GrabKeyboard(rq.ReplyRequest): ...
class UngrabKeyboard(rq.Request): ...
class GrabKey(rq.Request): ...
class UngrabKey(rq.Request): ...
class AllowEvents(rq.Request): ...
class GrabServer(rq.Request): ...
class UngrabServer(rq.Request): ...
class QueryPointer(rq.ReplyRequest): ...
class GetMotionEvents(rq.ReplyRequest): ...
class TranslateCoords(rq.ReplyRequest): ...
class WarpPointer(rq.Request): ...
class SetInputFocus(rq.Request): ...
class GetInputFocus(rq.ReplyRequest): ...
class QueryKeymap(rq.ReplyRequest): ...
class OpenFont(rq.Request): ...
class CloseFont(rq.Request): ...
class QueryFont(rq.ReplyRequest): ...
class QueryTextExtents(rq.ReplyRequest): ...
class ListFonts(rq.ReplyRequest): ...
class ListFontsWithInfo(rq.ReplyRequest):
def __init__(self, display: display.Display, defer: bool = ..., *args: object, **keys: object) -> None: ...
def __getattr__(self, attr: object) -> NoReturn: ...
def __getitem__(self, item: str) -> object: ...
def __len__(self) -> int: ...
class SetFontPath(rq.Request): ...
class GetFontPath(rq.ReplyRequest): ...
class CreatePixmap(rq.Request): ...
class FreePixmap(rq.Request): ...
class CreateGC(rq.Request): ...
class ChangeGC(rq.Request): ...
class CopyGC(rq.Request): ...
class SetDashes(rq.Request): ...
class SetClipRectangles(rq.Request): ...
class FreeGC(rq.Request): ...
class ClearArea(rq.Request): ...
class CopyArea(rq.Request): ...
class CopyPlane(rq.Request): ...
class PolyPoint(rq.Request): ...
class PolyLine(rq.Request): ...
class PolySegment(rq.Request): ...
class PolyRectangle(rq.Request): ...
class PolyArc(rq.Request): ...
class FillPoly(rq.Request): ...
class PolyFillRectangle(rq.Request): ...
class PolyFillArc(rq.Request): ...
class PutImage(rq.Request): ...
class GetImage(rq.ReplyRequest): ...
class PolyText8(rq.Request): ...
class PolyText16(rq.Request): ...
class ImageText8(rq.Request): ...
class ImageText16(rq.Request): ...
class CreateColormap(rq.Request): ...
class FreeColormap(rq.Request): ...
class CopyColormapAndFree(rq.Request): ...
class InstallColormap(rq.Request): ...
class UninstallColormap(rq.Request): ...
class ListInstalledColormaps(rq.ReplyRequest): ...
class AllocColor(rq.ReplyRequest): ...
class AllocNamedColor(rq.ReplyRequest): ...
class AllocColorCells(rq.ReplyRequest): ...
class AllocColorPlanes(rq.ReplyRequest): ...
class FreeColors(rq.Request): ...
class StoreColors(rq.Request): ...
class StoreNamedColor(rq.Request): ...
class QueryColors(rq.ReplyRequest): ...
class LookupColor(rq.ReplyRequest): ...
class CreateCursor(rq.Request): ...
class CreateGlyphCursor(rq.Request): ...
class FreeCursor(rq.Request): ...
class RecolorCursor(rq.Request): ...
class QueryBestSize(rq.ReplyRequest): ...
class QueryExtension(rq.ReplyRequest): ...
class ListExtensions(rq.ReplyRequest): ...
class ChangeKeyboardMapping(rq.Request): ...
class GetKeyboardMapping(rq.ReplyRequest): ...
class ChangeKeyboardControl(rq.Request): ...
class GetKeyboardControl(rq.ReplyRequest): ...
class Bell(rq.Request): ...
class ChangePointerControl(rq.Request): ...
class GetPointerControl(rq.ReplyRequest): ...
class SetScreenSaver(rq.Request): ...
class GetScreenSaver(rq.ReplyRequest): ...
class ChangeHosts(rq.Request): ...
class ListHosts(rq.ReplyRequest): ...
class SetAccessControl(rq.Request): ...
class SetCloseDownMode(rq.Request): ...
class KillClient(rq.Request): ...
class RotateProperties(rq.Request): ...
class ForceScreenSaver(rq.Request): ...
class SetPointerMapping(rq.ReplyRequest): ...
class GetPointerMapping(rq.ReplyRequest): ...
class SetModifierMapping(rq.ReplyRequest): ...
class GetModifierMapping(rq.ReplyRequest): ...
class NoOperation(rq.Request): ...
major_codes: dict[int, type[rq.Request]]

View File

@@ -0,0 +1,402 @@
from _typeshed import ReadableBuffer, SliceableBuffer, SupportsTrunc
from array import array
# Avoid name collision with List.type
from builtins import type as Type
from collections.abc import Callable, Iterable, Sequence
from typing import Any, SupportsInt, TypeVar, overload, type_check_only
from typing_extensions import Literal, LiteralString, SupportsIndex, TypeAlias
from Xlib._typing import ErrorHandler, Unused
from Xlib.display import _ResourceBaseClass
from Xlib.error import XError
from Xlib.ext.xinput import ClassInfoClass
from Xlib.protocol import display
_T = TypeVar("_T")
_IntNew: TypeAlias = str | ReadableBuffer | SupportsInt | SupportsIndex | SupportsTrunc
_ModifierMappingList8Elements: TypeAlias = Sequence[Sequence[int]]
# Workaround for pytype crash. Should be Xlib.display._BaseDisplay
@type_check_only
class _BaseDisplay(display.Display):
def __init__(self, display: str | None = ...) -> None: ...
def get_atom(self, atomname: str, only_if_exists: bool = ...) -> int: ...
def decode_string(bs: bytes | bytearray) -> str: ...
def encode_array(a: array[Any] | memoryview) -> str: ...
class BadDataError(Exception): ...
signed_codes: dict[int, str]
unsigned_codes: dict[int, str]
array_unsigned_codes: dict[int, LiteralString]
struct_to_array_codes: dict[str, LiteralString]
size: int
class Field:
name: str
default: int | None
pack_value: Callable[[Any], tuple[Any, int | None, int | None]] | None
structcode: str | None
structvalues: int
check_value: Callable[[Any], Any] | None
parse_value: Callable[[Any, Any], Any] | None
keyword_args: int
def parse_binary_value(
self, data: SliceableBuffer, display: display.Display | None, length: int | None, format: int
) -> tuple[Any, SliceableBuffer]: ...
class Pad(Field):
size: int
value: bytes
structcode: str
def __init__(self, size: int) -> None: ...
class ConstantField(Field):
value: int
def __init__(self, value: int) -> None: ...
class Opcode(ConstantField):
structcode: str
class ReplyCode(ConstantField):
structcode: str
value: int
def __init__(self) -> None: ...
class LengthField(Field):
structcode: str
other_fields: list[str] | tuple[str, ...] | None
def calc_length(self, length: int) -> int: ...
class TotalLengthField(LengthField): ...
class RequestLength(TotalLengthField): ...
class ReplyLength(TotalLengthField): ...
class LengthOf(LengthField):
other_fields: list[str] | tuple[str, ...] | None
def __init__(self, name: str | list[str] | tuple[str, ...], size: int) -> None: ...
class OddLength(LengthField):
def __init__(self, name: str) -> None: ...
def parse_value(self, value: int, display: Unused) -> Literal["even", "odd"]: ... # type: ignore[override]
class FormatField(Field):
structcode: str
def __init__(self, name: str, size: int) -> None: ...
Format = FormatField
class ValueField(Field):
def __init__(self, name: str, default: int | None = ...) -> None: ...
class Int8(ValueField):
structcode: str
class Int16(ValueField):
structcode: str
class Int32(ValueField):
structcode: str
class Card8(ValueField):
structcode: str
class Card16(ValueField):
structcode: str
class Card32(ValueField):
structcode: str
class Resource(Card32):
cast_function: str
class_name: str
codes: tuple[int, ...]
def __init__(self, name: str, codes: tuple[int, ...] = ..., default: int | None = ...) -> None: ...
@overload # type: ignore[override]
def check_value(self, value: Callable[[], _T]) -> _T: ...
@overload
def check_value(self, value: _T) -> _T: ...
def parse_value(self, value: int, display: _BaseDisplay) -> int: ... # type: ignore[override] # display: None will error. See: https://github.com/python-xlib/python-xlib/pull/248
class Window(Resource):
cast_function: str
class_name: str
class Pixmap(Resource):
cast_function: str
class_name: str
class Drawable(Resource):
cast_function: str
class_name: str
class Fontable(Resource):
cast_function: str
class_name: str
class Font(Resource):
cast_function: str
class_name: str
class GC(Resource):
cast_function: str
class_name: str
class Colormap(Resource):
cast_function: str
class_name: str
class Cursor(Resource):
cast_function: str
class_name: str
class Bool(ValueField):
structcode: str
def check_value(self, value: object) -> bool: ... # type: ignore[override]
class Set(ValueField):
structcode: str
values: Sequence[object]
def __init__(self, name: str, size: int, values: Sequence[object], default: int | None = ...) -> None: ...
def check_value(self, val: _T) -> _T: ... # type: ignore[override]
class Gravity(Set):
def __init__(self, name: str) -> None: ...
class FixedBinary(ValueField):
structcode: str
def __init__(self, name: str, size: int) -> None: ...
class Binary(ValueField):
structcode: None
pad: int
def __init__(self, name: str, pad: int = ...) -> None: ...
def pack_value( # type: ignore[override] # Override Callable
self, val: bytes | bytearray
) -> tuple[bytes | bytearray, int, None]: ...
@overload # type: ignore[override] # Overload for specific values
def parse_binary_value(self, data: _T, display: Unused, length: None, format: Unused) -> tuple[_T, Literal[b""]]: ...
@overload
def parse_binary_value(
self, data: SliceableBuffer, display: Unused, length: int, format: Unused
) -> tuple[SliceableBuffer, SliceableBuffer]: ...
class String8(ValueField):
structcode: None
pad: int
def __init__(self, name: str, pad: int = ...) -> None: ...
def pack_value(self, val: bytes | str) -> tuple[bytes, int, None]: ... # type: ignore[override] # Override Callable
@overload # type: ignore[override] # Overload for specific values
def parse_binary_value(
self, data: bytes | bytearray, display: Unused, length: None, format: Unused
) -> tuple[str, Literal[b""]]: ...
@overload
def parse_binary_value(
self, data: SliceableBuffer, display: Unused, length: int, format: Unused
) -> tuple[str, SliceableBuffer]: ...
class String16(ValueField):
structcode: None
pad: int
def __init__(self, name: str, pad: int = ...) -> None: ...
def pack_value(self, val: Sequence[object]) -> tuple[bytes, int, None]: ... # type: ignore[override] # Override Callable
def parse_binary_value( # type: ignore[override] # length: None will error. See: https://github.com/python-xlib/python-xlib/pull/248
self, data: SliceableBuffer, display: Unused, length: int | Literal["odd", "even"], format: Unused
) -> tuple[tuple[Any, ...], SliceableBuffer]: ...
class List(ValueField):
structcode: None
type: Struct | ScalarObj | ResourceObj | ClassInfoClass | type[ValueField]
pad: int
def __init__(
self, name: str, type: Struct | ScalarObj | ResourceObj | ClassInfoClass | Type[ValueField], pad: int = ...
) -> None: ...
def parse_binary_value(
self, data: SliceableBuffer, display: display.Display | None, length: SupportsIndex | None, format: Unused
) -> tuple[list[DictWrapper | None], SliceableBuffer]: ...
def pack_value( # type: ignore[override] # Override Callable
self, val: Sequence[object] | dict[str, Any]
) -> tuple[bytes, int, None]: ...
class FixedList(List):
size: int
def __init__(self, name: str, size: int, type: Struct | ScalarObj, pad: int = ...) -> None: ...
def parse_binary_value(
self, data: SliceableBuffer, display: display.Display | None, length: Unused, format: Unused
) -> tuple[list[DictWrapper | None], SliceableBuffer]: ...
class Object(ValueField):
type: Struct
structcode: str | None
def __init__(self, name: str, type: Struct, default: int | None = ...) -> None: ...
def parse_binary_value(
self, data: SliceableBuffer, display: display.Display | None, length: Unused, format: Unused
) -> tuple[DictWrapper, SliceableBuffer]: ...
def parse_value(self, val: SliceableBuffer, display: display.Display | None) -> DictWrapper: ... # type: ignore[override]
def pack_value( # type: ignore[override] # Override Callable
self, val: tuple[object, ...] | dict[str, Any] | DictWrapper
) -> bytes: ...
def check_value(self, val: tuple[_T, ...] | dict[str, _T] | DictWrapper) -> list[_T]: ... # type: ignore[override]
class PropertyData(ValueField):
structcode: None
def parse_binary_value(
self, data: SliceableBuffer, display: Unused, length: _IntNew | None, format: int
) -> tuple[tuple[int, SliceableBuffer] | None, SliceableBuffer]: ...
def pack_value( # type: ignore[override] # Override Callable
self, value: tuple[int, Sequence[float] | Sequence[str]]
) -> tuple[bytes, int, Literal[8, 16, 32]]: ...
class FixedPropertyData(PropertyData):
size: int
def __init__(self, name: str, size: int) -> None: ...
class ValueList(Field):
structcode: None
keyword_args: int
default: str # type: ignore[assignment] # Actually different from base class
maskcode: bytes
maskcodelen: int
fields: list[tuple[Field, int]]
def __init__(self, name: str, mask: int, pad: int, *fields: Field) -> None: ...
def pack_value( # type: ignore[override] # Override Callable
self, arg: str | dict[str, Any], keys: dict[str, Any]
) -> tuple[bytes, None, None]: ...
def parse_binary_value(
self, data: SliceableBuffer, display: display.Display | None, length: Unused, format: Unused
) -> tuple[DictWrapper, SliceableBuffer]: ...
class KeyboardMapping(ValueField):
structcode: None
def parse_binary_value(
self, data: SliceableBuffer, display: Unused, length: int | None, format: int
) -> tuple[list[int], SliceableBuffer]: ...
def pack_value( # type: ignore[override] # Override Callable
self, value: Sequence[Sequence[object]]
) -> tuple[bytes, int, int]: ...
class ModifierMapping(ValueField):
structcode: None
def parse_binary_value(
self, data: SliceableBuffer, display: Unused, length: Unused, format: int
) -> tuple[list[array[int]], SliceableBuffer]: ...
def pack_value( # type: ignore[override] # Override Callable
self, value: _ModifierMappingList8Elements
) -> tuple[bytes, int, int]: ...
class EventField(ValueField):
structcode: None
def pack_value(self, value: Event) -> tuple[SliceableBuffer, None, None]: ... # type: ignore[override] # Override Callable
def parse_binary_value( # type: ignore[override]
self, data: SliceableBuffer, display: display.Display, length: Unused, format: Unused
) -> tuple[Event, SliceableBuffer]: ...
class ScalarObj:
structcode: str
structvalues: int
parse_value: None
check_value: None
def __init__(self, code: str) -> None: ...
Card8Obj: ScalarObj
Card16Obj: ScalarObj
Card32Obj: ScalarObj
class ResourceObj:
structcode: str
structvalues: int
class_name: str
check_value: None
def __init__(self, class_name: str) -> None: ...
def parse_value(self, value: int, display: _BaseDisplay) -> int | _ResourceBaseClass: ...
WindowObj: ResourceObj
ColormapObj: ResourceObj
class StrClass:
structcode: None
def pack_value(self, val: str) -> bytes: ...
def parse_binary(self, data: bytes | bytearray, display: Unused) -> tuple[str, bytes | bytearray]: ...
Str: StrClass
class Struct:
name: str
check_value: Callable[[Any], Any] | None
keyword_args: bool
fields: tuple[Field]
static_codes: str
static_values: int
static_fields: list[Field]
static_size: int
var_fields: list[Field]
structcode: str | None
structvalues: int
def __init__(self, *fields: Field) -> None: ...
def to_binary(self, *varargs: object, **keys: object) -> bytes: ...
def pack_value(self, value: tuple[object, ...] | dict[str, Any] | DictWrapper) -> bytes: ...
@overload
def parse_value(self, val: SliceableBuffer, display: display.Display | None, rawdict: Literal[True]) -> dict[str, Any]: ...
@overload
def parse_value(
self, val: SliceableBuffer, display: display.Display | None, rawdict: Literal[False] = ...
) -> DictWrapper: ...
@overload
def parse_binary(
self, data: SliceableBuffer, display: display.Display | None, rawdict: Literal[True]
) -> tuple[dict[str, Any], SliceableBuffer]: ...
@overload
def parse_binary(
self, data: SliceableBuffer, display: display.Display | None, rawdict: Literal[False] = ...
) -> tuple[DictWrapper, SliceableBuffer]: ...
# Structs generate their attributes
# TODO: Create a specific type-only class for all instances of `Struct`
@type_check_only
def __getattr__(self, __name: str) -> Any: ...
class TextElements8(ValueField):
string_textitem: Struct
def pack_value( # type: ignore[override] # Override Callable
self, value: Iterable[Field | str | bytes | tuple[Sequence[object], ...] | dict[str, Sequence[object]] | DictWrapper]
) -> tuple[bytes, None, None]: ...
def parse_binary_value( # type: ignore[override] # See: https://github.com/python-xlib/python-xlib/pull/249
self, data: SliceableBuffer, display: display.Display | None, length: Unused, format: Unused
) -> tuple[list[DictWrapper], Literal[""]]: ...
class TextElements16(TextElements8):
string_textitem: Struct
class GetAttrData:
# GetAttrData classes get their attributes dynamically
# TODO: Complete all classes inheriting from GetAttrData
def __getattr__(self, attr: str) -> Any: ...
@type_check_only
def __setattr__(self, __name: str, __value: Any) -> None: ...
class DictWrapper(GetAttrData):
def __init__(self, dict: dict[str, Any]) -> None: ...
def __getitem__(self, key: str) -> object: ...
def __setitem__(self, key: str, value: object) -> None: ...
def __delitem__(self, key: str) -> None: ...
def __setattr__(self, key: str, value: object) -> None: ...
class Request:
def __init__(
self, display: _BaseDisplay, onerror: ErrorHandler[object] | None = ..., *args: object, **keys: object
) -> None: ...
class ReplyRequest(GetAttrData):
def __init__(self, display: display.Display, defer: int = ..., *args: object, **keys: object) -> None: ...
def reply(self) -> None: ...
class Event(GetAttrData):
def __init__(
self, binarydata: SliceableBuffer | None = ..., display: display.Display | None = ..., **keys: object
) -> None: ...
def call_error_handler(
handler: Callable[[XError, Request | None], _T], error: XError, request: Request | None
) -> _T | Literal[0]: ...

View File

@@ -0,0 +1,26 @@
from collections.abc import Iterable, Sequence
from typing_extensions import TypeAlias
from Xlib.protocol import rq
# Aliases used in other modules
_RGB3IntIterable: TypeAlias = Iterable[int] # noqa: Y047
_Rectangle4IntSequence: TypeAlias = Sequence[int] # noqa: Y047
_Segment4IntSequence: TypeAlias = Sequence[int] # noqa: Y047
_Arc6IntSequence: TypeAlias = Sequence[int] # noqa: Y047
# TODO: Complete all classes using WindowValues and GCValues
# Currently *object is used to represent the ValueList instead of the possible attribute types
def WindowValues(arg: str) -> rq.ValueList: ...
def GCValues(arg: str) -> rq.ValueList: ...
TimeCoord: rq.Struct
Host: rq.Struct
CharInfo: rq.Struct
FontProp: rq.Struct
ColorItem: rq.Struct
RGB: rq.Struct
Point: rq.Struct
Segment: rq.Struct
Rectangle: rq.Struct
Arc: rq.Struct

View File

@@ -0,0 +1,97 @@
from _typeshed import SupportsDunderGT, SupportsDunderLT, SupportsRead
from collections.abc import Iterable, Mapping, Sequence
from re import Pattern
from typing import Any, Protocol, TypeVar, overload
from typing_extensions import TypeAlias
from Xlib.display import Display
from Xlib.support.lock import _DummyLock
_T = TypeVar("_T")
_T_contra = TypeVar("_T_contra", contravariant=True)
_DB: TypeAlias = dict[str, tuple[_DB, ...]]
# A recursive type can be a bit annoying due to dict invariance,
# so this is a slightly less precise version of the _DB alias for parameter annotations
_DB_Param: TypeAlias = dict[str, Any]
class _SupportsComparisons(SupportsDunderLT[_T_contra], SupportsDunderGT[_T_contra], Protocol[_T_contra]): ...
comment_re: Pattern[str]
resource_spec_re: Pattern[str]
value_escape_re: Pattern[str]
resource_parts_re: Pattern[str]
NAME_MATCH: int
CLASS_MATCH: int
WILD_MATCH: int
MATCH_SKIP: int
class OptionError(Exception): ...
class ResourceDB:
db: _DB
lock: _DummyLock
def __init__(
self,
file: bytes | SupportsRead[str] | None = ...,
string: str | None = ...,
resources: Iterable[tuple[str, object]] | None = ...,
) -> None: ...
def insert_file(self, file: bytes | SupportsRead[str]) -> None: ...
def insert_string(self, data: str) -> None: ...
def insert_resources(self, resources: Iterable[tuple[str, object]]) -> None: ...
def insert(self, resource: str, value: object) -> None: ...
def __getitem__(self, keys_tuple: tuple[str, str]) -> Any: ...
@overload
def get(self, res: str, cls: str, default: None = ...) -> Any: ...
@overload
def get(self, res: str, cls: str, default: _T) -> _T: ...
def update(self, db: ResourceDB) -> None: ...
def output(self) -> str: ...
def getopt(self, name: str, argv: Sequence[str], opts: Mapping[str, Option]) -> Sequence[str]: ...
def bin_insert(list: list[_SupportsComparisons[_T]], element: _SupportsComparisons[_T]) -> None: ...
def update_db(dest: _DB_Param, src: _DB_Param) -> None: ...
def copy_group(group: tuple[_DB_Param, ...]) -> tuple[_DB, ...]: ...
def copy_db(db: _DB_Param) -> _DB: ...
def output_db(prefix: str, db: _DB_Param) -> str: ...
def output_escape(value: object) -> str: ...
class Option:
def parse(self, name: str, db: ResourceDB, args: Sequence[_T]) -> Sequence[_T]: ...
class NoArg(Option):
specifier: str
value: object
def __init__(self, specifier: str, value: object) -> None: ...
class IsArg(Option):
specifier: str
def __init__(self, specifier: str) -> None: ...
class SepArg(Option):
specifier: str
def __init__(self, specifier: str) -> None: ...
class ResArgClass(Option):
def parse(self, name: str, db: ResourceDB, args: Sequence[str]) -> Sequence[str]: ... # type: ignore[override]
ResArg: ResArgClass
class SkipArgClass(Option): ...
SkipArg: SkipArgClass
class SkipLineClass(Option): ...
SkipLine: SkipLineClass
class SkipNArgs(Option):
count: int
def __init__(self, count: int) -> None: ...
def get_display_opts(
options: Mapping[str, Option], argv: Sequence[str] = ...
) -> tuple[Display, str, ResourceDB, Sequence[str]]: ...
stdopts: dict[str, SepArg | NoArg | ResArgClass]

View File

@@ -0,0 +1,3 @@
from Xlib.support import connect as connect, lock as lock
__all__ = ["lock", "connect"]

View File

@@ -0,0 +1,4 @@
# Ignore OpenVMS in typeshed
from Xlib.support.unix_connect import get_auth as get_auth, get_display as get_display, get_socket as get_socket
platform: str

View File

@@ -0,0 +1,8 @@
from collections.abc import Callable
class _DummyLock:
acquire: Callable[..., None]
release: Callable[..., None]
locked: Callable[..., None]
def allocate_lock() -> _DummyLock: ...

View File

@@ -0,0 +1,28 @@
import sys
from _socket import _Address
from platform import uname_result
from re import Pattern
from socket import socket
from typing_extensions import Literal, TypeAlias
from Xlib._typing import Unused
F_SETFD: int
FD_CLOEXEC: int
if sys.platform == "darwin":
SUPPORTED_PROTOCOLS: tuple[None, Literal["tcp"], Literal["unix"], Literal["darwin"]]
_Protocol: TypeAlias = Literal[None, "tcp", "unix", "darwin"]
DARWIN_DISPLAY_RE: Pattern[str]
else:
SUPPORTED_PROTOCOLS: tuple[None, Literal["tcp"], Literal["unix"]]
_Protocol: TypeAlias = Literal[None, "tcp", "unix"]
uname: uname_result
DISPLAY_RE: Pattern[str]
def get_display(display: str | None) -> tuple[str, str | None, str | None, int, int]: ...
def get_socket(dname: _Address, protocol: _Protocol, host: _Address | None, dno: int) -> socket: ...
def new_get_auth(sock: socket, dname: Unused, protocol: _Protocol, host: Unused, dno: int) -> tuple[bytes, bytes]: ...
def old_get_auth(sock: Unused, dname: _Address, host: Unused, dno: Unused) -> tuple[str | Literal[b""], bytes]: ...
get_auth = new_get_auth

View File

@@ -0,0 +1,11 @@
from _socket import _Address
from re import Pattern
from socket import socket
from Xlib._typing import Unused
display_re: Pattern[str]
def get_display(display: str | None) -> tuple[str, None, str, int, int]: ...
def get_socket(dname: _Address, protocol: Unused, host: _Address, dno: int) -> socket: ...
def get_auth(sock: Unused, dname: Unused, host: Unused, dno: Unused) -> tuple[str, str]: ...

View File

@@ -0,0 +1,4 @@
# This isn't just a re-export from from Xlib.support import lock
# Importing from this module will cause the lock.allocate_lock function to
# return a basic Python lock, instead of the default dummy lock
from Xlib.support import lock as lock

View File

@@ -0,0 +1,17 @@
from Xlib._typing import OpenFile
FamilyInternet: int
FamilyDECnet: int
FamilyChaos: int
FamilyServerInterpreted: int
FamilyInternetV6: int
FamilyLocal: int
class Xauthority:
entries: list[tuple[bytes, bytes, bytes, bytes, bytes]]
def __init__(self, filename: OpenFile | None = ...) -> None: ...
def __len__(self) -> int: ...
def __getitem__(self, i: int) -> tuple[bytes, bytes, bytes, bytes, bytes]: ...
def get_best_auth(
self, family: bytes, address: bytes, dispno: bytes, types: tuple[bytes, ...] = ...
) -> tuple[bytes, bytes]: ...

View File

@@ -0,0 +1,10 @@
from Xlib.xobject import (
colormap as colormap,
cursor as cursor,
drawable as drawable,
fontable as fontable,
icccm as icccm,
resource as resource,
)
__all__ = ["colormap", "cursor", "drawable", "fontable", "icccm", "resource"]

View File

@@ -0,0 +1,24 @@
from collections.abc import Sequence
from re import Pattern
from Xlib._typing import ErrorHandler
from Xlib.protocol import request, rq
from Xlib.xobject import resource
rgb_res: list[Pattern[str]]
class Colormap(resource.Resource):
__colormap__ = resource.Resource.__resource__
def free(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def copy_colormap_and_free(self, scr_cmap: int) -> Colormap: ...
def install_colormap(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def uninstall_colormap(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def alloc_color(self, red: int, green: int, blue: int) -> request.AllocColor: ...
def alloc_named_color(self, name: str) -> request.AllocColor | request.AllocNamedColor | None: ...
def alloc_color_cells(self, contiguous: bool, colors: int, planes: int) -> request.AllocColorCells: ...
def alloc_color_planes(self, contiguous: bool, colors: int, red: int, green: int, blue: int) -> request.AllocColorPlanes: ...
def free_colors(self, pixels: Sequence[int], plane_mask: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def store_colors(self, items: dict[str, int], onerror: ErrorHandler[object] | None = ...) -> None: ...
def store_named_color(self, name: str, pixel: int, flags: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def query_colors(self, pixels: Sequence[int]) -> rq.Struct: ...
def lookup_color(self, name: str) -> request.LookupColor: ...

View File

@@ -0,0 +1,10 @@
from Xlib._typing import ErrorHandler
from Xlib.protocol.structs import _RGB3IntIterable
from Xlib.xobject import resource
class Cursor(resource.Resource):
__cursor__ = resource.Resource.__resource__
def free(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def recolor(
self, foreground: _RGB3IntIterable, background: _RGB3IntIterable, onerror: ErrorHandler[object] | None = ...
) -> None: ...

View File

@@ -0,0 +1,263 @@
from collections.abc import Iterable, Sequence
from typing import Any
from PIL import Image
from Xlib._typing import ErrorHandler
from Xlib.protocol import request, rq
from Xlib.protocol.structs import _Arc6IntSequence, _Rectangle4IntSequence, _RGB3IntIterable, _Segment4IntSequence
from Xlib.xobject import colormap, cursor, fontable, resource
class Drawable(resource.Resource):
__drawable__ = resource.Resource.__resource__
def get_geometry(self) -> request.GetGeometry: ...
def create_pixmap(self, width: int, height: int, depth: int) -> Pixmap: ...
def create_gc(self, **keys: object) -> fontable.GC: ...
def copy_area(
self,
gc: int,
src_drawable: int,
src_x: int,
src_y: int,
width: int,
height: int,
dst_x: int,
dst_y: int,
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def copy_plane(
self,
gc: int,
src_drawable: int,
src_x: int,
src_y: int,
width: int,
height: int,
dst_x: int,
dst_y: int,
bit_plane: int,
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def poly_point(
self, gc: int, coord_mode: int, points: Sequence[tuple[int, int]], onerror: ErrorHandler[object] | None = ...
) -> None: ...
def point(self, gc: int, x: int, y: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def poly_line(
self, gc: int, coord_mode: int, points: Sequence[tuple[int, int]], onerror: ErrorHandler[object] | None = ...
) -> None: ...
def line(self, gc: int, x1: int, y1: int, x2: int, y2: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def poly_segment(
self, gc: int, segments: Sequence[_Segment4IntSequence], onerror: ErrorHandler[object] | None = ...
) -> None: ...
def poly_rectangle(
self, gc: int, rectangles: Sequence[_Rectangle4IntSequence], onerror: ErrorHandler[object] | None = ...
) -> None: ...
def rectangle(self, gc: int, x: int, y: int, width: int, height: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def poly_arc(self, gc: int, arcs: Sequence[_Arc6IntSequence], onerror: ErrorHandler[object] | None = ...) -> None: ...
def arc(
self,
gc: int,
x: int,
y: int,
width: int,
height: int,
angle1: int,
angle2: int,
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def fill_poly(
self, gc: int, shape: int, coord_mode: int, points: Sequence[tuple[int, int]], onerror: ErrorHandler[object] | None = ...
) -> None: ...
def poly_fill_rectangle(
self, gc: int, rectangles: Sequence[_Rectangle4IntSequence], onerror: ErrorHandler[object] | None = ...
) -> None: ...
def fill_rectangle(
self, gc: int, x: int, y: int, width: int, height: int, onerror: ErrorHandler[object] | None = ...
) -> None: ...
def poly_fill_arc(self, gc: int, arcs: Sequence[_Arc6IntSequence], onerror: ErrorHandler[object] | None = ...) -> None: ...
def fill_arc(
self,
gc: int,
x: int,
y: int,
width: int,
height: int,
angle1: int,
angle2: int,
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def put_image(
self,
gc: int,
x: int,
y: int,
width: int,
height: int,
format: int,
depth: int,
left_pad: int,
data: bytes | bytearray,
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def put_pil_image(self, gc: int, x: int, y: int, image: Image.Image, onerror: ErrorHandler[object] | None = ...) -> None: ...
def get_image(self, x: int, y: int, width: int, height: int, format: int, plane_mask: int) -> request.GetImage: ...
def draw_text(
self, gc: int, x: int, y: int, text: dict[str, str | int], onerror: ErrorHandler[object] | None = ...
) -> None: ...
def poly_text(
self, gc: int, x: int, y: int, items: Sequence[dict[str, str | int]], onerror: ErrorHandler[object] | None = ...
) -> None: ...
def poly_text_16(
self, gc: int, x: int, y: int, items: Sequence[dict[str, str | int]], onerror: ErrorHandler[object] | None = ...
) -> None: ...
def image_text(self, gc: int, x: int, y: int, string: str, onerror: ErrorHandler[object] | None = ...) -> None: ...
def image_text_16(self, gc: int, x: int, y: int, string: str, onerror: ErrorHandler[object] | None = ...) -> None: ...
def query_best_size(self, item_class: int, width: int, height: int) -> request.QueryBestSize: ...
class Window(Drawable):
__window__ = resource.Resource.__resource__
def create_window(
self,
x: int,
y: int,
width: int,
height: int,
border_width: int,
depth: int,
window_class: int = ...,
visual: int = ...,
onerror: ErrorHandler[object] | None = ...,
**keys: object,
) -> Window: ...
def change_attributes(self, onerror: ErrorHandler[object] | None = ..., **keys: object) -> None: ...
def get_attributes(self) -> request.GetWindowAttributes: ...
def destroy(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def destroy_sub_windows(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def change_save_set(self, mode: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def reparent(self, parent: int, x: int, y: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def map(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def map_sub_windows(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def unmap(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def unmap_sub_windows(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def configure(self, onerror: ErrorHandler[object] | None = ..., **keys: object) -> None: ...
def circulate(self, direction: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def raise_window(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def query_tree(self) -> request.QueryTree: ...
def change_property(
self,
property: int,
property_type: int,
format: int,
data: Sequence[float] | Sequence[str],
mode: int = ...,
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def change_text_property(
self, property: int, property_type: int, data: bytes | str, mode: int = ..., onerror: ErrorHandler[object] | None = ...
) -> None: ...
def delete_property(self, property: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def get_property(
self, property: int, property_type: int, offset: int, length: int, delete: bool = ...
) -> request.GetProperty | None: ...
def get_full_property(self, property: int, property_type: int, sizehint: int = ...) -> request.GetProperty | None: ...
def get_full_text_property(self, property: int, property_type: int = ..., sizehint: int = ...) -> str | None: ...
def list_properties(self) -> list[int]: ...
def set_selection_owner(self, selection: int, time: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def convert_selection(
self, selection: int, target: int, property: int, time: int, onerror: ErrorHandler[object] | None = ...
) -> None: ...
def send_event(
self, event: rq.Event, event_mask: int = ..., propagate: bool = ..., onerror: ErrorHandler[object] | None = ...
) -> None: ...
def grab_pointer(
self, owner_events: bool, event_mask: int, pointer_mode: int, keyboard_mode: int, confine_to: int, cursor: int, time: int
) -> int: ...
def grab_button(
self,
button: int,
modifiers: int,
owner_events: bool,
event_mask: int,
pointer_mode: int,
keyboard_mode: int,
confine_to: int,
cursor: int,
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def ungrab_button(self, button: int, modifiers: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def grab_keyboard(self, owner_events: bool, pointer_mode: int, keyboard_mode: int, time: int) -> int: ...
def grab_key(
self,
key: int,
modifiers: int,
owner_events: bool,
pointer_mode: int,
keyboard_mode: int,
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def ungrab_key(self, key: int, modifiers: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def query_pointer(self) -> request.QueryPointer: ...
def get_motion_events(self, start: int, stop: int) -> rq.Struct: ...
def translate_coords(self, src_window: int, src_x: int, src_y: int) -> request.TranslateCoords: ...
def warp_pointer(
self,
x: int,
y: int,
src_window: int = ...,
src_x: int = ...,
src_y: int = ...,
src_width: int = ...,
src_height: int = ...,
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def set_input_focus(self, revert_to: int, time: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def clear_area(
self,
x: int = ...,
y: int = ...,
width: int = ...,
height: int = ...,
exposures: bool = ...,
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def create_colormap(self, visual: int, alloc: int) -> colormap.Colormap: ...
def list_installed_colormaps(self) -> list[colormap.Colormap]: ...
def rotate_properties(self, properties: Sequence[int], delta: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def set_wm_name(self, name: bytes | str, onerror: ErrorHandler[object] | None = ...) -> None: ...
def get_wm_name(self) -> str | None: ...
def set_wm_icon_name(self, name: bytes | str, onerror: ErrorHandler[object] | None = ...) -> None: ...
def get_wm_icon_name(self) -> str | None: ...
def set_wm_class(self, inst: str, cls: str, onerror: ErrorHandler[object] | None = ...) -> None: ...
def get_wm_class(self) -> tuple[str, str] | None: ...
def set_wm_transient_for(self, window: Window, onerror: ErrorHandler[object] | None = ...) -> None: ...
def get_wm_transient_for(self) -> Window | None: ...
def set_wm_protocols(self, protocols: Iterable[int], onerror: ErrorHandler[object] | None = ...) -> None: ...
def get_wm_protocols(self) -> list[int]: ...
def set_wm_colormap_windows(self, windows: Iterable[Window], onerror: ErrorHandler[object] | None = ...) -> None: ...
def get_wm_colormap_windows(self) -> Iterable[Window]: ...
def set_wm_client_machine(self, name: bytes | str, onerror: ErrorHandler[object] | None = ...) -> None: ...
def get_wm_client_machine(self) -> str | None: ...
def set_wm_normal_hints(
self, hints: rq.DictWrapper | dict[str, Any] = ..., onerror: ErrorHandler[object] | None = ..., **keys: object
) -> None: ...
def get_wm_normal_hints(self) -> rq.DictWrapper | None: ...
def set_wm_hints(
self, hints: rq.DictWrapper | dict[str, Any] = ..., onerror: ErrorHandler[object] | None = ..., **keys: object
) -> None: ...
def get_wm_hints(self) -> rq.DictWrapper | None: ...
def set_wm_state(
self, hints: rq.DictWrapper | dict[str, Any] = ..., onerror: ErrorHandler[object] | None = ..., **keys: object
) -> None: ...
def get_wm_state(self) -> rq.DictWrapper | None: ...
def set_wm_icon_size(
self, hints: rq.DictWrapper | dict[str, Any] = ..., onerror: ErrorHandler[object] | None = ..., **keys: object
) -> None: ...
def get_wm_icon_size(self) -> rq.DictWrapper | None: ...
class Pixmap(Drawable):
__pixmap__ = resource.Resource.__resource__
def free(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def create_cursor(
self, mask: int, foreground: _RGB3IntIterable, background: _RGB3IntIterable, x: int, y: int
) -> cursor.Cursor: ...
def roundup(value: int, unit: int) -> int: ...

View File

@@ -0,0 +1,33 @@
from collections.abc import Sequence
from Xlib._typing import ErrorHandler
from Xlib.protocol import request
from Xlib.protocol.structs import _RGB3IntIterable
from Xlib.xobject import cursor, resource
class Fontable(resource.Resource):
__fontable__ = resource.Resource.__resource__
def query(self) -> request.QueryFont: ...
def query_text_extents(self, string: str) -> request.QueryTextExtents: ...
class GC(Fontable):
__gc__ = resource.Resource.__resource__
def change(self, onerror: ErrorHandler[object] | None = ..., **keys: object) -> None: ...
def copy(self, src_gc: int, mask: int, onerror: ErrorHandler[object] | None = ...) -> None: ...
def set_dashes(self, offset: int, dashes: Sequence[int], onerror: ErrorHandler[object] | None = ...) -> None: ...
def set_clip_rectangles(
self,
x_origin: int,
y_origin: int,
rectangles: Sequence[dict[str, int]],
ordering: int,
onerror: ErrorHandler[object] | None = ...,
) -> None: ...
def free(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
class Font(Fontable):
__font__ = resource.Resource.__resource__
def close(self, onerror: ErrorHandler[object] | None = ...) -> None: ...
def create_glyph_cursor(
self, mask: Font, source_char: int, mask_char: int, foreground: _RGB3IntIterable, background: _RGB3IntIterable
) -> cursor.Cursor: ...

View File

@@ -0,0 +1,7 @@
from Xlib.protocol import rq
Aspect: rq.Struct
WMNormalHints: rq.Struct
WMHints: rq.Struct
WMState: rq.Struct
WMIconSize: rq.Struct

View File

@@ -0,0 +1,18 @@
from typing import type_check_only
from Xlib._typing import ErrorHandler
from Xlib.protocol import display
# Workaround for pytype crash. Should be Xlib.display._BaseDisplay
@type_check_only
class _BaseDisplay(display.Display):
def __init__(self, display: str | None = ...) -> None: ...
def get_atom(self, atomname: str, only_if_exists: bool = ...) -> int: ...
class Resource:
display: _BaseDisplay
id: int
owner: int
def __init__(self, display: _BaseDisplay, rid: int, owner: int = ...) -> None: ...
def __resource__(self) -> int: ...
def kill_client(self, onerror: ErrorHandler[object] | None = ...) -> None: ...