improve KGP handling in terminals

This commit is contained in:
2026-02-14 13:36:34 +01:00
parent ec00a0e043
commit 5eae6119aa
2 changed files with 8 additions and 3 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
screenshot-path "~/Pictures/Screenshots/niri_screenshot_%Y-%m-%d_%H-%M-%S.png" screenshot-path "~/Pictures/Screenshots/niri_screenshot_%Y-%m-%d_%H-%M-%S.png"
debug { debug {
render-drm-device "/dev/dri/renderD129" render-drm-device "/dev/dri/renderD128"
} }
// gestures { // gestures {
+7 -2
View File
@@ -930,17 +930,18 @@ Unicode Placeholders 是 Kitty 图像协议的一个独特功能, 它允许使
sys.stderr.write("KGP not supported in this terminal.\n") sys.stderr.write("KGP not supported in this terminal.\n")
sys.exit(1) sys.exit(1)
# Prefer Shared memory if supported, fallback to direct
medium = "s" if query_shared_memory_support() else "d" medium = "s" if query_shared_memory_support() else "d"
placeholders = [] placeholders = []
encoder = None encoder = None
sys.stderr.write("Transmission medium: " + ("Shared Memory\n" if medium == "s" else "Direct Data\n")) sys.stderr.write("Transmission medium: " + ("Shared Memory\n" if medium == "s" else "Direct Data\n"))
# Prefer Unicode Placeholders if supported, fallback to normal KGP
if query_unicode_placeholder_support(): if query_unicode_placeholder_support():
sys.stderr.write("Using Unicode Placeholders\n") sys.stderr.write("Using Unicode Placeholders\n")
encoder = KGPEncoderUnicode(image_path) encoder = KGPEncoderUnicode(image_path)
placeholders = encoder.construct_unicode_placeholders() placeholders = encoder.construct_unicode_placeholders()
else: else:
sys.stderr.write("Using KGP without Unicode Placeholders\n") sys.stderr.write("Using KGP without Unicode Placeholders\n")
encoder = KGPEncoderBase(image_path) encoder = KGPEncoderBase(image_path)
@@ -949,11 +950,15 @@ Unicode Placeholders 是 Kitty 图像协议的一个独特功能, 它允许使
print(seq, end="") print(seq, end="")
sys.stdout.flush() sys.stdout.flush()
# placeholders will be empty if using normal KGP,
# in which case nothing will be printed in this loop
for i, line in enumerate(placeholders): for i, line in enumerate(placeholders):
print(line, end="" if i == len(placeholders) - 1 else "\n") print(line, end="" if i == len(placeholders) - 1 else "\n")
# Delete image on user input
input() input()
encoder.delete_image() print(encoder.delete_image(), end="")
sys.stdout.flush()
``` ```
## 默认 Shell ## 默认 Shell