решено: qingy проблемы с эмуляторами терминала в X window (нет русского в эмуляторах терминала)

Модератор: /dev/random

Аватара пользователя
modal
Сообщения: 12
ОС: GNU/Linux

решено: qingy проблемы с эмуляторами терминала в X window

Сообщение modal »

Поменял xdm на qingy (естественно все agetty заменил на qingy).
И так вот суть проблеммы: У одного единственного пользователя нет русских символов в любом эмуляторе терминала, а у всех других есть.
Системная локаль en_US.UTF-8.
При этом если запускать иксы через xinit или startx то русский ввод и отображение символов есть.
Также елси запустить иксы вот так:

Код: Выделить всё

xinit -- :1 vt1

есть русский
а так запускает qingy X-сервер

Код: Выделить всё

xinit ~/.xsession -- :1 vt1 -nolisten tcp -br

Изменение переменной LANG=en_US.UTF-8 на LANG=ru_RU.UTF-8 помогает, но этот вариант не подходит.
В самой консоли русский отображаестя нормально (указана русская раскладка в rc.conf).
Помойму это неважно но дистрибутив ArchLinux (x86_64).
Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: решено: qingy проблемы с эмуляторами терминала в X window

Сообщение sash-kan »

modal писал(а):
30.04.2011 18:57
У одного единственного пользователя нет русских символов в любом эмуляторе терминала, а у всех других есть.
сравните значения переменных окружения у этого пользователя и у любого из «всех других».

p.s.
$ env
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

Аватара пользователя
modal
Сообщения: 12
ОС: GNU/Linux

Re: решено: qingy проблемы с эмуляторами терминала в X window

Сообщение modal »

sash-kan писал(а):
30.04.2011 19:49
сравните значения переменных окружения у этого пользователя и у любого из «всех других».

p.s.
$ env


Делал, разница там где и должна быть $HOME,$PATH
Спасибо сказали:

Аватара пользователя
modal
Сообщения: 12
ОС: GNU/Linux

Re: решено: qingy проблемы с эмуляторами терминала в X window

Сообщение modal »

Не много поиграл с переменными. В частности добавил в .xinitrc export SHLVL=3, появился русский, но у остальных значение этой переменной 1 и все тип-топ.
Пользователь состоит в группах: dbus и hal в отличии от других. Сильно сомневаюсь что это имеет значение, а так больше никакой разницы между пользователями нет. Где зарыта собака?
Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: решено: qingy проблемы с эмуляторами терминала в X window

Сообщение sash-kan »

ок. тогда расшифруйте, пожалуйста, фразу «нет русских символов».
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

Аватара пользователя
modal
Сообщения: 12
ОС: GNU/Linux

Re: решено: qingy проблемы с эмуляторами терминала в X window

Сообщение modal »

sash-kan писал(а):
30.04.2011 23:23
ок. тогда расшифруйте, пожалуйста, фразу «нет русских символов».

А что тут расшифрововать? Вместо кириличиских букв кракозябра. Не работает ввод кирилических символов и отображение каталогов и файлов с русскими именнами.
О офигеть что я обнаружил.
У пользователей у которых есть переменная LANG в .xinitrc все в порядке, даже если она совпадает с системной.
У тех у кого нет её проблемы.
Что LANG=ru_RU.UTF-8 что LANG=en_US.UTF-8 главное чтоб была в .xinitrc
Попробовал даже некоректные значения то-же работает. Теперь есть русский в эмуляторах терминала.
Но это больше похоже на костыль чем на решение, и вообще плохо укладывается у меня в голове: в чем может быть разница между переменной наследуемой от системного окружения и той которая присваевает той же переменной то-же значения.
После небольшого ковыряние выесняестя что это проблема не в пользовательский настройках.
Буду рад услышать мнение тех кто использует qingy и локаль en_US.UTF-8 и при этом использует русскую раскладку в консоли, и в эмуляторе терминала работает ввод и отображение кирилических символов.
P.S. Решение моей проблемки кажется витает в воздухе: изменить способ которым запускает qingy Xorg.
Спасибо сказали:

Аватара пользователя
modal
Сообщения: 12
ОС: GNU/Linux

Re: решено: qingy проблемы с эмуляторами терминала в X window

Сообщение modal »

Хмм, пробовал на первой консоли запускать иксы так как их запускает qingy
В .xinitrc нет переменной LANG

Код: Выделить всё

xinit ~/.xsession -- :1 vt1 -nolisten tcp -br

Кирилица есть
Когда такую-же команду для запуска использует qingy (без LANG в .xinitrc), то русского нет.
Предписал всем указать LANG в .xinitrc
ПОЯСНЕНИЕ .xsession у меня ссылка на .xinitrc
ПОЯСНЕНИЕ надо добавить именно:
export LANG=значение
Без export не работает.

