From 2d74e49c4faf4d9a6a5901e22cab8df1f0c5f4c5 Mon Sep 17 00:00:00 2001 From: Utkarsh Verma Date: Sat, 24 Sep 2022 10:43:14 +0200 Subject: [PATCH] Add function for changing alpha (#47) Co-authored-by: Stein Gunnar Bakkeby --- config.def.h | 8 ++++++++ patch/alpha.c | 32 ++++++++++++++++++++++++++++++++ patch/alpha.h | 5 +++++ patch/x_include.c | 3 +++ patch/x_include.h | 3 +++ 5 files changed, 51 insertions(+) create mode 100644 patch/alpha.c create mode 100644 patch/alpha.h diff --git a/config.def.h b/config.def.h index 02fa4ca..ff6b5b3 100644 --- a/config.def.h +++ b/config.def.h @@ -393,6 +393,14 @@ static Shortcut shortcuts[] = { { TERMMOD, XK_Home, zoomreset, {.f = 0} }, { TERMMOD, XK_C, clipcopy, {.i = 0} }, { TERMMOD, XK_V, clippaste, {.i = 0} }, + #if ALPHA_PATCH + { TERMMOD, XK_O, changealpha, {.f = +0.05} }, + { TERMMOD, XK_P, changealpha, {.f = -0.05} }, + #if ALPHA_FOCUS_HIGHLIGHT_PATCH + //{ TERMMOD, XK_, changealphaunfocused, {.f = +0.05} }, + //{ TERMMOD, XK_, changealphaunfocused, {.f = -0.05} }, + #endif // ALPHA_FOCUS_HIGHLIGHT_PATCH + #endif // ALPHA_PATCH #if SCROLLBACK_PATCH { ShiftMask, XK_Page_Up, kscrollup, {.i = -1}, S_PRI }, { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1}, S_PRI }, diff --git a/patch/alpha.c b/patch/alpha.c new file mode 100644 index 0000000..6a793a4 --- /dev/null +++ b/patch/alpha.c @@ -0,0 +1,32 @@ +float +clamp(float value, float lower, float upper) { + if (value < lower) + return lower; + if (value > upper) + return upper; + return value; +} + +void +changealpha(const Arg *arg) +{ + if ((alpha > 0 && arg->f < 0) || (alpha < 1 && arg->f > 0)) + alpha += arg->f; + alpha = clamp(alpha, 0.0, 1.0); + xloadcols(); + redraw(); + fprintf(stderr, "changealpha %f\n", arg->f); +} + +#if ALPHA_FOCUS_HIGHLIGHT_PATCH +void +changealphaunfocused(const Arg *arg) +{ + if ((alphaUnfocused > 0 && arg->f < 0) || (alphaUnfocused < 1 && arg->f > 0)) + alphaUnfocused += arg->f; + alphaUnfocused = clamp(alphaUnfocused, 0.0, 1.0); + xloadcols(); + redraw(); + fprintf(stderr, "changealphaunfocused %f\n", arg->f); +} +#endif // ALPHA_FOCUS_HIGHLIGHT_PATCH diff --git a/patch/alpha.h b/patch/alpha.h new file mode 100644 index 0000000..2d01830 --- /dev/null +++ b/patch/alpha.h @@ -0,0 +1,5 @@ +static float clamp(float value, float lower, float upper); +static void changealpha(const Arg *); +#if ALPHA_FOCUS_HIGHLIGHT_PATCH +static void changealphaunfocused(const Arg *arg); +#endif // ALPHA_FOCUS_HIGHLIGHT_PATCH diff --git a/patch/x_include.c b/patch/x_include.c index 19d2a30..cd058a1 100644 --- a/patch/x_include.c +++ b/patch/x_include.c @@ -1,4 +1,7 @@ /* Patches */ +#if ALPHA_PATCH +#include "alpha.c" +#endif #if BACKGROUND_IMAGE_PATCH #include "background_image_x.c" #endif diff --git a/patch/x_include.h b/patch/x_include.h index a737408..3eb1d19 100644 --- a/patch/x_include.h +++ b/patch/x_include.h @@ -1,4 +1,7 @@ /* Patches */ +#if ALPHA_PATCH +#include "alpha.h" +#endif #if BACKGROUND_IMAGE_PATCH #include "background_image_x.h" #endif