feat: implement copy_url_to_clipboard keybinding action functionality

This commit is contained in:
Alexandre Antonio Juca
2025-01-06 13:02:41 +01:00
parent 6181487bad
commit 27bb0927b5
2 changed files with 24 additions and 0 deletions

View File

@ -3932,6 +3932,27 @@ pub fn performBindingAction(self: *Surface, action: input.Binding.Action) !bool
return false;
},
.copy_url_to_clipboard => {
const pos = try self.rt_surface.getCursorPos();
if (!self.mouse.over_link) {
return false;
}
if (try self.linkAtPos(pos)) |link| {
const str = try self.io.terminal.screen.selectionString(self.alloc, .{
.sel = link[1],
.trim = false,
});
defer self.alloc.free(str);
try self.rt_surface.setClipboardString(str, .standard, false);
return true;
}
return false;
},
.paste_from_clipboard => try self.startClipboardRequest(
.standard,
.{ .paste = {} },

View File

@ -256,6 +256,8 @@ pub const Action = union(enum) {
/// Copy and paste.
copy_to_clipboard: void,
/// Copy the URL under cursor to the clipboard.
copy_url_to_clipboard: void,
paste_from_clipboard: void,
paste_from_selection: void,
@ -707,6 +709,7 @@ pub const Action = union(enum) {
.cursor_key,
.reset,
.copy_to_clipboard,
.copy_url_to_clipboard,
.paste_from_clipboard,
.paste_from_selection,
.increase_font_size,