Спасибо сказали:

Аватара пользователя
modal
Сообщения: 12
ОС: GNU/Linux

Re: решено: qingy проблемы с эмуляторами терминала в X window

Сообщение modal »

Стыдно мне
Очень стыдно
я проглазел
самое главное
Переменная LANG НЕ НАСЛЕДУЕТСЯ, если qingy запускает иксы (куда я только смотрел когда сравнивал переменные пользователей)
Вот в чем дело! Сколько я ненужных действий сделал! Пытаясь выяснить причину.
Собственно почему она не наследуется или удаляется?
В консоли она есть как и положенно тому быть.
Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: решено: qingy проблемы с эмуляторами терминала в X window

Сообщение sash-kan »

смотрите в документации/исходниках.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 5102
ОС: Gentoo

Re: решено: qingy проблемы с эмуляторами терминала в X window

Сообщение /dev/random »

А может, она не "не наследуется", а не устанавливается? /etc/profile обычно читается только после запуска login shell. Вы уверены, что ему есть откуда наследовать эту переменную?
Спасибо сказали:

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: решено: qingy проблемы с эмуляторами терминала в X window

Сообщение sash-kan »

/dev/random писал(а):
01.05.2011 20:09
/etc/profile
это только для shell-а.
нынче вроде как в /etc/default/locale должны устанавливаться языковые переменные. в том числе и для dm-ов.
по крайней мере в debian это так.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:

Аватара пользователя
modal
Сообщения: 12
ОС: GNU/Linux

Re: решено: qingy проблемы с эмуляторами терминала в X window

Сообщение modal »

А может, она не "не наследуется", а не устанавливается? /etc/profile обычно читается только после запуска login shell. Вы уверены, что ему есть откуда наследовать эту переменную?

Верно! Черт побери. Вы правы /dev/random! Дожить до 23 не знать этого!
Не когда не задумавался на каком этапе появляется переменные окружение, почему-то думал что они добавляются в окружение init и потом при входе наследуются от него, хотя и знал их физическую дислокацию в арче /etc/profile.d
вроде как в /etc/default/locale должны устанавливаться языковые переменные. в том числе и для dm-ов.
по крайней мере в debian это так.

Неверно для арча. qingy это не DM
Cобственно выяснилась причина моих неприятностей.
Поменяв agetty на gingy.
Попробовал зайти на первом tty в графическом режиме .Облом, вход не получился, черный экран.
Посмотрел вывод ps -Fu user
Завис баш
Убил процессы пользователя
Почитал README второй раз
Выполнил рекомендацию по замене файл .xsession на .xsession-ссылка на .xinitrc (это причина)
После этого лабуда с переменными, но зато входить можно.
Кстати зависание баша происходит только на 1-ом tty (сейчас выяснил вернув для одной их учеток .xsession-file). На остальных tty зависание нет и переменные устанавливаются и нет никаких проблем с кодировками и т.д.
Буду искать причины зависание на 1-ом tty.
Начал читать скрипты: /etc/rc*
Удивляюсь
Всё вроде понятно
ПОЯСНЕНИЕ1
по умолчанию .xsession содержит строки

Код: Выделить всё

#!/bin/sh
/bin/bash --login -i ~/.xinitrc

Вследствие чего происходит login shell

ПОЯСНЕНИЕ2
У большинства пользователей LANG (причем export) продублированна в .xinitrc. Вот почему я не сразу понял что это глобальная проблема, а не неполадки в настройках у пользователя.
ПОЯСНЕНИЕ3
Вследствие того что пользовался для выяснение разнами учетками запарился выложил неверную инфу про
переменную SHLVL
Спасибо сказали:

Аватара пользователя
modal
Сообщения: 12
ОС: GNU/Linux

Re: решено: qingy проблемы с эмуляторами терминала в X window

Сообщение modal »

И так вот как я вышел из этой ситуации
Прочел в третий раз README (на этот раз без спешки и внимателно)
Вот что надо было сделать самого сначала
сделать .xsession ссылкой на .xinitrc
добавить в .xinitrc до строки exec ваш десктоп
вот такую стройку

Код: Выделить всё

[ -f /etc/profile ] && . /etc/profile

Собственно все понятно
Но я сделал еще лучше на мой взгляд
.xsession не ссылка а файл вот такого содержания:

Код: Выделить всё

#!/bin/sh
[ -f /etc/profile ] && . /etc/profile
exec мой_десктоп

Почему я так сделал?
Дело в том если запустить иксы через xinit или startx /etc/profile установит повторно теже переменные которые уже есть и естественно это займет дополнительное време(где-то секунда).
Спасибо сказали: