# zsh: русские шрифты отображаются, а псевдографика нет

## young-druid

Добрый всем вечер.

Установил stage3. X сервер не ставил ещё. utf-8 английская локаль активная.

Установил terminus-font.

В файле /etc/conf.d/consolefont

```

consolefont="ter-k16n"

```

А в /etc/conf.d/keymaps

```

keymap="-u ruwin_ct_sh-UTF-8"

windowkeys="YES"

fix_euro="NO"

```

Файлы на русском языке отображаются и могу набирать тексты на русском языке. Но попытался поставить эту тему и увидел, что знак "╰" и "╭" не отображаются. Вместо них квадраты. Можно ли настроить консоль так, чтобы такие знаки отображались? Правильно ли я понимаю, что дело в шрифтах? Можно ли ставить два набора шрифтов: с русским языком и элементами псеводграфики?

----------

## TigerJr

Могу порекомендовать проверить настройки локализации, следуя хендбуку

https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation#Configure_locales

Также проверь строчку в /etc/rc.conf unicode=YES, как это описывается в пункте 3.2 англоязычной wiki-странице проекта

https://wiki.gentoo.org/wiki/UTF-8#The_system_console

----------

## young-druid

Вроде всё как-надо сделал. Unicode выставлен.

Во время загрузки все эти строки [ ok ]

```

Settings terminal encoding [UTF-8]

Settings console font [ter-v16n]

Setting keyboard mode [UTF-8]

Loading key mappings [-u ruwin_ct_sh-UTF-8]

```

Не пойму, где проблема. Я не то, чтобы не могу без этой темы жить, но хочется понять, почему какие-то юникодные символы невидны. Если этих стрелок в шрифтах просто нет, то можно ли как-то сказать терминалу, чтобы он стрелки из других наборов подгружал?

----------

## TigerJr

У меня редко возникала такая проблема с ncurses библиотекой, однако я сделал locale-gen и перекомпилировал ncurses после смены LC_MESSAGES. 

А тебе может пересобрать zsh с поддержкой unicode?

```
USE="unicode" emerge zsh -a
```

----------

## young-druid

Всё пересобрал, не помогло.

Странно, что

```
echo -e "\u03A0"
```

или

```
echo -e "\u0490"
```

показывает символ, а

```
echo -e "\u0480"
```

нет.

Т.е. работают символы в начале юникодной таблицы, в районе кириллицы и какие-то рандомные символы.

----------

## TigerJr

Могу ещё посоветовать coreutils перебрать и попробуй воспроизвести в /bin/sh и /bin/bash если подобного у них не повторится копать нужно в другом месте...

----------

## young-druid

Пересобрал всё. Ни в bash ни в zsh ничего кроме кириллицы и английского не отображается. Буду дальше гуглить.

----------

## young-druid

Изучаю интернеты пока. Про psf шрифты пишут, что они максимум могут содержать 512 символов. Посмотрел с помощью psfgettable установленные шрифты и действительно в них 256 или 512 юникодных символов только.

В этом топике пишут, что стандартная линкусовая консоль не может больше 512 символов отображать, надо альтернативные искать fbterm или jfbterm.

----------

## TigerJr

А может у тебя в ядре поддержка NLS UTF-8 не указана?

----------

## young-druid

Я не проверял, но в гайде вроде написано, что это для файловой системы только. Но я проверю и выставлю, если что.

Вики вот говорит, что тоже 512 символов можно в консоли отображать только. И тут пишут про 512 символов тоже. То, что я нагуглил, говорит, что не в иксах в стандартной консоли больше 512 символов не получить, если не установить другую консоль. Но может, я не понимаю что-то просто.

----------

## TigerJr

В основном это достаточно изъезженная проблема - поддержка unicode в косноле, проблема именно в кириллических шрифтах. Точнее в количестве символов. В латинице 26 символов алфавита, в кириллице 33 символа включая "ъ" который не помещался. В результате был реализован стандарт UTF-8, а затем UTF-16 как раз чтобы все требуемые символы поместились.

Можешь поэкспериментировать с cp1251 или KOI8-R. 

А вообще мне кажется что какая-то библиотека не пересобрана с требуемой локализацией, которая скорее всего была по-умолчанию указана при установки системы.

```
 Loading key mappings [-u ruwin_ct_sh-UTF-8]
```

Попробуй keymap установить стандартный.

----------

## young-druid

Что-то мне кажется, что не может консоль в текстовом режиме больше 512 символов отображать. Если есть возможность, посмотри в голой консоли можешь ли всякие крякозябры в консоли выводить? Для примера возьми символ, что я в начале поста приводил. Или японские иероглифы какие.

Вот я наконец-то настроил X и установил rxvt-unicode. Тот же терминус в терминале отображает все символы, что имеет в наборе.

----------

## TigerJr

на сколько я знаю консоль может без проблем отображать все символы, у меня не такая уж и простая установка на PC

Там используются драйвера nouveau ядро ck-sources с BFS Sheduler grub:0 с поддержкой мультибут (для xen кернел) работают виртуалки и установлена поддержка unicode со стандартной локалью ru_RU.UTF8. 

Маны в консоле - кириллические все символы отображаются без проблем... вот только я понять не могу - ты используешь кириллические названия бинарей для запуска своих программ на кириллице??? 

```
alias емерже='emerge'

LINGUAS=ru емерже man-pages

echo "Сэмэржил манпагес =) привит кириллу)))"

man console

```

 *Quote:*   

> aegis2 ~ # echo -e "\u0FFF\u03B1\u03B2\u03B3\u03B4\u0FFF\u0480\u0470\u0490"
> 
> ࿿αβγδ࿿ҀѰҐ
> 
> 

 

Объясни лучше где ещё может использоваться в консоле кириллица? И чем тебе помешает её отсутствие???

Да и какая у тебя локаль стоит? 

```
locale && locale -a
```

----------

## young-druid

У меня консоль отображает все символы в текстовом режиме, но только 512 из всего набора символов в зависимости от локали. Ладно, буду смотреть/читать дальше. Главное в терминале в графическом режиме все символы отображаются.

----------

