[empty image] [empty image]
[empty image]
[empty image] [empty image] [empty image]
[empty image]

Slackware Линукс на български

(X Display Managers)

run level

По подразбиране, след първоначално зареждане, Slackware се стартира на ниво 3. Това е т.н. "многопотребителски режим". По-подробно за нивата е описано в init(8) и inittab(5). На ниво 3 мрежата е инициализирана и са стартирани демоните. При това ниво графичната среда се стартира, обикновено, с командата "startx ...". След като X Window е конфигуриран и тестван, може да настрой графичната среда да се стартира по подразбиране. Традиционно X Window се стартира при ниво 4. Това се задава в файла "/etc/inittab". Ето как изглеждат частите от файла, които ни интересуват:

....
# These are the default runlevels in Slackware:
#   0 = halt
#   1 = single user mode
#   2 = unused (but configured the same as runlevel 3)
#   3 = multiuser mode (default Slackware runlevel)
#   4 = X11 with KDM/GDM/XDM (session managers)
#   5 = unused (but configured the same as runlevel 3)
#   6 = reboot

# Default runlevel. (Do not set to 0 or 6)
id:3:initdefault:

# System initialization (runs when system boots).
si:S:sysinit:/etc/rc.d/rc.S
....
# happens to X.
x1:4:wait:/etc/rc.d/rc.4

# End of /etc/inittab

Бел.: многоточията не са част от файла!

От файла е показана по-голяма част от необходимото. В коментара за ниво 4 е записано "session managers". Изброените приложения: kdm, gdm и xdm са "X Display Managers". Вярно е, че стартират X сесии, но това не ги прави "session manager". Разликата може да се види, например, в xdm(1) и xsm(1).

За да се провери, как се държи ОС при ниво 4 се изпълнява командата "init 4" или "telinit 4". Програмата init проверява какво трябва да се стартира на ниво 4 и един от редовете съдържа "/etc/rc.d/rc.4". Това е скрипта, който стартира "X Display Manager". По-долу е показана съществената част от него:

....
# Tell the viewers what's going to happen...
echo "Starting up X11 ..."

# Try to use GNOME's gdm ...:
if [ -x /usr/bin/gdm ]; then
  exec /usr/bin/gdm -nodaemon
fi

# Not there?  OK, try to use KDE's kdm ...:
if [ -x /opt/kde/bin/kdm ]; then
  exec /opt/kde/bin/kdm -nodaemon
fi

# If all you have is XDM, I guess it will have to do:
if [ -x /usr/X11R6/bin/xdm ]; then
  exec /usr/X11R6/bin/xdm -nodaemon
fi
....

Бел.: многоточията не са част от файла!

Скрипта проверява дали съществува изпълним файл(1) и ако условието е изпълнено, то той се стартира с подходящи параметри. Първо се проверява за gdm, после за kdm и най-накрая за xdm. Влиза се в системата на шести(2) виртуален терминал (vt6) и се изпълнява командата "init 4". Тъй като бяха инсталирани всички GNOME приложения, то gdm, като част от тях, е инсталиран на системата. По подразбиране е с право на изпълнение и следователно се стартира.


gdm:

Gdm е с много приятен графичен дизайн. Като при всяко графично приложение използващо gtk (1.x/2.x), езиковите настройки зависят от променливите на обкръжението. Например един от начините текстовете в gdm да са на български, е да се зададaт променливи при стартиране на приложението. Файла /usr/bin/gdm е скрипт, който стартира програмата gdm-binary. Например за български, скрипта може да се промени както е показано по-долу:

...
#test -f /etc/profile && . /etc/profile
LANG=bg_BG.ISO8859-5
export LANG

exec /usr/bin/gdm-binary "$@"
....

Бел: направените промени са оцветени в синьо и многоточията не са част от файла.

Излишно е да се изпълняват командите от /etc/profile, затова и този ред е коментиран. На шести терминал се изпълнява:

# init 3
# init 4

От gdm може да се избере език за X сесиите. Ако искате да имате проблеми, моля ползвайте го. Това е още едно от проблемните неща при GNOME проекта. В конфигурационния файл на gdm, "/etc/X11/gdm/gdm.conf" за параметъра LocaleFile е зададено: "/etc/X11/gdm/locale.alias", който започва е коментар, че текущото решение не е добро и в някоя бъдеща версия щяло да има друго, което ... и т.н. Нас ни интересува частта от файла, свързана с българския език:

...
Bosnian                 bs_BA.UTF-8,bs_BA
Bulgarian               bg_BG.UTF-8,bg_BG
Catalan                 ca_ES.UTF-8,ca_ES
...

Бел: отново многоточията не са част от файла.

Когато от gdm за сесията се избере български език, настройките от ~/.profile за език се припокриват от програмата gnome-session и за български се задава bg_BG.UTF-8. Накратко ще бъдат описан алгоритъма: Gdm установява променливата GDM_LANG на bg_BG.UTF-8, понеже е първи в списъка и съществува такова "locale". Стартира се скрипта за X сесията, от който се прочитат и изпълняват командите от файловете /etc/profile и ~/.profile. В потребителския файл (~/.profile) стандартно се присвоява на LANG стойност. Най-накрая скрипта за X сесията стартира gnome-session, който припокрива LANG със стойността на GDM_LANG. Сега в X сесията, ако в терминал изпълним командата "locale" ще получим bg_BG.UTF-8. Оттук нататък, в сесията, други езикови настройки може да се зададат само за приложения, които не използват GNOME. За GNOME приложенията, езиковите настройки повече не може да се задават с променливи от обкръжението, като LANG. В такава X сесия вече става трудно да се определи при какви езикови настройки се стартират приложенията. Тъй като настройките за езика е прието да се установят от ~/.profile и за да се подсигури потребителя срещу недомислиците в gdm и GNOME, във файла ~/.profile се добавя реда:

