Автор Гілка: Сервер додатків  (Прочитано 1727 раз)

Відсутній Wl@d

  • Новачок
  • *
  • дописів: 6
  • Карма: +0/-0
Сервер додатків
« : 2008-03-14 00:33:04 »
Доброго дня.

Маю AltLinux з KDE. Виконує функції термінального сервера для бездискових станцій, і серверу додатків для користувачів Windows XP (аналогічний до термінального сервера мікрософта). Виникла проблема з перемиканням розкладки клавіатури. Якщо зайти безпосередньо на сервер - все добре, завантажуюсь з бездискового терміналу все добре. А от коли заходжу на сервер через x-server (x-win32, LinuxTSC) розкладки клавіатури не перемикаються. Пробував засобами xorg (редагував xorg.conf) і пробував засобами центру управліня KDE. В останньому випадку на панелі замість розкладки видає помилку "неможливо завантажити розкладку ua" причому коли пробую міняти розкладку каже що не може завантажити іншу розкладку (ua, ru, us).

Підкажіть де подивитись?

Відсутній DalekiyObriy

  • Літератор
  • ******
  • дописів: 1929
  • Карма: +5/-0
Re: Сервер додатків
« Відповідей #1 : 2008-03-14 19:54:37 »
Доброго дня.

Маю AltLinux з KDE. Виконує функції термінального сервера для бездискових станцій, і серверу додатків для користувачів Windows XP (аналогічний до термінального сервера мікрософта). Виникла проблема з перемиканням розкладки клавіатури. Якщо зайти безпосередньо на сервер - все добре, завантажуюсь з бездискового терміналу все добре. А от коли заходжу на сервер через x-server (x-win32, LinuxTSC) розкладки клавіатури не перемикаються. Пробував засобами xorg (редагував xorg.conf) і пробував засобами центру управліня KDE. В останньому випадку на панелі замість розкладки видає помилку "неможливо завантажити розкладку ua" причому коли пробую міняти розкладку каже що не може завантажити іншу розкладку (ua, ru, us).

Підкажіть де подивитись?
Можливо Ваша версія x-win32 не підтримує протокол xkb? або його вимкнено?
спробуйте без графічної перемикалки, з командного рядку, напр.
setxkbmap ua
Fedora 35 (x86-64)

Відсутній Wl@d

  • Новачок
  • *
  • дописів: 6
  • Карма: +0/-0
Re: Сервер додатків
« Відповідей #2 : 2008-03-16 12:54:06 »
Розібрався!!!!

В ALTLinux коли логінишся через kdm запускається скрипт, який в свою чергу виконує
         setxkbmap <параметри>
а параметри бере з файла який знаходиться в папці користувача, або за відсутності бере з системного файлика. setxkbmap генерує інформацію для xkbcomp який і вмикає самі розкладки. Виглядає це так:
xkb_keymap {
        xkb_keycodes  { include "xfree86+aliases(qwerty)"       };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+us+ua(winkeys):2+ru(winkeys):3+group(ctrl_shift_toggle)"    };
        xkb_geometry  { include "pc(pc105)"     };
};
Коли запустити setxkbmap не сервері чи на бездисковій станції все добре, а коли з терміналу з під вінди - непрацює. Видає  Error loading new keyboard description. X-Win32 підтримує xkb, Але в ман написано - що setxkbmap для роботи потрібі файли описів клавіатур, розкладок і т.д., і бере ці файлики на х-сервері, тобто на термінал-клієнті. Очевидно їх в X-Win32 немає або він згенерувати не може. Але, в ман також написано: неможе х-сервер згенерувати - згенеруйте для нього самостійно. Для цього на лінукс-сервері

setxkbmap -rules xorg -model pc105 -layout us,ru -variant ,winkeys -option grp:ctrl_shift_toggle -print

орція -print виведе результат роботи на екран (приклад виведення дивись вище). далі ми це зберігаємо, наприклад так:

setxkbmap -rules xorg -model pc105 -layout us,ru -variant ,winkeys -option grp:ctrl_shift_toggle -print >> /home/wl@d/my_map

заходимо під терміналом і передаємо вміст my_map -> xkbkomp неприклад таким чином

$ cat /home/wl@d/my_map | xkbcomp - $DISPLAY

вуаля - в нас розкладки працюють на ура...

лишилося поритися в скриптах і знайти як це зробити гарненько і автоматично... можливо розробник це передбачив і лишилося знайти як... або просто замінити відповідний скрипт на свій, нічого скланого немає.

Дивує дещо інше. Результат роботи setxkbmap дуже нагадує структуру xorg.conf розділ клавіатури. Я і в цьому файлику прописував параметри вручну. На сервері працює, а на терміналі з під вінди ні. Дивно. Можливо якось скрипти перебивають налаштування xorg.conf. В оригінальному  xorg.conf опис клавіатури зводиться до

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Так що, не наступайте на мої граблі і читайте МАНи  :)