superfile icon indicating copy to clipboard operation
superfile copied to clipboard

Theme colors look wrong on custom st build

Open siduck opened this issue 10 months ago • 12 comments

This is gruvbox theme

image

I do have true color support in my terminal, idk why the colors show wrong :thinking:

siduck avatar Apr 24 '24 00:04 siduck

Do you mean background color? Can you try changing the theme to something else?

yorukot avatar Apr 24 '24 06:04 yorukot

image

nord looks like that

siduck avatar Apr 24 '24 06:04 siduck

It looks like only the background color is wrong. Can you try using different terminals?

Thank you so much for the test!

yorukot avatar Apr 24 '24 17:04 yorukot

it works on all other terminals, and even other ST builds but not mine :((

siduck avatar Apr 25 '24 00:04 siduck

It seems to be a terminal issue. :( What is your terminal?

yorukot avatar Apr 25 '24 08:04 yorukot

https://github.com/siduck/st

this is the original terminal https://st.suckless.org/

and we add patches to add new features in it

siduck avatar Apr 25 '24 08:04 siduck

idk how your programs sets colors, but my terminal does support true colors , i use it all the time in neovim.

@bakkeby I tried your build and it doesnt have this issue, have you added any patch for it?

siduck avatar Apr 25 '24 08:04 siduck

Hi @siduck,

in the context of st yes the alpha patch is too bright.

I added these changes which makes the colours look the same as in other terminals: https://github.com/bakkeby/st-flexipatch/commit/f7730166807252159475a77976b63545f970d55f

bakkeby avatar Apr 25 '24 08:04 bakkeby

Hi @siduck,

in the context of st yes the alpha patch is too bright.

I added these changes which makes the colours look the same as in other terminals: bakkeby/st-flexipatch@f773016

i added those, didnt work

image

siduck avatar Apr 25 '24 11:04 siduck

@siduck trying your build I see that it spits out this when superfile is started:

erresc: invalid color j=258, p=?
erresc: invalid color j=259, p=?
erresc: invalid color j=258, p=?

In st.c color reset section this is what is in your build.

		case 104: /* color reset, here p = NULL */
			if (par == 10)
				j = defaultfg;
			else if (par == 11)
				j = defaultbg;
			else if (par == 12)
				j = defaultcs;
			else
				j = (narg > 1) ? atoi(strescseq.args[1]) : -1;

			if (xsetcolorname(j, p)) {
				if (par == 104 && narg <= 1)
					return; /* color reset without parameter */
				fprintf(stderr, "erresc: invalid color j=%d, p=%s\n",
					j, p ? p : "(null)");
			} else {
				/*
				 * TODO if defaultbg color is changed, borders
				 * are dirty
				 */
				if (j == defaultbg)
					xclearwin();
				redraw();
			}
			return;

whereas in a bare st we have:

		case 104: /* color reset */
			j = (narg > 1) ? atoi(strescseq.args[1]) : -1;

			if (p && !strcmp(p, "?")) {
				osc_color_response(j, 0, 1);
			} else if (xsetcolorname(j, p)) {
				if (par == 104 && narg <= 1) {
					xloadcols();
					return; /* color reset without parameter */
				}
				fprintf(stderr, "erresc: invalid color j=%d, p=%s\n",
				        j, p ? p : "(null)");
			} else {
				/*
				 * TODO if defaultbg color is changed, borders
				 * are dirty
				 */
				tfulldirt();
			}
			return;

Looks to come from changes that NRK introduced:

https://git.suckless.org/st/commit/8629d9a1da72cc18568a8f146307b0e939b77ebf.html https://git.suckless.org/st/commit/8629d9a1da72cc18568a8f146307b0e939b77ebf.html https://git.suckless.org/st/commit/7e8050cc621f27002eaf1be8114dee2497beff91.html

Not sure if that is related though as I don't know how to reproduce your issue.

bakkeby avatar Apr 25 '24 14:04 bakkeby

image This problem also seems to exist in termius

yorukot avatar Apr 26 '24 09:04 yorukot