Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sakura term truecolor weirdness #46

Closed
kierun opened this issue May 4, 2020 · 26 comments
Closed

Sakura term truecolor weirdness #46

kierun opened this issue May 4, 2020 · 26 comments

Comments

@kierun
Copy link

kierun commented May 4, 2020

I tried to get another terminal to fix another bug and got nightly confused. Here is the terminal session with some debugging:

screenshot

Clearly the last command does not output the right colours and therefore I cannot use the Nord theme -- or at least, no how it is intended.

What am I doing wrong?

@kierun
Copy link
Author

kierun commented May 5, 2020

In case any of that matters:

; sakura --version
sakura version is 3.7.0
; uname -a
Linux nightwatch 5.5.17-200.fc31.x86_64 #1 SMP Mon Apr 13 15:29:42 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
; cat /etc/fedora-release
Fedora release 31 (Thirty One)
; ldd `which sakura`
        linux-vdso.so.1 (0x00007ffff1bbf000)
        libgtk-3.so.0 => /lib64/libgtk-3.so.0 (0x00007fa2c6d22000)
        libgdk-3.so.0 => /lib64/libgdk-3.so.0 (0x00007fa2c6c1e000)
        libpango-1.0.so.0 => /lib64/libpango-1.0.so.0 (0x00007fa2c6bd0000)
        libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007fa2c69f4000)
        libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007fa2c6998000)
        libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fa2c6870000)
        libvte-2.91.so.0 => /lib64/libvte-2.91.so.0 (0x00007fa2c67f9000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fa2c6630000)
        libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007fa2c662a000)
        libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x00007fa2c6619000)
        libX11.so.6 => /lib64/libX11.so.6 (0x00007fa2c64d3000)
        libXi.so.6 => /lib64/libXi.so.6 (0x00007fa2c64c1000)
        libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007fa2c64b6000)
        libcairo-gobject.so.2 => /lib64/libcairo-gobject.so.2 (0x00007fa2c64aa000)
        libcairo.so.2 => /lib64/libcairo.so.2 (0x00007fa2c6387000)
        libgdk_pixbuf-2.0.so.0 => /lib64/libgdk_pixbuf-2.0.so.0 (0x00007fa2c635b000)
        libatk-1.0.so.0 => /lib64/libatk-1.0.so.0 (0x00007fa2c6332000)
        libatk-bridge-2.0.so.0 => /lib64/libatk-bridge-2.0.so.0 (0x00007fa2c62fa000)
        libwayland-client.so.0 => /lib64/libwayland-client.so.0 (0x00007fa2c62e7000)
        libepoxy.so.0 => /lib64/libepoxy.so.0 (0x00007fa2c61b3000)
        libfribidi.so.0 => /lib64/libfribidi.so.0 (0x00007fa2c6194000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fa2c604e000)
        libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x00007fa2c6035000)
        libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007fa2c5f3d000)
        libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007fa2c5ef3000)
        libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007fa2c5e32000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa2c5e10000)
        libXinerama.so.1 => /lib64/libXinerama.so.1 (0x00007fa2c5e0b000)
        libXrandr.so.2 => /lib64/libXrandr.so.2 (0x00007fa2c5dfe000)
        libXcursor.so.1 => /lib64/libXcursor.so.1 (0x00007fa2c5df1000)
        libXcomposite.so.1 => /lib64/libXcomposite.so.1 (0x00007fa2c5dea000)
        libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007fa2c5de5000)
        libxkbcommon.so.0 => /lib64/libxkbcommon.so.0 (0x00007fa2c5da2000)
        libwayland-cursor.so.0 => /lib64/libwayland-cursor.so.0 (0x00007fa2c5d98000)
        libwayland-egl.so.1 => /lib64/libwayland-egl.so.1 (0x00007fa2c5d93000)
        libXext.so.6 => /lib64/libXext.so.6 (0x00007fa2c5d7e000)
        librt.so.1 => /lib64/librt.so.1 (0x00007fa2c5d71000)
        libthai.so.0 => /lib64/libthai.so.0 (0x00007fa2c5d65000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fa2c5d4b000)
        libmount.so.1 => /lib64/libmount.so.1 (0x00007fa2c5ce8000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fa2c5cbb000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fa2c5ca2000)
        libffi.so.6 => /lib64/libffi.so.6 (0x00007fa2c5c95000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fa2c5c21000)
        libgnutls.so.30 => /lib64/libgnutls.so.30 (0x00007fa2c5a3b000)
        libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fa2c59a9000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fa2c57b0000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fa2c7484000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fa2c57a7000)
        libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fa2c577c000)
        libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007fa2c56d4000)
        libpng16.so.16 => /lib64/libpng16.so.16 (0x00007fa2c569e000)
        libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007fa2c5699000)
        libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007fa2c5689000)
        libXrender.so.1 => /lib64/libXrender.so.1 (0x00007fa2c567a000)
        libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007fa2c5624000)
        libatspi.so.0 => /lib64/libatspi.so.0 (0x00007fa2c55ec000)
        libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007fa2c55c7000)
        libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fa2c5599000)
        libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fa2c5583000)
        libdatrie.so.1 => /lib64/libdatrie.so.1 (0x00007fa2c5579000)
        libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fa2c5522000)
        libp11-kit.so.0 => /lib64/libp11-kit.so.0 (0x00007fa2c53f6000)
        libidn2.so.0 => /lib64/libidn2.so.0 (0x00007fa2c53d4000)
        libunistring.so.2 => /lib64/libunistring.so.2 (0x00007fa2c524e000)
        libtasn1.so.6 => /lib64/libtasn1.so.6 (0x00007fa2c5238000)
        libnettle.so.7 => /lib64/libnettle.so.7 (0x00007fa2c51fb000)
        libhogweed.so.5 => /lib64/libhogweed.so.5 (0x00007fa2c51c9000)
        libgmp.so.10 => /lib64/libgmp.so.10 (0x00007fa2c514c000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fa2c5132000)
        libXau.so.6 => /lib64/libXau.so.6 (0x00007fa2c512a000)
        libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007fa2c5077000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fa2c504e000)
        liblz4.so.1 => /lib64/liblz4.so.1 (0x00007fa2c502d000)
        libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x00007fa2c4f0f000)
        libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007fa2c4eea000)

