From 5131224b59607d14e7e3d2d80949bcdcf327788f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 9 Sep 2022 12:20:28 +0530 Subject: [PATCH] Convenience code for debugging --- kitty/clipboard.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/kitty/clipboard.py b/kitty/clipboard.py index de604b69f..854c4f702 100644 --- a/kitty/clipboard.py +++ b/kitty/clipboard.py @@ -7,7 +7,8 @@ from typing import IO, Callable, Dict, List, Tuple, Union from .conf.utils import uniq from .constants import supports_primary_selection from .fast_data_types import ( - GLFW_CLIPBOARD, get_boss, get_clipboard_mime, set_clipboard_data_types + GLFW_CLIPBOARD, GLFW_PRIMARY_SELECTION, get_boss, get_clipboard_mime, + set_clipboard_data_types ) DataType = Union[bytes, 'IO[bytes]'] @@ -52,6 +53,11 @@ class Clipboard: q = data.read(io.DEFAULT_BUFFER_SIZE) output(q) + def get_mime_data(self, mime: str) -> bytes: + ans: List[bytes] = [] + self.get_mime(mime, ans.append) + return b''.join(ans) + def get_available_mime_types_for_paste(self) -> Tuple[str, ...]: if self.enabled: parts: List[bytes] = [] @@ -97,3 +103,17 @@ def set_primary_selection(x: Union[str, bytes]) -> None: def get_primary_selection() -> str: return get_boss().primary_selection.get_text() + + +def develop() -> Tuple[Clipboard, Clipboard]: + from .constants import is_macos, detect_if_wayland_ok + from .fast_data_types import set_boss + from .main import init_glfw_module + glfw_module = 'cocoa' if is_macos else ('wayland' if detect_if_wayland_ok() else 'x11') + + class Boss: + clipboard = Clipboard() + primary_selection = Clipboard(GLFW_PRIMARY_SELECTION) + init_glfw_module(glfw_module) + set_boss(Boss()) # type: ignore + return Boss.clipboard, Boss.primary_selection