all repos — st @ 3959a99293785e603270d8798fbe0cb2ba0ae0ee

st (suckless terminal) config

add -w option to embed st. (thx nodus cursorius)
Aurélien Aptel aurelien.aptel@gmail.com
commit

3959a99293785e603270d8798fbe0cb2ba0ae0ee

parent

4736edd469d07685f6ceeb4bfe438ba48335bd81

2 files changed, 14 insertions(+), 2 deletions(-)

jump to
M st.1st.1

@@ -7,6 +7,8 @@ .RB [ \-c

.IR class ] .RB [ \-t .IR title ] +.RB [ \-w +.IR windowid ] .RB [ \-v ] .RB [ \-e .IR command ...]

@@ -20,6 +22,10 @@ defines the window title (default 'st').

.TP .BI \-c " class" defines the window class (default $TERM). +.TP +.BI \-w " windowid" +embeds st within the window identified by +.I windowid .TP .B \-v prints version information to stderr, then exits.
M st.cst.c

@@ -35,7 +35,7 @@ #endif

#define USAGE \ "st-" VERSION ", (c) 2010-2011 st engineers\n" \ - "usage: st [-t title] [-c class] [-v] [-e command...]\n" + "usage: st [-t title] [-c class] [-w windowid] [-v] [-e command...]\n" /* Arbitrary sizes */ #define ESC_TITLE_SIZ 256

@@ -260,6 +260,7 @@ static pid_t pid;

static Selection sel; static char **opt_cmd = NULL; static char *opt_title = NULL; +static char *opt_embed = NULL; static char *opt_class = NULL; int

@@ -1606,6 +1607,7 @@ void

xinit(void) { XSetWindowAttributes attrs; Cursor cursor; + Window parent; if(!(xw.dpy = XOpenDisplay(NULL))) die("Can't open display\n");

@@ -1636,7 +1638,8 @@ | ExposureMask | VisibilityChangeMask | StructureNotifyMask

| ButtonMotionMask | ButtonPressMask | ButtonReleaseMask; attrs.colormap = xw.cmap; - xw.win = XCreateWindow(xw.dpy, XRootWindow(xw.dpy, xw.scr), 0, 0, + parent = opt_embed ? strtol(opt_embed, NULL, 0) : XRootWindow(xw.dpy, xw.scr); + xw.win = XCreateWindow(xw.dpy, parent, 0, 0, xw.w, xw.h, 0, XDefaultDepth(xw.dpy, xw.scr), InputOutput, XDefaultVisual(xw.dpy, xw.scr), CWBackPixel | CWBorderPixel | CWBitGravity | CWEventMask

@@ -1942,6 +1945,9 @@ if(++i < argc) opt_title = argv[i];

break; case 'c': if(++i < argc) opt_class = argv[i]; + break; + case 'w': + if(++i < argc) opt_embed = argv[i]; break; case 'e': /* eat every remaining arguments */