@arcticicestudio
Copy link
Contributor

The “System Colors“ are the ones provided by the terminal and most terminals provide ways to customize or import these "theme" colors. It looks like the current colors are coming from Solarized (a popular theme shipped with almost every terminal by default).
Nord [currently doesn't have an official port] for Sakura so you need to adapt the colors to the terminal settings on your own.
If you're looking for a terminal that is already supported by Nord and based on GTK and VTE, make sure to check out Tilix and the official Nord Tilix port.

@kierun
Copy link
Author

kierun commented May 6, 2020

@arcticicestudio I get a Oh, there's nothing here yet on the Nord Tilix page. I installed the theme from github and this is what I get:

screenshot


I shall try to make a theme for Sakura and post it here.

@kierun
Copy link
Author

kierun commented May 6, 2020

Urgh. I appears that sakura deals with colour pallets via its source code. They are hard coded. Here is the solarized one, from the source repository

const GdkRGBA solarized_dark_palette[PALETTE_SIZE] = {
	{0.027451, 0.211765, 0.258824, 1}, // 0 base02 (background)
	{0.862745, 0.196078, 0.184314, 1}, // 1 red
	{0.521569, 0.600000, 0.000000, 1}, // 2 green
	{0.709804, 0.537255, 0.000000, 1}, // 3 yellow
	{0.149020, 0.545098, 0.823529, 1}, // 4 blue
	{0.827451, 0.211765, 0.509804, 1}, // 5 magenta
	{0.164706, 0.631373, 0.596078, 1}, // 6 cyan
	{0.933333, 0.909804, 0.835294, 1}, // 7 base2 (foreground)
	{0.000000, 0.168627, 0.211765, 1}, // 8 base03
	{0.796078, 0.294118, 0.086275, 1}, // 9 orange
	{0.345098, 0.431373, 0.458824, 1}, // 10 base01
	{0.396078, 0.482353, 0.513725, 1}, // 11 base00
	{0.513725, 0.580392, 0.588235, 1}, // 12 base0
	{0.423529, 0.443137, 0.768627, 1}, // 13 violet
	{0.576471, 0.631373, 0.631373, 1}, // 14 base1
	{0.992157, 0.964706, 0.890196, 1}  // 15 base3
};

So, it should be easy to modify this to get the Nord theme in. However, I have no time to do it justice. I will try to get tilix working.

If anyone else wants to attempt it, I am happy to test/help.

@arcticicestudio
Copy link
Contributor

The Tilix port is still pending the Nord Docs data transition, but the description contains a link to the GitHub repository. Based on your screenshot I guess the problem regarding missing colors is solved so I close this ticket for now
Feel free to create a theme on your own and maybe post a new request issue in the main Nord repository so other users can also use your custom theme while a official port is not available yet.

@kierun
Copy link
Author

kierun commented May 7, 2020

@arcticicestudio I got it alomost working. However, the cube I use is not correct. I wondering if you could help me here: I need a 16 color palettes where

  • Text displayed in the first 8 colors (0-7) is meek (uses thin strokes).
  • Text displayed in the second 8 colors (8-15) is bold (uses thick strokes).

Do you know where I could find the correct one in the Nord docs?

Thank you.

screenshot

@arcticicestudio
Copy link
Contributor

Sorry, I don't know what you mean 😐
Maybe take a look at the “8-bit“ section on the Wikipedia page about “ANSI Escape Codes“. This should explain how colors in terminals are working. You can use existing terminal ports for Alacritty or Xresources to get some examples how the colors of Nord are ordered for terminals.

@kierun
Copy link
Author

kierun commented May 8, 2020

Sorry, I don't know what you mean neutral_face

😁 Me neither! I am just looking at the comments in the source. Not the best comments I have seen.

Maybe take a look at the “8-bit“ section on the Wikipedia page about “ANSI Escape Codes“. This should explain how colors in terminals are working. You can use existing terminal ports for Alacritty or Xresources to get some examples how the colors of Nord are ordered for terminals.

Thanks. Will have a look.

Could you reopen this and add a "help wanted" tag?

Thank you.

@arcticicestudio arcticicestudio added the help wanted GitHub filter label for contributors to signal that help is needed label May 8, 2020
@kierun
Copy link
Author

kierun commented May 10, 2020

Sakura screen shot:

screenshot-sakura

ST screen shot:

screenshot-st

Anyone cares to suggest what I am doing wrong?

@kierun
Copy link
Author

kierun commented May 10, 2020

@arcticicestudio From Solarized, what are the Nord corresponding colours to the following?

base03 → #EBCB8B
orange
base01 → #BF616A
base00 → #3B4252
base0 → #3B4252
violet
base1 → #3B4252
base3 → #4C566A

@kierun
Copy link
Author

kierun commented May 12, 2020

Those colours are wrong! Bah.

@kierun
Copy link
Author

kierun commented May 12, 2020

nord.patch.gz

Nord patch to Sakura latest version.

Could someone test this please?

@kierun
Copy link
Author

kierun commented May 12, 2020

Untitled

@kierun
Copy link
Author

kierun commented May 13, 2020

Up steam bug report.

@arcticicestudio
Copy link
Contributor

Thanks for creating the upstream bug report 👍
I'll leave this issue open to allow to track the progress and for other users affected by this.

@kierun
Copy link
Author

kierun commented Jun 4, 2020

@arcticicestudio I have had no news from the developers since I posted this about 22 days ago… Does not look good to be honest.

@arcticicestudio
Copy link
Contributor

arcticicestudio commented Jun 4, 2020

Well, you've also posted the link to the report here 22 days ago and I only had time again today to spend on some open source projects to reply here 😄
Most project maintainers doing this in their free time so sometimes patience is required since "real life" should always come first.

Anyway, I'll check the upstream issue from time to time and will close it when it seems that Sakura is not actively developed anymore.

@kierun
Copy link
Author

kierun commented Jun 17, 2020

@arcticicestudio

Got a reply! This looks good.

Thanks for your patch. The first 8 colors are standard ones, and the
last 8 colors are the high intensity(bold) ones. Let me know when you
have a final version of your patch and I will apply it.

Can you point me to where I can find those? Thank you.

@arcticicestudio
Copy link
Contributor

Nord uses a scheme for the 16 ANSI colors that is a bit different. Instead of using brighter versions of the first 8 colors I've tried to include as many colors from Nord's color palettes as possible, so e.g. color 6 (blue) is nord8 while the brighter version color 12 is nord9 which is in turn even darker.
Anyway, you can use the mapping for the patch from other projects like Nord Xresources which will look similar to the screenshot below.

@kierun
Copy link
Author

kierun commented Jun 30, 2020

How does this look to you?

screenshot

@kierun
Copy link
Author

kierun commented Jun 30, 2020

Hated the background colour, so changed it to this:

screenshot

Does that look better?

@arcticicestudio
Copy link
Contributor

I guess these colors match fine now 😄

@kierun
Copy link
Author

kierun commented Jul 3, 2020

@kierun
Copy link
Author

kierun commented Jul 6, 2020

Patch has been committed/

@arcticicestudio Could you add Sakura to the list of supported terminals?

@arcticicestudio
Copy link
Contributor

arcticicestudio commented Jul 13, 2020

Actually there is no list of supported terminals but official port projects. Since the support for Nord has been patched into Sakura itself this is out-of-scope. There are many projects that added native support for Nord like e.g. OniVim or Bitwarden which is outside the area of responsibility for me.

@kierun
Copy link
Author

kierun commented Jul 14, 2020

No worries. As long as there is a note somewhere that sakura supports Nord, that's good enough.

Many thanks indeed for your help in getting this resolved.

I shall close this now. If you feel there is more to do, please re-open and let me know.

@kierun kierun closed this as completed Jul 14, 2020
@svengreb svengreb added scope-quality and removed status-tracking help wanted GitHub filter label for contributors to signal that help is needed labels Feb 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants