View Raw SPL
/* darkmode.spl */

/* setup darkmode color scheme */

/* toolbar colors */
static ToolWhite_rgb = 0xffffff;
static ToolGrey_rgb  = 0x2e2e2e;
static ToolBlue_rgb  = 0xe7b675;
static ToolRed_rgb   = 0x5951C5;
static ToolGreen_rgb = 0x6dab90;
static ToolBgDM_rgb  = 0x434343;


/* experimental Dark Mode color configuration */
darkmode(force=1, redraw = 3)
{
        if (isdarkmodesupported())
        {
                /* toolbar colors */
                darkmode_settbcolors();

                /* define dark mode colors */
                dmseriescolors();

                /* set application colors */
                darkmode_setappcolors(force);

                /* clock */
                setconfig("clock_3d", 0);

                if (redraw)
                {
                        redrawall(redraw);
                }
        }
}


/* set toolbar colors */
darkmode_settbcolors()
{
        local j, tstart, tend;

        /* start index of RGB colors */
        tstart = getnumcolors(4);

        /* number of color parameters */
        tend = getnumcolors(3);

        /* default all buttons to white */
        loop (j = tstart..tend)
        {
                setgcolor(j, ToolWhite_rgb);
        }

        /* set toolbar RGB colors */
        setgcolor(tstart + 11, ToolGrey_rgb);
        setgcolor(tstart + 12, ToolBlue_rgb);

        setgcolor(tstart + 24, ToolRed_rgb);

        setgcolor(tstart + 30, ToolBlue_rgb);

        setgcolor(tstart + 32, ToolBlue_rgb);
        setgcolor(tstart + 33, ToolBlue_rgb);

        setgcolor(tstart + 41, ToolGrey_rgb);

        setgcolor(tstart + 45, ToolGrey_rgb);
        setgcolor(tstart + 46, ToolBlue_rgb);

        setgcolor(tstart + 58, ToolRed_rgb);

        setgcolor(tstart + 64, ToolBlue_rgb);
        setgcolor(tstart + 65, ToolBlue_rgb);
        setgcolor(tstart + 66, ToolBlue_rgb);

        setgcolor(tstart + 94, ToolBlue_rgb);
        setgcolor(tstart + 95, ToolBlue_rgb);

        /* data cursor */
        setgcolor(tstart + 98, ToolBlue_rgb);

        setgcolor(tstart + 114, ToolBlue_rgb);
        setgcolor(tstart + 115, ToolBlue_rgb);

        /* text cursor */
        setgcolor(tstart + 132, ToolBlue_rgb);
        setgcolor(tstart + 133, ToolBlue_rgb);

        /* drawing toolbar */
        setgcolor(tstart + 139, ToolGreen_rgb);

        setgcolor(tstart + 141, ToolBlue_rgb);
        setgcolor(tstart + 143, ToolBlue_rgb);
        setgcolor(tstart + 145, ToolRed_rgb);
        setgcolor(tstart + 147, ToolBlue_rgb);
        setgcolor(tstart + 165, ToolBlue_rgb);

        setgcolor(tstart + 167, ToolGreen_rgb);

        setgcolor(tstart + 169, ToolRed_rgb);
        setgcolor(tstart + 170, ToolBlue_rgb);
        setgcolor(tstart + 171, ToolBlue_rgb);

        setgcolor(tstart + 175, ToolGreen_rgb);
        setgcolor(tstart + 178, ToolBlue_rgb);
        setgcolor(tstart + 180, ToolBlue_rgb);
        setgcolor(tstart + 182, ToolBlue_rgb);
}


/* dark mode application colors */
darkmode_setappcolors(force)
{
        if (force)
        {
                /* common application colors */
                setappcolors();
        }

        /* cursor popup color */
        setgcolor(53, eval("sys_text_color"));
        setgcolor(54, eval("sys_list_text"));

        /* tooltips */
        setgcolor(33, eval("white"));
        setgcolor(34, eval("sys_shadow"));

        /* toolbar */
        setconfig("toolbar_active_fg",  ToolBgDM_rgb);
        setconfig("toolbar_active_bg",  ToolBgDM_rgb);
        setconfig("toolbar_reverse_fg", ToolBgDM_rgb);
}