nordtheme / tmux

An arctic, north-bluish clean and elegant tmux color theme.
https://www.nordtheme.com/ports/tmux
MIT License
1.06k stars 141 forks source link

Sakura term truecolor weirdness #46

Closed kierun closed 4 years ago

kierun commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

@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 commented 4 years ago

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 commented 4 years ago

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 commented 4 years ago

@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

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

Thank you.

screenshot

arcticicestudio commented 4 years ago

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 commented 4 years ago

Sorry, I don't know what you mean neutral_face

:grin: 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.

kierun commented 4 years ago

Sakura screen shot:

screenshot-sakura

ST screen shot:

screenshot-st

Anyone cares to suggest what I am doing wrong?

kierun commented 4 years ago

@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 commented 4 years ago

Those colours are wrong! Bah.

kierun commented 4 years ago

nord.patch.gz

Nord patch to Sakura latest version.

Could someone test this please?

kierun commented 4 years ago

Untitled

kierun commented 4 years ago

Up steam bug report.

arcticicestudio commented 4 years ago

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

kierun commented 4 years ago

@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 commented 4 years ago

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 commented 4 years ago

@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 commented 4 years ago

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 commented 4 years ago

How does this look to you?

screenshot

kierun commented 4 years ago

Hated the background colour, so changed it to this:

screenshot

Does that look better?

arcticicestudio commented 4 years ago

I guess these colors match fine now 😄

kierun commented 4 years ago

Updated upstream with patch.

kierun commented 4 years ago

Patch has been committed/

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

arcticicestudio commented 4 years ago

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 commented 4 years ago

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.