Графический интерфейс против командной строки
Обычного пользователя могут испугать мысли о необходимости печатать в командной строке. Почему бы ему не прокладывать свой путь на территории свободы выбора Gentoo (и Linux вообще), просто «водя мышкой»? Ну, *большая улыбка*, конечно, вы сможете это сделать :-). В Linux предлагается широкое разнообразие пользовательских интерфейсов и сред, которые можно установить поверх установленной у вас системы.
Это один из самых больших сюрпризов, с которым сталкиваются новички: графический интерфейс пользователя — это всего лишь прикладная программа, выполняемая в системе. Он не является частью ядра Linux или каких-либо других компонентов системы. Это — мощный инструмент, позволяющий полностью задействовать графические возможности вашего компьютера.
Так как стандартизация очень важна, для организации прорисовки и перемещения окон по экрану, взаимодействия пользователя с мышью и клавиатурой, а также других важных базовых аспектов, был создан стандарт под названием X Window System, сокращённо X11 или просто X. Он используется в Unix, Linux и других Unix-подобных операционных системах во всем мире.
Приложение, которое дает пользователям Linux возможность запускать графические интерфейсы пользователя и использует стандарт X11, называется Xorg-X11, ответвление проекта XFree86. Проектом XFree86 было решено использовать лицензию, возможно, несовместимую с лицензией GPL, поэтому рекомендуется использовать Xorg. Пакет XFree86 больше не поддерживается в официальном дереве портежей.
Проектом X.org создана и поддерживается бесплатно распространяемая реализация системы X11 с открытым исходным кодом. Это открытая инфраструктура рабочей станции, основанная на X11.
Xorg обеспечивает интерфейс между устройствами вашего компьютера и нужными вам графическими программами. Кроме того, Xorg является полностью сетевым, то есть вы можете запускать программу на одной системе, а отображать ее — на другой.
Хватит болтовни, не перейти ли нам к делу? Чтобы установить Xorg, вам просто нужно запустить emerge xorg-x11. Установка Xorg займёт достаточно времени, так что вы можете перекусить, дожидаясь ее завершения.
Перед тем, как установить Xorg, в файле /etc/make.conf вам понадобится настроить две очень важные переменные.
Первая из них — VIDEO_CARDS, которая используется для выбора драйвера для используемой вами видеокарты, и связана с ее типом и маркой. Одним из распрапространенных значений является nvidia для карт nVidia или fglrx для карт ATI Radeon. Это — закрытые драйверы, предоставленные nVidia и ATI. Если вы хотите использовать версии с отрытым исходным кодом, используйте nv вместо nvidia, но помните, эта версия не обсепечивает 3D-ускорение. Аналогично, используйте radeon для видеокарт от ATI. В VIDEO_CARDS можно указывать несколько драйверов, разделенных пробелами.
Вторая переменная, INPUT_DEVICES, используется для указания драйверов устройств ввода. В большинстве случаев связки keyboard mouse достаточно.
Теперь нужно решить, какие драйверы использовать, и добавить нужные параметры в файл /etc/make.conf:
Листинг 2.1: Пример строк в make.conf |
(для поддержки мыши и клавиатуры) INPUT_DEVICES="keyboard mouse" (для видеокарт nVidia) VIDEO_CARDS="nvidia" (ИЛИ для видеокарт ATI Radeon) VIDEO_CARDS="fglrx" |
Дополнительные сведения по настройке карт nVidia и ATI находятся в руководстве по видеокартам nVidia в Gentoo Linux и Gentoo Linux ATI FAQ. Если вы не знаете, какие драйверы выбрать, ознакомьтесь с этими руководствами.
Примечание: Если у вас рекомендуемые настройки не работают, следует запустить emerge -pv xorg-x11, проверить все доступные параметры и указать соответствующие вашей системе. Для различных версий Xorg на различных архитектурах эти переменные могут выводиться командой emerge -pv xorg-server вместо приведенной выше. Например, для архитектуры x86 и xorg-x11-7.0: |
Листинг 2.2: Просмотр всех доступных параметров драйверов |
# emerge -pv xorg-x11
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] x11-base/xorg-x11-7.0-r1 USE="-3dfx" INPUT_DEVICES="keyboard
mouse -acecad -aiptek -calcomp -citron -digitaledge -dmc -dynapro -elo2300
-elographics -evdev -fpit -hyperpen -jamstudio -joystick -magellan -magictouch
-microtouch -mutouch -palmax -penmount -spaceorb -summa -synaptics -tek4957
-ur98 -vmmouse -void -wacom" VIDEO_CARDS="nvidia -apm -ark -chips -cirrus -cyrix
-dummy -fbdev -fglrx -glint -i128 -i740 -i810 -imstt -mach64 -mga -neomagic -nsc
-nv -r128 -radeon -rendition -s3 -s3virge -savage -siliconmotion -sis -sisusb
-tdfx -tga -trident -tseng -v4l -vesa -vga -via -vmware -voodoo" 0 kB
|
После установки всех необходимых переменных можно перейти к установке пакета Xorg.
Листинг 2.3: Установка Xorg |
# emerge xorg-x11
|
После завершения установки, чтобы продолжить, вам наверняка придётся обновить некоторые переменные среды. Для установки значений просто запустите env-update, а затем — source /etc/profile.
Листинг 2.4: Обновление переменных среды |
# env-update # source /etc/profile |
Конфигурационный файл Xorg называется xorg.conf и находится в папке /etc/X11. В пакет Xorg-X11 входит его пример под названием /etc/X11/xorg.conf.example, который можно использовать при создании своей собственной конфигурации. Он подробно прокомментирован, но если вы нуждаетесь в подробном описании синтаксиса, не стесняйтесь обратиться к страницам справки:
Листинг 3.1: Чтение страницы справки xorg.conf |
# man 5 xorg.conf
|
Счастливого чтения всем желающим. Мы, конечно же, не из их числа, поэтому перейдем к выяснению, как можно создать файл автоматически.
По умолчанию: автоматическая генерация xorg.conf
Xorg способен самостоятельно подобрать большинство параметров за вас. Скорее всего, вам потребуется всего лишь изменить несколько строк, чтобы установить желаемое разрешение экрана. Если вы заинтересованы в более глубокой настройке, обязательно просмотрите ресурсы, указанные в конце этой главы. Но сначала давайте создадим (надеемся, работающий) конфигурационный файл Xorg.
Листинг 3.2: Генерация файла xorg.conf |
# Xorg -configure
|
Обязательно прочтите последние строки, выводимые после завершения опроса оборудования Xorg. Если вы увидите, что где-то Xorg не удалось правильно опознать устройства, то вам придётся править файл xorg.conf вручную. Если же всё прошло гладко, Xorg должен сообщить вам, что создан файл и готов для тестирования файл /root/xorg.conf.new. Давайте его испытаем :)
Листинг 3.3: Тестирование файла xorg.conf.new |
# X -config /root/xorg.conf.new
|
Если всё в порядке, вы увидите чёрно-белый узор. Проверьте, работает ли мышь, и подходит ли разрешение экрана. Вы вряд ли точно угадаете разрешение, но всё же заметите слишком низкое. Выйти можно в любой момент, нажав комбинацию клавиш Ctrl+Alt+Backspace.
Альтернатива: полуавтоматическая генерация xorg.conf
В Xorg есть утилита xorgconfig, задающая различные вопросы о вашей системе (о графическом адаптере, клавиатуре и т.п.). Основываясь на ваших ответах, она создаст файл xorg.conf.
Листинг 3.4: Полуавтоматическая генерация xorg.conf |
# xorgconfig
|
Другая утилита, также входящая в пакет Xorg — xorgcfg, которая сначала пытается выполнить Xorg -configure, а затем запускает X-сервер для более тонкой настройки.
Листинг 3.5: Использование xorgcfg |
# xorgcfg (если X даст сбой, или настройка завершится неудачей, попробуйте:) # xorgcfg -textmode |
Теперь давайте скопируем xorg.conf.new в /etc/X11/xorg.conf, чтобы не приходилось постоянно запускать Xorg -config: набирать просто X или startx гораздо легче :)
Листинг 3.6: Копирование поверх xorg.conf |
# cp /root/xorg.conf.new /etc/X11/xorg.conf
|
Теперь попробуйте ввести startx, чтобы запустить свой X-сервер. startx — это сценарий, запускающий сеанс X, то есть серверы X, а поверх них — некоторые графические приложения. Он решает, какие приложения запустить, исходя из следующей логики:
Листинг 3.7: Запуск X |
# startx
|
Если вы увидели уродливый, отвратительный, омерзительный, безобразный диспетчер окон, то это — twm. Чтобы завершить сеанс twm, наберите exit или нажмите Ctrl-D в одном из терминалов xterm. «убить» сеанс X также можно, нажав комбинацию клавиш Ctrl+Alt+Backspace, чтобы «выгнать его с позором» — наверно, такой вариант годится не всегда. Хотя это не причинит тяжёлого вреда :)
Если вы чувствуете, что разрешение экрана неподходящее, вам потребуется проверить два раздела конфигурации. Прежде всего, разделеScreen, где перечисляются варианты разрешения экрана, с которыми может запускаться X-сервер. По умолчанию в этом разделе может вообще не быть никаких строк о разрешении экрана. В таком случае Xorg оценивает допустимое разрешение на основе данных из другого раздела: Monitor.
При этом Xorg для вычисления правильных вариантов разрешения использует значения HorizSync (частота строк) и VertRefresh (частота кадров) из раздела Monitor. Пока что оставьте эти параметры как есть. Лишь в том случае, когда изменения в разделе Screen (которые мы опишем чуть ниже) не помогают, вам придется заглянуть в технические характеристики своего монитора и указать правильные значения. Также можно воспользоваться программой, определяющей технические характеристики вашего монитора, например, sys-apps/ddcxinfo-knoppix.
Предупреждение: Не меняйте «просто так» значения этих двух относящихся к монитору переменных, не сверившись с техническими характеристиками своего монитора. Неправильные значения могут привести в лучшем случае к срыву синхронизации, а в худшем случае — к сгоревшему монитору. |
Теперь давайте поменяем значения разрешения. В следующем примере, взятом из /etc/X11/xorg.conf, мы добавим строчки Modes (режимы) и DefaultDepth (цветность), чтобы X-сервер по умолчанию запускался в режиме 24 бит при 1024x768 разрешении экрана. Особо не обращайте внимания на значения — это просто пример и, скорее всего, они будут отличаться от настроек вашей системы.
Листинг 4.1: Изменение раздела Screen /etc/X11/xorg.conf |
Section "Screen" Identifier "Default Screen" Device "S3 Inc. ProSavage KN133 [Twister K]" Monitor "Generic Monitor" DefaultDepth 24 # несколько строк пропущены для наглядности SubSection "Display" Depth 24 Modes "1024x768" EndSubSection EndSection |
Запустите X (startx), чтобы обнаружить, что сервер использует желаемое разрешение :)
Чтобы настроить X на использование национальных раскладок, найдите раздел InputDevice (устройство ввода), определяющий настройки клавиатуры, и добавьте параметр XkbLayout с указанием необходимой раскладкы. Для примера, покажем, как добавить бельгийскую раскладку. Просто измените код страны на свой:
Листинг 4.2: Changing the keyboard layout |
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "be"
EndSection
|
Если ваша мышь не работает, сначала придётся выяснить, обнаружена ли она вообще ядром. Мыши (в качестве устройств) выглядят как /dev/input/mouse0 (или /dev/input/mice, если вы хотите использовать несколько мышек). В некоторых случаях используется название /dev/psaux. В любом случае, вы можете убедиться, что устройство соответствует вашей мыши, просмотрев вывод соответствующего файла устройства, одновременно передвигая мышь. В большинстве случаев на экране должна появиться бессмыслица. Для остановки вывода нажимайте Ctrl-C.
Листинг 4.3: Проверка файла устройства |
# cat /dev/input/mouse0 (не забудьте нажать Ctrl-C для завершения) |
Если ваша мышь не обнаружена, проверьте, все ли необходимые модули загружены.
Если же ваша мышь найдена, впишите устройства в соответствующий раздел InputDevice. В следующем примере видно, как мы устанавливаем еще два параметра: Protocol (определяет протокол, используемый мышью; у большинства пользователей — PS/2 или IMPS/2) и ZAxisMapping (позволяющий задействовать колесико, если есть).
Листинг 4.4: Изменение настройки мыши в Xorg |
Section "InputDevice" Identifier "TouchPad Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mouse0" Option "Protocol" "IMPS/2" Option "ZAxisMapping" "4 5" EndSection |
Запустите startx и порадуйтесь результату :). Поздравляем, теперь (надеемся) у вас есть работающий Xorg. Следующий шаг — удалить этот ужасный облегченный диспетчер окон, и использовать «нафаршированный» возможностями диспетчер окон (или даже рабочую среду), такой как KDE или GNOME, но это не входит в рамки данного руководства :)
Создание и детальная настройка xorg.conf
Прежде всего, в man 5 xorg.conf дается краткое, но полное описание синтаксиса конфигурационного файла. Обязательно держите эту страницу открытой в соседнем терминале при редактировании своего конфигурационного файла!
Второй источник информации на вашей системе — каталог /usr/X11R6/lib/X11/doc, где находятся различные описания README для конкретных графических чипсетов.
В сети также есть много сведений о настройке xorg.conf. Мы перечислим лишь некоторые из них; обязательно погуглите, чтобы найти другие :). Так как в большинстве параметров xorg.conf и XF86Config (конфигурационного файла для XFree86) используется одинаковый синтаксис, а информации о XFree86 больше, мы ссылаемся и на такие ресурсы.
Если вы хотите обновить свою систему со старым монолитным Xorg на новый модульный Xorg 7, прочтите руководство по переходу на модульный X (англ.)
Дальнейшая информация по настройке различных пакетов, для работы в среде X находится в разделе графическая среда Gentoo нашей документации.
Текст этого документа распространяется на условиях лицензии Creative Commons - Attribution / Share Alike.