pfetch icon indicating copy to clipboard operation
pfetch copied to clipboard

Overriding colors?

Open luanalatte opened this issue 3 years ago • 1 comments

I wanted to override the colors used in pfetch with truecolor escape sequences. I tried doing so while not modifying pfetch's code so I used PF_SOURCE but the palette was being set AFTER sourcing my script.

One option is to move the sourcing of the script to after the colors have been set.

Another one is to add a check and skip setting colors that are already set:

for _c in c1 c2 c3 c4 c5 c6 c7 c8; do
    [ -z "${!_c}" ] || continue
    esc SGR "3${_c#?}" 0
    export "$_c=$e"
done

However I am not sure if ${!_c} is POSIX sh. Also, it's possible there's a better way to do it.

It works with this on my PF_SOURCE script:

c4="${esc_c}[38;2;255;0;0m"

Although it also needs this change to https://github.com/dylanaraps/pfetch/blob/master/pfetch#L1827 so that it doesn't count the extra characters in the escape sequence:

$(printf %s "$ascii" | sed 's/\[3.*m//g')

luanalatte avatar Jun 23 '22 23:06 luanalatte

The regex is wrong. It will count everything until the last m it finds, I think. I fixed it by using

's/�\[[0-9;]*m//g'

Escape codes can use only numbers and semicolons, right? I think some other symbols can be used but those could be easily added into the regex, or someone with a little bit more knowledge could make it count only until the first 'm' it finds.

luanalatte avatar Jun 25 '22 01:06 luanalatte