unset GDM_LANG


Определено идеята за припокриване на потребителските настройки куца тотално. Единственото, което gdm трябва да направи, когато потребителя избере език, е да присвои на LANG стойност. Прекрасният графичен дизайн не е достатъчен. На шести терминал, като супер-потребител, се изпълняват командите:

# chmod -x /usr/bin/gdm
init 3
init 4

Така, вече е стартиран следващия "Display Manager".


kdm:

Kdm не блести с графичен дизайн. За да се избере език на екрана за влизане в системата, се стартира KDE сесия и от главното меню се избера: "Control Center" (Контролен център) -> "System Administration" (Администрация) -> "Login Manager" (Вход в системата). За промяна се изискват права на супер-потребител. В дясно има няколко "tab"-а, в които се правят промените. На първия от тях, "Appearance" ("Външност"), се избира езика. На втория "Font" ("Шрифт"), при всички шрифтове е избрано "Bitstream Vera ...". Това е шрифт, който съдържа само latin1 символи. За всеки от шрифтовете се избира "Sans Serif" и системата (fontconfig) сама ще намери подходящия да кирилица. За да влязат настройките в сила, kdm трябва да се рестартира, например, като супер-потребител, на шести терминал, се изпълняват командите:

init 3
init 4

Така, вече в kdm текстовете са на български език.


xdm:

Това е "Display Manager", който е част от стандартните X Window програми. Той няма езикова поддръжка, не поддържа UNICODE, но въпреки това може покаже символи на кирилица. Също така от него могат да се избират различни графични сессии.

За целта бе променен файла "/etc/X11/xdm/Xresources", като разликите се виждат [тук]. Старият текст е задраскан и в червено, а със синьо е новият. Щракнете с мишката върху картината в дясно, за да се покаже резултата в реален размер.

xdm
(xdm "login" екран)

Имената на щрифтовете, използвани от xdm, се задават по класическия начин, като синоними не може да се използват. Трябва да има съвпадение между елементите "registry"-"encoding" от името на шрифта и кодовата таблица, в която е въведен текста на кирилица, като съвпадението бе описано в тази таблица.

По-подразбиране при xdm, след въвеждане на името и паролата, ако се натиснат клавишите [RETURN] или [ENTER], се стартира X-сесия по-подразбиране. При [CTRL]+[RETURN], [CTRL]+[ENTER] или [F1] се стартира failsafe сесия. По-важната промяна в "/etc/X11/xdm/Xresources" е, че с клавиша [F2] може да се стартира "blackbox" сесия.


избор:

С това завършва и избора на Display Manager. При избора на език за сесията от gdm се припокриват потребителските настройки и X сесията се стартира в кодова таблица е UTF-8 (може би защото GNOME не работи добре при осем-битовите). За български език, друга кодова таблица може да се зададе. с подходящ списък в "/etc/X11/gdm/locale.alias". Определено не е добра идеята за припокриването на езиковите настройки в GNOME и затова трябва да се избягва избирането на език от gdm. След такива концептуални недомислици в gdm, везните се накланят силно към kdm. Като че ли концепцията при KDE за езикови настройки на менюта и т.н., независими от променливите на средата, е по-удачна в случая. GNOME е проект спонсориран предимно от американски компании и съответно е разработен предимно от английско говорящ персонал. Това, както се вижда, дава отражение върху възможностите му за работа в друго езиково обкръжение.


initdefault

Най-накрая конфигурирането завършва, като в /etc/inittab, на реда с initdefault, цифрата 3 се заменя с 4. Така при следващото стартиране на ОС, тя ще се инициализира на ниво 4, т.е. със стартирана X Window графична среда.


Конфигуриране на графична среда X Window (IV част) >>

  1. С "[ -x име_на_файла ]"(без кавичките) са проверява дали съществува файла име_на_файла и дали има право да се изпълнява.
  2. На Slackware при ниво 4 е наличен само шести терминал. Може да се промени "/etc/inittab", така че да са налични и други.



Съдържание:

  1. Начало
  2. Локализация
  3. Създаване и конфигуриране на потребители
  4. Конфигуриране на графична среда X Window (I част)
  5. Конфигуриране на графична среда X Window (II част)
  6. X Window тестове
  7. Конфигуриране на графична среда X Window (III част)
  8. X Display Managers
  9. Конфигуриране на графична среда X Window (IV част)
  10. Потребителски профил и X Window
 
Лицензия:

Автор на тази статия е Румен Петров.

Автора Ви дава правото да разпространявате, публикувате или отпечатвате статията или части от нея само, ако изрично укажете неговото име и посочите оригинално местоположение (URL).

[empty image]
[empty image] [empty image] Last modified : Tuesday August 07, 2007 [empty image]