On 2018-07-30T18:52:11+0200, Timur Fayzrakhmanov wrote:
> Halo!
> 
> I've tried to change color scheme using the following project
> https://github.com/chriskempson/base16-shell. But I didn't get a success.
> It seems like the colors are hardcoded at config.def.h and can not be
> changed then. Unfortunately, I don't know well internals of the st nor the
> terminal emulators in general so I hope to get a hint.
> Thank you all.

As others have said, the right way to do this is to change config.h
and recompile. However:

The 256-color palette of st is mutable, since st supports the
can-change-color property. Try something like

        printf '\033]4;0;rgb:10/20/30\033\\'

That should change all black in the current window to a sort of
dark blue. The syntax is

        printf '\033]4;N;rgb:R/G/B\033\\'

where N is a number from 0 to 255 (the color index), and R, G, B
are hex numbers from 0 to ff specifying the intensity of the color.
If you have 256color.pl (or a variation), you can run

    256color.pl
    for x in $(seq 0 255); do
        r=$(head -c 1 /dev/urandom | od -t u1 -A n | tr -d ' ')
        g=$(head -c 1 /dev/urandom | od -t u1 -A n | tr -d ' ')
        b=$(head -c 1 /dev/urandom | od -t u1 -A n | tr -d ' ')
        printf '\033]4;%s;rgb:%2x/%2x/%2x\033\\' ${x} ${r} ${g} ${b}
    done

This is handled in st.c around line 1858, if you want to see more.

-- 
S. Gilles

Reply via email to