Skip to content

Instantly share code, notes, and snippets.

@yusukei yusukei/gist:1170871
Created Aug 25, 2011

Embed
What would you like to do?
tmux 1.5 with pasteboard
diff --git a/window-copy.c b/window-copy.c
index b49be33..9537ad5 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -23,6 +23,7 @@
#include "tmux.h"
+void to_pasteboard(char *buf);
struct screen *window_copy_init(struct window_pane *);
void window_copy_free(struct window_pane *);
void window_copy_resize(struct window_pane *, u_int, u_int);
@@ -143,6 +144,18 @@ struct window_copy_mode_data {
char jumpchar;
};
+
+void to_pasteboard(char *buf)
+{
+ /* Copy to pasteboard */
+ FILE *fp;
+ fp = fopen("/tmp/tmux-buffer", "w");
+ fprintf(fp, "%s\0", buf);
+ fclose(fp);
+ system("reattach-to-user-namespace -l zsh -c \"pbcopy < /tmp/tmux-buffer\"");
+}
+
+
struct screen *
window_copy_init(struct window_pane *wp)
{
@@ -1349,6 +1362,9 @@ window_copy_copy_selection(struct window_pane *wp)
/* Add the buffer to the stack. */
limit = options_get_number(&global_options, "buffer-limit");
paste_add(&global_buffers, buf, off, limit);
+
+ /* add by yusukei */
+ to_pasteboard(buf);
}
void
@@ -1406,6 +1422,9 @@ window_copy_copy_line(struct window_pane *wp,
*buf = xrealloc(*buf, 1, (*off) + 1);
(*buf)[(*off)++] = '\n';
}
+
+ /* add by yusukei */
+ to_pasteboard(buf);
}
void
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.