st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit be7c6d7fb09ff50127332060d771b94a3bc8e44c
parent e40d8da194cb02b400b09d2c8642f701c5c16821
Author: Christoph Lohmann <20h@r-36.net>
Date:   Sat, 23 Feb 2013 21:50:13 +0100

Add insert for the primary clipboard to MOD + Shift + Ins.

Thanks Mantas Mikulėnas <grawity@gmail.com> for the patch!

Diffstat:
Mconfig.def.h | 1+
Mst.c | 17++++++++++++++---
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/config.def.h b/config.def.h
@@ -70,6 +70,7 @@ static Shortcut shortcuts[] = {
     { MODKEY|ShiftMask,    XK_Prior,    xzoom,        {.i = +1} },
     { MODKEY|ShiftMask,    XK_Next,    xzoom,        {.i = -1} },
     { ShiftMask,        XK_Insert,    selpaste,    {.i =  0} },
+    { MODKEY|ShiftMask,    XK_Insert,    clippaste,    {.i =  0} },
     { MODKEY,        XK_Num_Lock,    numlock,    {.i =  0} },
 };
 
diff --git a/st.c b/st.c
@@ -266,9 +266,10 @@ typedef struct {
 } Shortcut;
 
 /* function definitions used in config.h */
-static void xzoom(const Arg *);
-static void selpaste(const Arg *);
+static void clippaste(const Arg *);
 static void numlock(const Arg *);
+static void selpaste(const Arg *);
+static void xzoom(const Arg *);
 
 /* Config.h for applying patches and the configuration. */
 #include "config.h"
@@ -830,7 +831,17 @@ selpaste(const Arg *dummy) {
             xw.win, CurrentTime);
 }
 
-void selclear(XEvent *e) {
+void
+clippaste(const Arg *dummy) {
+    Atom clipboard;
+
+    clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
+    XConvertSelection(xw.dpy, clipboard, sel.xtarget, XA_PRIMARY,
+            xw.win, CurrentTime);
+}
+
+void
+selclear(XEvent *e) {
     if(sel.bx == -1)
         return;
     sel.bx = -1;