From b9f38cb18b38c9d8777b7c64051b362e72d86446 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Mon, 21 Nov 2022 15:10:15 -0800 Subject: [PATCH] configuration to control OSC 52 --- src/Window.zig | 10 ++++++++++ src/config.zig | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/src/Window.zig b/src/Window.zig index f5bf490e5..ca1ff1b72 100644 --- a/src/Window.zig +++ b/src/Window.zig @@ -607,6 +607,11 @@ pub fn handleMessage(self: *Window, msg: Message) !void { } fn clipboardRead(self: *const Window, kind: u8) !void { + if (!self.config.@"clipboard-read") { + log.info("application attempted to read clipboard, but 'clipboard-read' setting is off", .{}); + return; + } + const data = glfw.getClipboardString() catch |err| { log.warn("error reading clipboard: {}", .{err}); return; @@ -638,6 +643,11 @@ fn clipboardRead(self: *const Window, kind: u8) !void { } fn clipboardWrite(self: *const Window, data: []const u8) !void { + if (!self.config.@"clipboard-write") { + log.info("application attempted to write clipboard, but 'clipboard-write' setting is off", .{}); + return; + } + const dec = std.base64.standard.Decoder; // Build buffer diff --git a/src/config.zig b/src/config.zig index a6526ec43..6b40a0d85 100644 --- a/src/config.zig +++ b/src/config.zig @@ -141,6 +141,12 @@ pub const Config = struct { /// specified in the configuration "font-size" will be used. @"window-inherit-font-size": bool = true, + /// Whether to allow programs running in the terminal to read/write to + /// the system clipboard (OSC 52, for googling). The default is to + /// disallow clipboard reading but allow writing. + @"clipboard-read": bool = false, + @"clipboard-write": bool = true, + /// Additional configuration files to read. @"config-file": RepeatableString = .{},