Skip to content

Commit

Permalink
Use the additional alpha-value as offset to support a changing alpha …
Browse files Browse the repository at this point in the history
…properly
  • Loading branch information
zMoooooritz committed May 6, 2021
1 parent 69925ee commit bb56685
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 7 deletions.
2 changes: 1 addition & 1 deletion Xdefaults
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
!! Transparency (0-1):
st.alpha: 0.92
st.alphaUnfocus: 0.62
st.alphaOffset: 0.3

!! Set a default font and font size as below:
st.font: Monospace-11;
Expand Down
5 changes: 3 additions & 2 deletions config.h
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,8 @@ unsigned int tabspaces = 8;

/* bg opacity */
float alpha = 0.8;
float alphaUnfocus = 0.8;
float alphaOffset = 0.0;
float alphaUnfocus;

/* Terminal colors (16 first used in escape sequence) */
static const char *colorname[] = {
Expand Down Expand Up @@ -219,7 +220,7 @@ ResourcePref resources[] = {
{ "cwscale", FLOAT, &cwscale },
{ "chscale", FLOAT, &chscale },
{ "alpha", FLOAT, &alpha },
{ "alphaUnfocus", FLOAT, &alphaUnfocus },
{ "alphaOffset", FLOAT, &alphaOffset },
};

/*
Expand Down
17 changes: 13 additions & 4 deletions x.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ static void xsetenv(void);
static void xseturgency(int);
static int evcol(XEvent *);
static int evrow(XEvent *);
static float clamp(float, float, float);

static void expose(XEvent *);
static void visibility(XEvent *);
Expand Down Expand Up @@ -319,10 +320,8 @@ changealpha(const Arg *arg)
{
if((alpha > 0 && arg->f < 0) || (alpha < 1 && arg->f > 0))
alpha += arg->f;
if(alpha < 0)
alpha = 0;
if(alpha > 1)
alpha = 1;
alpha = clamp(alpha, 0.0, 1.0);
alphaUnfocus = clamp(alpha-alphaOffset, 0.0, 1.0);

xloadcols();
redraw();
Expand Down Expand Up @@ -381,6 +380,15 @@ evrow(XEvent *e)
return y / win.ch;
}

float
clamp(float value, float lower, float upper) {
if(value < lower)
return lower;
if(value > upper)
return upper;
return value;
}

void
mousesel(XEvent *e, int done)
{
Expand Down Expand Up @@ -2298,6 +2306,7 @@ main(int argc, char *argv[])
cols = MAX(cols, 1);
rows = MAX(rows, 1);
defaultbg = MAX(LEN(colorname), 256);
alphaUnfocus = alpha-alphaOffset;
tnew(cols, rows);
xinit(cols, rows);
xsetenv();
Expand Down

0 comments on commit bb56685

Please sign in to comment.