LINUX.ORG.RU

Кодировка клавиатурного ввода (через x)

 ,


0

1

Приветствую, товарищи. Пытаюсь переварить процесс ввода символов с клавиатуры и доставку его до приложения (при работе через х). Если конкретней, интересно это - в какой кодировке приложение получит ввод? И как её изменить? Почитав, сложилось впечатление, что приложение само выбирает кодировку при конвертации из keycode в keysym (если так, то как это настраивается? Ни разу не задумывался при написании своих hello world'ов).

Всё началось с настройки x сервера, задал раскладку, а с кодировкой серьёзно заморочился.

Section "InputClass"
        Identifier ""
        MatchProduct "AT Translated Set 2 keyboard"
        Option "XkbLayout" "us,ru"
        Option "XkbOptions" "grp:toggle"
EndSection

Может ли кто-нибудь привести пример чтение клавиатурного ввода от x сервера? Без всяких там высокоуровневых обвёрток (т.е. голое api сервера).

★★

Последнее исправление: pavlick (всего исправлений: 1)
XEvent event;
KeySym key;
char text[255];
while(1) {		
	XNextEvent(dis, &event);
	if (event.type==KeyPress&&
	    XLookupString(&event.xkey,text,255,&key,0)==1) {
		printf("You pressed the %c key!\n",text[0]);
	}

}

И теперь я могу для каждого keycode назначить новый символ через XChangeKeyboardMapping? Ерунда это всё. Может ли моё приложение получать определённую мною кодировку? cp1251 или ещё чего-нибудь? Или utf-8 жестко зашит?

Не то чтобы очень нужно кодировку сменить, разобраться хочется.

pavlick ★★
() автор топика

Чёрт побери. Нет, я догадался, что последователи Windows Ubunta, уже вышли из тени. Но, простите, хотя-бы гугл можно включить?

Ладно, не обижайся. Напиши в /etc/lang.sh и lang.csh ru_RU.UTF-8

Должно помочь.

Вот, блин, за что я люблю Slackware? За то что конфиги надо править вручную. Один раз исправил - запомнил, больше на эти грабли не наступишь.

cadaber ★★
()
Ответ на: комментарий от cadaber

Чёрт побери. Нет, я догадался, что последователи Windows Ubunta, уже вышли из >тени. Но, простите, хотя-бы гугл можно включить?

Я уже второй день ***** с этим кодировками и шрифтами. Из-за пустяковой настройки, проштудировал вагон инструкций к x server'у.

Ладно, не обижайся. Напиши в /etc/lang.sh и lang.csh ru_RU.UTF-8

Смена кодировки локали меняет кодировку ввода, спасибо.

pavlick ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.