oh-my-fish / theme-bobthefish

A Powerline-style, Git-aware fish theme optimized for awesome.
MIT License
1.44k stars 223 forks source link

Nerd / Powerline characters not rendering (question mark) #302

Closed bric3 closed 3 years ago

bric3 commented 3 years ago

Hi,

I have searched a lot, but I fail to see what's wrong.

I am setting up a fish / oh-my-fish on a fresh Fedora 34 over WSL 2. fish, version 3.2.1 I have the Casadia Powerline fonts as well as the Nerd font. These font seems to be properly installed, I tested with budspencer theme, and a simple script renders these characters as expected.

agnoster suffers the same issue as bobthefish barracuda theme also displays nerd / powerline glyphs

budspencer script directly use echo -n '', while bobthefish uses variables in particular an equivalent of echo -ns \uE0B0, which outputs the question mark ?

https://github.com/oh-my-fish/theme-bobthefish/blob/626bd39b002535d69e56adba5b58a1060cfb6d7b/functions/__bobthefish_glyphs.fish#L4

image image

Possibly related issue

bric3 commented 3 years ago

I may have found the solution by installing the english langpack. I think that fish silently chose C locale, which made echo map the unicode character to a question mark.

 I  /m/c/U/b/test ? ? ?  ? locale                                                               Thu Apr 29 16:28:22 2021
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
 I  ! ? /m/c/U/b/test ? ? ?  ? sudo dnf install langpacks-en                             9.4s ? Thu Apr 29 16:36:04 2021
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 0:00:15 ago on Thu Apr 29 16:35:59 2021.
Dependencies resolved.
========================================================================================================================
 Package                            Architecture            Version                       Repository               Size
========================================================================================================================
Installing:
 langpacks-en                       noarch                  3.0-14.fc34                   fedora                   10 k
Installing dependencies:
 langpacks-core-en                  noarch                  3.0-14.fc34                   fedora                   10 k
Installing weak dependencies:
 glibc-langpack-en                  x86_64                  2.33-5.fc34                   fedora                  696 k

Transaction Summary
========================================================================================================================
Install  3 Packages

Total download size: 716 k
Installed size: 6.0 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): langpacks-core-en-3.0-14.fc34.noarch.rpm                                         294 kB/s |  10 kB     00:00
(2/3): langpacks-en-3.0-14.fc34.noarch.rpm                                              260 kB/s |  10 kB     00:00
(3/3): glibc-langpack-en-2.33-5.fc34.x86_64.rpm                                         5.4 MB/s | 696 kB     00:00
------------------------------------------------------------------------------------------------------------------------
Total                                                                                   1.2 MB/s | 716 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                1/1
  Installing       : glibc-langpack-en-2.33-5.fc34.x86_64                                                           1/3
  Installing       : langpacks-core-en-3.0-14.fc34.noarch                                                           2/3
  Installing       : langpacks-en-3.0-14.fc34.noarch                                                                3/3
  Running scriptlet: langpacks-en-3.0-14.fc34.noarch                                                                3/3
  Verifying        : glibc-langpack-en-2.33-5.fc34.x86_64                                                           1/3
  Verifying        : langpacks-core-en-3.0-14.fc34.noarch                                                           2/3
  Verifying        : langpacks-en-3.0-14.fc34.noarch                                                                3/3

Installed:
  glibc-langpack-en-2.33-5.fc34.x86_64     langpacks-core-en-3.0-14.fc34.noarch     langpacks-en-3.0-14.fc34.noarch

Complete!

This worked after restarting fish, otherwise fish internals keep using the previously guessed C locale.

bobthecow commented 3 years ago

Awesome. Glad you got it sorted!