diff options
author | Luke Smith <luke@lukesmith.xyz> | 2020-06-02 15:06:12 -0400 |
---|---|---|
committer | Luke Smith <luke@lukesmith.xyz> | 2020-06-02 15:06:12 -0400 |
commit | 3c1ef738a7327d4f2c0336c0a6a9e04769e6c730 (patch) | |
tree | a994e8fdaa7901e55216f64834e626abeab453f9 | |
parent | 9839f563e73b61008fe789107e0d0d2879834753 (diff) | |
parent | 22c71c355ca4f4e965c3d07e9ac37b0da7349255 (diff) |
Merge branch 'master' of github.com:LukeSmithxyz/st
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | config.h | 4 | ||||
-rw-r--r-- | config.mk | 4 | ||||
-rw-r--r-- | st.c | 19 | ||||
-rw-r--r-- | st.h | 1 | ||||
-rw-r--r-- | win.h | 1 | ||||
-rw-r--r-- | x.c | 9 |
7 files changed, 34 insertions, 6 deletions
@@ -43,7 +43,7 @@ Obviously, `make` is required to build. `fontconfig` is required for the default On OpenBSD, be sure to edit `config.mk` first and remove `-lrt` from the `$LIBS` before compiling. -Be sure to have a composite manager (`xcompmgr`, `compton`, etc.) running if you want transparency. +Be sure to have a composite manager (`xcompmgr`, `picom`, etc.) running if you want transparency. ## How to configure dynamically with Xresources @@ -143,8 +143,8 @@ static const char *colorname[] = { */ unsigned int defaultfg = 259; unsigned int defaultbg = 258; -static unsigned int defaultcs = 256; -static unsigned int defaultrcs = 257; +unsigned int defaultcs = 256; +unsigned int defaultrcs = 257; /* * Default shape of cursor @@ -10,6 +10,10 @@ MANPREFIX = $(PREFIX)/share/man X11INC = /usr/X11R6/include X11LIB = /usr/X11R6/lib +# include X11 in Ubuntu +# X11INC = /usr/include/X11R6 +# X11LIB = /usr/lib/X11R6 + PKG_CONFIG = pkg-config # includes and libs @@ -1943,12 +1943,23 @@ strhandle(void) } return; case 4: /* color set */ - if (narg < 3) + case 10: /* foreground set */ + case 11: /* background set */ + case 12: /* cursor color */ + if ((par == 4 && narg < 3) || narg < 2) break; - p = strescseq.args[2]; + p = strescseq.args[((par == 4) ? 2 : 1)]; /* FALLTHROUGH */ case 104: /* color reset, here p = NULL */ - j = (narg > 1) ? atoi(strescseq.args[1]) : -1; + if (par == 10) + j = defaultfg; + else if (par == 11) + j = defaultbg; + else if (par == 12) + j = defaultcs; + else + j = (narg > 1) ? atoi(strescseq.args[1]) : -1; + if (xsetcolorname(j, p)) { if (par == 104 && narg <= 1) return; /* color reset without parameter */ @@ -1959,6 +1970,8 @@ strhandle(void) * TODO if defaultbg color is changed, borders * are dirty */ + if (j == defaultbg) + xclearwin(); redraw(); } return; @@ -140,6 +140,7 @@ extern char *termname; extern unsigned int tabspaces; extern unsigned int defaultfg; extern unsigned int defaultbg; +extern unsigned int defaultcs; extern const int boxdraw, boxdraw_bold, boxdraw_braille; extern float alpha; extern MouseKey mkeys[]; @@ -37,3 +37,4 @@ void xsetpointermotion(int); void xsetsel(char *); int xstartdraw(void); void xximspot(int, int); +void xclearwin(void); @@ -814,6 +814,8 @@ xsetcolorname(int x, const char *name) XftColorFree(xw.dpy, xw.vis, xw.cmap, &dc.col[x]); dc.col[x] = ncolor; + if (x == defaultbg) + dc.col[defaultbg].color.alpha = (unsigned short)(0xffff * alpha); return 0; } @@ -830,6 +832,13 @@ xclear(int x1, int y1, int x2, int y2) } void +xclearwin(void) +{ + xclear(0, 0, win.w, win.h); +} + + +void xhints(void) { XClassHint class = {opt_name ? opt_name : "st", |