commit 0e391b50a6ae9a90128249eae31681afc6cfc4ac
Author: fennec <fennec>
Date:   Thu Dec 21 14:24:53 2023 +0000

    Patch to add individual colors to launcher icons

diff --git a/dwm.suckless.org/patches/keypressrelease/index.md 
b/dwm.suckless.org/patches/keypressrelease/index.md
index f3a1ee54..73ed4f79 100644
--- a/dwm.suckless.org/patches/keypressrelease/index.md
+++ b/dwm.suckless.org/patches/keypressrelease/index.md
@@ -1,38 +1,142 @@
-keypressrelease
-===============
+launcher-colors
+========
 
 Description
 -----------
-This patch lets you specify whether a key binding should be executed at the
-_KeyPress_ or _KeyRelease_ event. Executing on _KeyRelease_ fixes bugs such as
-`scrot -s` [failing to execute from a key 
binding](//lists.suckless.org/dev/1108/9185.html)
-due to keys not being released in time.
+This patch adds colors to the launcher icons which you click to launch 
programs and commands.
 
-Note that the new parameter must be added to all non-standard key bindings
-manually after patching.
+Usage:
+------
+
+File config.def.h
+
+Append new color scheme to the colors array.
+Example below.
+
+    static const char *colors[][3]      = {
+        /*                     fg       bg      border */
+        [SchemeNorm]       = { gray3,   black,  gray2 },
+        [SchemeSel]        = { gray4,   blue,   blue  },
+        [SchemeTitle]      = { white,   black,  black  }, // active window 
title
+        [TabSel]           = { blue,    gray2,  black },
+        [TabNorm]          = { gray3,   black,  black },
+        [SchemeTag]        = { gray3,   black,  black },
+        [SchemeTag1]       = { blue,    black,  black },
+        [SchemeTag2]       = { red,     black,  black },
+        [SchemeTag3]       = { orange,  black,  black },
+        [SchemeTag4]       = { green,   black,  black },
+        [SchemeTag5]       = { pink,    black,  black },
+        [SchemeLayout]     = { green,   black,  black },
+        [SchemeBtnPrev]    = { green,   black,  black },
+        [SchemeBtnNext]    = { yellow,  black,  black },
+        [SchemeBtnClose]   = { red,     black,  black },
+        [SchemeColorEW]    = { orange,   black,  black }, // color ewww 
launcher icon
+        [SchemeColorFF]    = { yellow,   black,  black }, // color firefox 
launcher icon
+        [SchemeColorDS]    = { red,   black,  black }, // color discord 
launcher icon
+        [SchemeColorTG]    = { green,   black,  black }, // color telegram 
launcher icon
+        [SchemeColorMS]    = { blue,   black,  black }, // color mintstick 
launcher icon
+        [SchemeColorPC]    = { pink,   black,  black }, // color pavucontrol 
launcher icon
+    };
+
+The command names defined for the launchers are important since these are used 
again later.
+
+    static const Launcher launchers[] = {
+        /* command     name to display */
+        { eww,         "" },
+        { firefox,         "" },
+        { discord,       "ﱲ" },
+        { telegram,      "" },
+        { mintstick,     "虜" },
+        { pavucontrol,   "墳" },
+    };
+
+File dwm.c
+
+Append new color schemes to the enum.
+Example below.
+
+    enum {
+        SchemeNorm,
+        SchemeSel,
+        SchemeTitle,
+        SchemeTag,
+        SchemeTag1,
+        SchemeTag2,
+        SchemeTag3,
+        SchemeTag4,
+        SchemeTag5,
+        SchemeLayout,
+        TabSel,
+        TabNorm,
+        SchemeBtnPrev,
+        SchemeBtnNext,
+        SchemeBtnClose,
+        SchemeColorEW,
+        SchemeColorFF,
+        SchemeColorDS,
+        SchemeColorTG,
+        SchemeColorMS,
+        SchemeColorPC
+    }; /* color schemes */
+
+File dwm.c
 
-Usage
------
-A working `scrot -s` key binding:
+Navigate to the line where the following is defined:
 
-       { KeyRelease, 0,                XK_Print,  spawn,          SHCMD("scrot 
-s") },
+    w = TEXTW(m->ltsymbol);
 
-Or to only display the bar while the toggle key is held down (requires that it
-is hidden to start with), add:
+Comment out line
 
-    { KeyRelease, MODKEY,           XK_b,      togglebar,      {0} },
+    drw_setscheme(drw, scheme[SchemeLayout]);
 
-Alternatives
-------------
+Inside the for loop add if conditions to set the different color schemes for 
each launcher.
 
-An alternative is to put a tiny sleep right before executing scrot.
+Example below.
+Note. The command name should match the ones defined inside config.def.h
 
-    { ControlMask,                  XK_Print,  spawn,          SHCMD("sleep 
0.2; scrot -s") },
+    w = TEXTW(m->ltsymbol);
+    //drw_setscheme(drw, scheme[SchemeLayout]);
+    x = drw_text(drw, x, 0, w, bh, lrpad / 2, m->ltsymbol, 0);
+    
+    for (i = 0; i < LENGTH(launchers); i++)
+    {
+        if (launchers[i].command == eww){
+            drw_setscheme(drw, scheme[SchemeColorEW]);
+        }
+
+        if (launchers[i].command == firefox){
+          drw_setscheme(drw, scheme[SchemeColorFF]);
+        }
+
+        if (launchers[i].command == discord){
+          drw_setscheme(drw, scheme[SchemeColorDS]);
+        }
+
+        if (launchers[i].command == telegram){
+          drw_setscheme(drw, scheme[SchemeColorTG]);
+        }
+
+        if (launchers[i].command == mintstick){
+          drw_setscheme(drw, scheme[SchemeColorMS]);
+        }
+
+        if (launchers[i].command == pavucontrol){
+          drw_setscheme(drw, scheme[SchemeColorPC]);
+        }
+
+        w = TEXTW(launchers[i].name);
+
+After a rebuild.
+
+The result will be as shown below.
+
+https://imgur.com/a/JsqUKiC
 
 Download
 --------
-* [dwm-keypressrelease-6.0.diff](dwm-keypressrelease-6.0.diff)
+[dwm-launchers-colors-20231221-81aca1b.diff](dwm-launchers-colors-20231221-81aca1b.diff)
 
 Author
 ------
-* Niklas Høj - `<niklas at hoej dot me>`
+* [fennec](https://debugthis.dev) - <[email protected]>
+


Reply via email to