On Sun, Sep 06, 2020 at 05:53:41PM +1200, John Collis wrote: > Also added _NET_WM_ICON_NAME. > --- > st.c | 9 +++++++++ > win.h | 1 + > x.c | 16 +++++++++++++++- > 3 files changed, 25 insertions(+), 1 deletion(-) > > diff --git a/st.c b/st.c > index 8cf7245..ccef9c4 100644 > --- a/st.c > +++ b/st.c > @@ -1911,6 +1911,7 @@ strhandle(void) > { > char *p = NULL, *dec; > int j, narg, par; > + static int winname = 0; > > term.esc &= ~(ESC_STR_END|ESC_STR); > strparse(); > @@ -1920,7 +1921,15 @@ strhandle(void) > case ']': /* OSC -- Operating System Command */ > switch (par) { > case 0: > + if (narg > 1) { > + xsettitle(strescseq.args[1]); > + xseticontitle(strescseq.args[1]); > + } > + return; > case 1: > + if (narg > 1) > + xseticontitle(strescseq.args[1]); > + return; > case 2: > if (narg > 1) > xsettitle(strescseq.args[1]); > diff --git a/win.h b/win.h > index bc0d180..8b5b618 100644 > --- a/win.h > +++ b/win.h > @@ -30,6 +30,7 @@ void xdrawline(Line, int, int, int); > void xfinishdraw(void); > void xloadcols(void); > int xsetcolorname(int, const char *); > +void xseticontitle(char *); > void xsettitle(char *); > int xsetcursor(int); > void xsetmode(int, unsigned int); > diff --git a/x.c b/x.c > index c8b5b51..ea6789b 100644 > --- a/x.c > +++ b/x.c > @@ -109,7 +109,7 @@ typedef struct { > Window win; > Drawable buf; > GlyphFontSpec *specbuf; /* font spec buffer used for rendering */ > - Atom xembed, wmdeletewin, netwmname, netwmpid; > + Atom xembed, wmdeletewin, netwmname, netwmiconname, netwmpid; > struct { > XIM xim; > XIC xic; > @@ -1233,6 +1233,7 @@ xinit(int cols, int rows) > xw.xembed = XInternAtom(xw.dpy, "_XEMBED", False); > xw.wmdeletewin = XInternAtom(xw.dpy, "WM_DELETE_WINDOW", False); > xw.netwmname = XInternAtom(xw.dpy, "_NET_WM_NAME", False); > + xw.netwmiconname = XInternAtom(xw.dpy, "_NET_WM_ICON_NAME", False); > XSetWMProtocols(xw.dpy, xw.win, &xw.wmdeletewin, 1); > > xw.netwmpid = XInternAtom(xw.dpy, "_NET_WM_PID", False); > @@ -1632,6 +1633,19 @@ xsetenv(void) > setenv("WINDOWID", buf, 1); > } > > +void > +xseticontitle(char *p) > +{ > + XTextProperty prop; > + DEFAULT(p, opt_title); > + > + Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle, > + &prop); > + XSetWMIconName(xw.dpy, xw.win, &prop); > + XSetTextProperty(xw.dpy, xw.win, &prop, xw.netwmiconname); > + XFree(prop.value); > +} > + > void > xsettitle(char *p) > { > -- > 2.28.0 > >
Hi, Could you give a (short) description what you use this feature for in st? Alternatively you can add the patch to the wiki. Thanks, -- Kind regards, Hiltjo