1

У меня действительно странная проблема с эмуляторами X-терминала. Я хочу использовать UTF-8, и он работает везде в моей системе, но не в графических терминалах. Когда я запускаю, например, Urxvt и нажимаю клавиши öäå, он ничего не рендерит. Если я запускаю новый терминал Urxvt внутри родительского терминала, все работает нормально. Все работает и в tty (Crtl + Alt + F1).

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

Что я сделал, прежде чем спрашивать?

  • Пробуя разные терминалы (Urxvt и xterm), ни один не работает
  • Попытка изменить шрифт
  • Даже пробовал другую рабочую среду (awesome и xfce)
  • Пробовать разные оболочки (zsh, bash)

Я также проверил с разными пользователями. Локальный пользователь и тот, кто использует аналогично открытый для проверки подлинности домена. С локальным пользователем все работает, даже если они имеют одинаковые настройки локали.

Вот вывод из текущей локали (оба пользователя имеют одинаковые настройки локали):

LANG=en_US.UTF-8
LANGUAGE=en_US:en
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=en_US.UTF-8

Насколько я понимаю, LC_CTYPE - это переменная окружения, которую использует Urxvt.

У меня нет идей, как это исправить, но, надеюсь, у кого-то есть.

1 ответ1

1

Это выглядит так, как будто вы устанавливаете $ LC_CTYPE в .profile, .bashrc или что-то еще. Это не было запущено до вашего первого терминала, который поэтому запускается без этого в его среде:

init -(запускает)-> Диспетчер отображения -(запускает)-> рабочий стол env -(запускает)-> терминал -(запускает)-> оболочка

Затем оболочка получает исходный файл (.profile, .bashrc, .zshrc, .login, в зависимости от того, что это для вашей оболочки), который задает среду, и только тогда, когда вы запускаете терминал, он знает, какие настройки локали он должен использовать.

Вам нужно установить LC_CTYPE дальше по цепочке - где и как, в зависимости от среды вашего рабочего стола (я полагаю, вы не используете "просто оконный менеджер", вероятно, gnome или KDE?), Менеджер отображения (gdm или kdm или xdm) или lightdm или что-то еще), вариант init (традиционный "sysv-style" или upstart).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .