Глава 11. X Window System и виртуальные консоли

11.1. Что такое X Window System?
11.2. Какие реализации X существуют для FreeBSD?
11.3. Будут ли имеющиеся приложения работать с пакетом Xorg?
11.4. Всё же почему разделились два проекта X?
11.5. Почему для установки по умолчанию во FreeBSD были выбраны порты Xorg?
11.6. Я хочу запустить X, как это сделать?
11.7. Я попытался запустить X, но получил сообщение “KDENABIO failed (Operation not permitted)” после ввода команды startx. Что мне теперь делать?
11.8. Почему моя мышь не работает с X?
11.9. У моей мыши есть колёсико. Могу ли я его использовать при работе в X?
11.10. Как использовать удалённые X-дисплеи?
11.11. Меню и диалоговые окна в X Window работают неправильно!
11.12. Что такое виртуальные консоли и как изменить их количество?
11.13. Как осуществляется доступ к виртуальным консолям из X?
11.14. Как запустить XDM во время загрузки?
11.15. При запуске xconsole выдаётся сообщение “Couldn't open console”.
11.16. Раньше я запускал XFree86, работая как обычный пользователь, а теперь при запуске выдается сообщение о том, что я должен быть пользователем root!
11.17. Моя мышь PS/2 в X работает неправильно.
11.18. Почему моя мышь PS/2 от MouseSystems не работает?
11.19. При компиляции приложений для X программа imake не может найти файл Imake.tmpl. Где он находится?
11.20. Я хочу установить другой X-сервер.
11.21. Как поменять местами кнопки мыши?
11.22. Как установить экранную заставку и где такие заставки можно найти?
11.23. Можно ли в X использовать клавиши Windows®, которые есть на клавиатуре?
11.24. Как заставить работать аппаратное ускорение 3D-графики для OpenGL®?

11.1. Что такое X Window System?

X Window System является самой широкодоступной оконной системой, которая может работать на UNIX® и UNIX-подобных системах, в том числе и во FreeBSD. Разработкой стандартов на используемый X-протокол занимается организация The X.Org Foundation. На данный момент последняя версия спецификаций имеет номер 11.6, поэтому вы часто будете встречать краткую ссылку на них в виде сокращения X11R6 или даже просто X11.

Для разных архитектур и операционных систем существует множество реализаций этой системы. Реализацию кода для серверной части называют X-сервером.

11.2. Какие реализации X существуют для FreeBSD?

Исторически складывалось так, что во FreeBSD в качестве используемой по умолчанию реализации X выступал пакет XFree86™, который поддерживает The XFree86 Project, Inc. Данное программное обеспечение устанавливалось по умолчанию в версиях FreeBSD до 4.10 и 5.2. Хотя Xorg поддерживала в то время свою реализацию, в целом она позиционировалась как ссылочная платформа, от чего долгие годы значительно страдала.

Однако в начале 2004 года несколько разработчиков XFree86 покинули проект из-за разногласий по поводу темпов внесения изменений в код, будущего направления развития и личных конфликтов. Теперь они передают свой код непосредственно в Xorg. Одновременно с этим Xorg обновила своё дерево исходных текстов до состояния, соответствующего последнему релизу XFree86 перед изменением лицензионного соглашения (XFree86 version 4.3.99.903), включила туда множество изменений, ранее поддерживаемых отдельно, и выпустила этот набор как X11R6.7.0. Существует отдельный, но связанный с этим проект freedesktop.org (для краткости fd.o), работающий над перепроектированием оригинального кода XFree86, в котором больше нагрузки должно лечь на графический адаптер (для улучшения производительности), и который должен стать более модульным (для улучшения поддержки и ускорения выпуска релизов, а также упрощения настройки). Xorg планирует включить изменения, разработанные freedesktop.org, в свои будущие релизы.

С июля 2004 в FreeBSD-CURRENT в качестве реализации, используемой по умолчанию, XFree86 была заменена на Xorg. Порты для XFree86 (x11/XFree86-4 и зависимые от него) остаются в Коллекции портов и будут использоваться по умолчанию для FreeBSD-STABLE.

Замечание: Текст выше описывает реализацию X, установленную по умолчанию. Вообще возможна установка любой реализации в соответствии с указаниями от 20040723, находящимися в файле /usr/ports/UPDATING.

Внимание: Пока невозможно смешивать части разных реализаций; необходимо выбрать какую-то одну из имеющихся.

Замечание: Последующие вопросы относятся к реализации XFree86, однако большинство из них относятся также и к реализации Xorg. Хотя в качестве конфигурационного файла для реализации Xorg по умолчанию выступает xorg.conf, в случае его отсутствия ищется XF86Config.

11.3. Будут ли имеющиеся приложения работать с пакетом Xorg?

Программное обеспечение Xorg разработано в соответствии с теми же спецификациями X11R6, которым удовлетворяет XFree86, так что основная масса приложений будет работать без изменений. Использование нескольких редко используемых протоколов (XIE, PEX и lbxproxy) будет ограничено, однако первые два из них портом XFree86 для FreeBSD тоже не поддерживаются.

11.4. Всё же почему разделились два проекта X?

Ответ на этот вопрос находится вне круга проблем, описываемых в FAQ. Заметим, что в Internet в архивах различных списков рассылки хранится объёмная переписка. Для изучения истории этого вопроса, пожалуйста, воспользуйтесь вашей любимой поисковой системой, а не задавайте вопросы в списках рассылки FreeBSD. Может статься, что только непосредственные участники событий будут знать доподлинно все произошедшее.

11.5. Почему для установки по умолчанию во FreeBSD были выбраны порты Xorg?

Разработчики Xorg заявляют, что их целями является более частый выпуск релизов и быстрое добавление новых функций. Если они смогут это осуществить, что их разработка будет весьма привлекательна. Кроме того, использование их программного обеспечение продолжает подпадать под условия стандартного для X лицензионного соглашения, когда как XFree86 пользуется несколько модифицированным её вариантом.

Замечание: Данное решение всё ещё выглядит сомнительным. Только время покажет, какая же реализация технически превосходит другую. Пользователь FreeBSD должен сам выбрать, какой реализации он отдаёт предпочтение.

11.6. Я хочу запустить X, как это сделать?

Самый простой способ - это указать во время установки, что вы хотите использовать X.

Если вы планируете установить X на уже работающую систему, то вам необходимо использовать мета-порт x11/xorg, который построит и установит все необходимые компоненты.

Затем следуйте указаниям в документации по утилите xorgconfig(1), которая предназначена для настройки Xorg на работу с вашим графическим адаптером/мышью/и т.д. Вас может также заинтересовать утилита xorgcfg(1), которая обеспечивает процесс настройки X графическим интерфейсом.

Для получения более полной информации прочтите раздел о X11 Руководства FreeBSD.

Вы можете также попробовать сервер Xaccel. За подробной информацией обратитесь к разделу, посвящённому продуктам фирмы Xi Graphics.

11.7. Я попытался запустить X, но получил сообщение “KDENABIO failed (Operation not permitted)” после ввода команды startx. Что мне теперь делать?

Вероятнее всего, в вашей системе установлен повышенный уровень безопасности. При повышенном уровне защиты систему X запустить невозможно, потому что X требуются права на операции записи в устройство /dev/io. Дополнительную информацию можно найти на страницах справочной системы по init(8).

Так что вопрос сводится к тому, как вам это обойти, и у вас здесь есть в основном два варианта: понизить ваш уровень защиты обратно к нулю (обычно это делается в /etc/rc.conf) или во время загрузки запускать xdm(1) (до того, как повышается уровень защиты).

Обратитесь к В: 11.14. для получения более полной информации о запуске xdm(1) во время загрузки.

11.8. Почему моя мышь не работает с X?

Если вы используете syscons (стандартный драйвер консоли), то можете настроить поддержку указателя мыши во всех виртуальных экранах. Во избежание конфликтов с X, драйвер syscons поддерживает виртуальное устройство /dev/sysmouse. Все события, получаемые от реальной мыши, пишутся в устройство sysmouse через moused. Если вы хотите использовать вашу мышь на одной или нескольких виртуальных консолях, продолжая использовать X, посмотрите В: 4.4.4. и настройте moused.

Затем отредактируйте /etc/X11/XF86Config так, чтобы в нём были следующие строки.

Section        Pointer
Protocol       "SysMouse"
Device         "/dev/sysmouse"
.....

Пример выше предназначен для XFree86 3.3.2 и выше и для Xorg 6.7.0. Для более ранних версий параметр Protocol должен быть MouseSystems.

В случае использования Xorg, редактируйте /etc/X11/xorg.conf. Хотя, указанный выше формат записи поддерживается по причинам совместимости, предпочтительнее использовать секцию InputDevice, как в следующем примере:

Section "InputDevice"
   Option          "Protocol" "SysMouse"
   Option          "Device" "/dev/sysmouse"
.....

Некоторые предпочитают использовать в X устройство /dev/mouse. Чтобы оно работало, файл устройства /dev/mouse должен являться ссылкой на /dev/sysmouse (посмотрите справку по sysmouse(4)):

# cd /dev
# rm -f mouse
# ln -s sysmouse mouse

11.9. У моей мыши есть колёсико. Могу ли я его использовать при работе в X?

Да.

Вам нужно указать X, что используется 5-кнопочная мышь. Для этого просто добавьте строчки Buttons 5 и ZAxisMapping 4 5 в раздел ''InputDevice'' файла /etc/XF86Config. Например, в вашем файле /etc/XF86Config секция ''InputDevice'' может принять такой вид:

Пример 11-1. Секция ''InputDevice'' для мыши с колёсиком из конфигурационных файлов для XFree86™ и Xorg

Section "InputDevice"
   Identifier      "Mouse1"
   Driver          "mouse"
   Option          "Protocol" "auto"
   Option          "Device" "/dev/sysmouse"
   Option          "Buttons" "5"
   Option          "ZAxisMapping" "4 5"
EndSection

Пример 11-2. Пример ''.emacs'' для простой прокрутки страницы при помощи мыши с колёсиком (опционально)

;; wheel mouse
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)

11.10. Как использовать удалённые X-дисплеи?

Из соображений обеспечения информационной безопасности открывать удалённые окна на машине по умолчанию запрещено.

Для включения этой возможности просто запустите X с аргументом -listen_tcp:

% startx -listen_tcp

11.11. Меню и диалоговые окна в X Window работают неправильно!

Попробуйте выключить Num Lock.

Если клавиша Num Lock во время загрузки по умолчанию включена, добавьте в секцию Keyboard файла XF86Config следующую строку.

# Let the server do the NumLock processing.  This should only be
# required when using pre-R6 clients
    ServerNumLock

11.12. Что такое виртуальные консоли и как изменить их количество?

Виртуальные консоли, упрощённо говоря, позволяют вам иметь несколько одновременных сеансов работы с той же самой машиной без установки какой бы то ни было сети или запуска X.

При запуске системы после вывода сообщений этапа загрузки на консоль выдаётся приглашение на вход в систему. Вы можете ввести своё имя и пароль и начать работать (или играть!) на первой виртуальной консоли.

В какой-то момент вы можете захотеть запустить ещё одну сеанс, скажем, чтобы заглянуть в документацию по программе, которую вы запустили или для для чтения электронной почты во время ожидания завершения передачи данных по FTP. Просто нажмите Alt+F2 (удерживая клавишу Alt, нажмите F2) и вы обнаружите приглашение, ждущее вас на второй ''виртуальной консоли''! Когда захотите вернуться к первоначальному сеансу, нажмите Alt+F1.

После установки по умолчанию во FreeBSD задействованы восемь виртуальных консолей, а комбинации клавиш Alt+F1, Alt+F2, Alt+F3 и так далее служат для переключения между ними.

Чтобы увеличить количество консолей, отредактируйте файл /etc/ttys (посмотрите справку по ttys(5)), добавив туда записи для терминалов с именами от ttyv4 до ttyvc после слов ''Virtual terminals'':

# Edit the existing entry for ttyv3 in /etc/ttys and change
# "off" to "on".
ttyv3   "/usr/libexec/getty Pc"         cons25  on secure
ttyv4   "/usr/libexec/getty Pc"         cons25  on secure
ttyv5   "/usr/libexec/getty Pc"         cons25  on secure
ttyv6   "/usr/libexec/getty Pc"         cons25  on secure
ttyv7   "/usr/libexec/getty Pc"         cons25  on secure
ttyv8   "/usr/libexec/getty Pc"         cons25  on secure
ttyv9   "/usr/libexec/getty Pc"         cons25  on secure
ttyva   "/usr/libexec/getty Pc"         cons25  on secure
ttyvb   "/usr/libexec/getty Pc"         cons25  on secure

Используйте из них столько, сколько посчитаете нужным. Чем больше виртуальных терминалов у вас имеется, тем больше ресурсов они используют; это может иметь значение, если у вас меньше чем 8 Мбайт ОЗУ. Вы можете сменить статус консолей с secure на insecure.

Важно: Если вы хотите запустить X, вы должны оставить для него по крайней мере один неиспользуемый (или выключенный) виртуальный терминал. Таким образов, если вы хотите иметь приглашения login на всех двенадцати функциональных клавиши, то вам не повезло - вы можете это сделать только для одиннадцати из них, если хотите на этой же машине ещё запустить X-сервер.

Самым простым способом убрать консоль является просто её выключение. Например, если вы запустили на всех 12 консолях виртуальные терминалы, как указано выше, и ещё хотите запустить X, то должны будете изменить параметры двенадцатого виртуального терминала с:

ttyvb   "/usr/libexec/getty Pc"         cons25  on  secure

на:

ttyvb   "/usr/libexec/getty Pc"         cons25  off secure

Если на вашей клавиатуре только десять функциональных клавиш, то последние строки будут выглядеть так:

ttyv9   "/usr/libexec/getty Pc"         cons25  off secure
ttyva   "/usr/libexec/getty Pc"         cons25  off secure
ttyvb   "/usr/libexec/getty Pc"         cons25  off secure

(Вы также можете просто их удалить.)

После того, как вы отредактировали файл /etc/ttys, проверьте, что у вас имеется достаточное количество устройств для виртуальных терминалов. Самый простой способ сделать это:

# cd /dev
# sh MAKEDEV vty12

Замечание: Во FreeBSD 5.X и выше при использовании DEVFS, вам не нужно создавать устройства вручную, потому что необходимые файлы устройств будут создаваться в каталоге /dev автоматически.

Самым простым (и надёжным) способом активировать виртуальные консоли является перезагрузка. Однако если вы вовсе не хотите этого делать, просто остановите X Window System и выполните (как пользователь root):

# kill -HUP 1

При этом требуется, чтобы вы полностью закрыли X Window, если она была запущена, до запуска этой команды. Если вы это не сделаете, ваша система может повиснуть/заблокироваться после выполнения команды kill.

11.13. Как осуществляется доступ к виртуальным консолям из X?

Используйте комбинацию клавиш Ctrl+Alt+Fn для переключения обратно в виртуальную консоль. Нажатие Ctrl+Alt+F1 вернёт вас на первую виртуальную консоль.

После того, как вы оказались в текстовой консоли, можете использовать, как обычно, комбинации Alt+Fn для переключения между ними.

Чтобы вернуться в сеанс работы X, вы должны переключиться в виртуальную консоль, на которой запущена X Window. Если вы запустили X из командной строки (например, при помощи команды startx), то сеанс работы X будет привязан к следующей неиспользуемой виртуальной консоли, а не к той текстовой консоли, с которой он был запущен. Если у вас имеется восемь активных виртуальных терминалов, то X будет работать на девятом, и вам нужно будет воспользоваться комбинацией Alt+F9 для возврата в X.

11.14. Как запустить XDM во время загрузки?

Есть две философские школы, проповедующие различные методы запуска xdm(1). Последователи одного течения запускают xdm из /etc/ttys (посмотрите ttys(5)), используя приводимый пример, тогда как другие вставляют запуск xdm в скрипт rc.local (посмотрите справку по rc(8)) или X.sh, помещая последний в каталог /usr/local/etc/rc.d. Оба метода равноправны, и один из них может работать в ситуациях, с которыми не справляется другой и наоборот. В обоих случая результат один и тот же: X выводит графическое приглашение login:.

Плюсом метода с использованием ttys является документирование того, на каком vty будет запущен X и то, что ответственность за перезапуск X-сервера при завершении сеанса работы лежит на процессе init. Метод с использованием rc.local позволяет просто прекратить работу xdm, если при запуске X возникли какие-нибудь проблемы.

Из rc.local xdm должен быть запущен без аргументов, (то есть как даемон). xdm должен быть запущен ПОСЛЕ запуска getty(8), иначе они будут конфликтовать, блокируя консоль. Лучше всего выдержать паузу секунд на 10 и потом запустить xdm.

Если xdm запускается из /etc/ttys, то есть вероятность конфликта между xdm и getty(8). Одним из способов избежать этого является добавление номера vt в файл /usr/X11R6/lib/X11/xdm/Xservers.

:0 local /usr/X11R6/bin/X vt4
 

В вышеприведённом случае X-серверу указывается работать на /dev/ttyv3. Заметьте, что номера отличаются на единицу. Дело в том, что X-сервер считает vty от единицы, когда как отсчёт vty в ядре FreeBSD ведётся с нуля.

11.15. При запуске xconsole выдаётся сообщение “Couldn't open console”.

Если вы запускаете X с использованием сценария startx права на устройство /dev/console не изменяются, поэтому такие программы, как xterm -C и xconsole, не будут работать.

Это зависит от прав доступа, установленных для консоли по умолчанию. В многопользовательской системе вовсе не нужно, чтобы любой пользователь мог выводить информацию на системную консоль. Для пользователей, вошедших в систему через VTY, для решения этой проблемы существует файл fbtab(5).

В общем, раскомментируйте строчку вида

/dev/ttyv0 0600 /dev/console
 

в файле /etc/fbtab (посмотрите справку по fbtab(5)), и этого будет достаточно для того, чтобы всякий, кто вошёл в систему с терминала /dev/ttyv0, имел доступ к консоли.

11.16. Раньше я запускал XFree86, работая как обычный пользователь, а теперь при запуске выдается сообщение о том, что я должен быть пользователем root!

Все X-серверы должны запускаться пользователем root, чтобы иметь прямой доступ к вашему видеооборудованию. Более старые версии XFree86 (<= 3.3.6) устанавливали все поставляемые серверы так, что они автоматически запускались пользователем root (с установленным битом смены владельца запускаемого процесса). Несомненно, это рискованно, потому что X-серверы являются большими, сложными программами. Более новые версии XFree86 не устанавливают на серверах бит смены владельца на пользователя root именно по этой причине.

Очевидно, что запускать X-сервер, работая как пользователь root, неправильно и небезопасно. Есть два способа использовать X, работая как обычный пользователь. Первый способ заключается в использовании xdm или другого менеджера дисплеев (к примеру, kdm); второй способ - в использовании программы Xwrapper.

xdm представляет собой даемон, который обрабатывает входы в систему в графическом режиме. Обычно он запускается во время загрузки и отвечает за аутентификацию пользователей и запуск их сеансов; практически это графический аналог программ getty(8) и login(1). Более подробная информация о xdm находится в документации по XFree86 и в соответствующем разделе FAQ.

Xwrapper является оболочкой для X-сервера; это маленькая утилита. позволяющая кому-либо запускать X-сервер и достаточно безопасная в использовании. Она выполняет некоторую проверку передаваемых ей в командной строке аргументов, и если всё в порядке, запускает соответствующий X-сервер. Если по каким-либо причинам вы не хотите запускать менеджер дисплеев, то эта утилита вам подойдет. Если у вас установлена полная коллекция портов, вы можете найти этот порт в каталоге /usr/ports/x11/wrapper.

11.17. Моя мышь PS/2 в X работает неправильно.

Вполне может быть, что ваша мышь и её драйвер рассинхронизировались.

В редких случаях драйвер может ошибочно обнаруживать проблемы с синхронизацией, и вы будете видеть такие сообщения ядра:

psmintr: out of sync (xxxx != yyyy)

и заметите, что мышь теперь работает неправильно.

Если это случится, отмените проверку согласования, установив значение флага для драйвера мыши PS/2 в 0x100. Войдите в конфигуратор UserConfig, задав опцию -c в приглашении загрузчика:

boot: -c

Затем в командной строке UserConfig наберите:

UserConfig> flags psm0 0x100
UserConfig> quit

11.18. Почему моя мышь PS/2 от MouseSystems не работает?

Было несколько сообщений, что некоторые модели мышей PS/2 от MouseSystems работают только в режиме ''высокого разрешения''. В других режимах курсор мыши постоянно прыгает в верхний левый угол экрана.

Укажите флаг 0x04 драйверу мыши PS/2 для перевода её в режим высокого разрешения. Войдите в UserConfig, задав опцию -c в приглашении загрузчика:

boot: -c

Затем в командной строке UserConfig наберите:

UserConfig> flags psm0 0x04
UserConfig> quit

В предыдущем разделе описана возможная причина проблем с мышью.

11.19. При компиляции приложений для X программа imake не может найти файл Imake.tmpl. Где он находится?

Файл Imake.tmpl является частью пакета Imake, стандартного инструмента для построения X-приложений. Он, также как ещё несколько заголовочных файлов, требуемых для построения X-приложений, содержится в дистрибутиве программ X. Вы можете их установить из sysinstall(8) или взять из дистрибутива X.

11.20. Я хочу установить другой X-сервер.

В версиях FreeBSD, предшествующих 5.3, по умолчанию будет использоваться XFree86 4.X, а в последующих версиях по умолчанию будет использоваться Xorg. Если вы хотите использовать реализацию X11, отличную от используемой по умолчанию, добавьте следующую строку в файл /etc/make.conf (если у вас этого файла нет, создайте его):

X_WINDOW_SYSTEM=        xorg

Эта переменная может приниматься значения xorg, xfree86-4 или xfree86-3.

11.21. Как поменять местами кнопки мыши?

Поместите команду xmodmap -e "pointer = 3 2 1" в один из ваших скриптов .xinitrc или .xsession.

11.22. Как установить экранную заставку и где такие заставки можно найти?

Во FreeBSD есть возможность вывода ''заставки'' во время загрузки. На данный момент экраны заставок должны быть 256-цветными файлами формата BMP *.BMP или ZSoft PCX (*.PCX). Кроме того, они должны иметь размер 320x200 или меньше для работы со стандартными адаптерами VGA. Если вы включили поддержку VESA при компиляции ядра, сможете использовать заставки размером до 1024x768. Реальная поддержка VESA может быть вкомпилирована в ядро при указании опции VESA либо загружена в виде kld-модуля ядра во время начальной загрузки.

Чтобы использовать заставку, вам нужно изменить файлы, управляющие процессом загрузки FreeBSD.

Вам нужно создать файл /boot/loader.rc, содержащий следующие строки:

include /boot/loader.4th
start

и файл /boot/loader.conf со строками:

splash_bmp_load="YES"
bitmap_load="YES"

Здесь предполагается, что в качестве заставки вы используете файл /boot/splash.bmp. Если вы используете PCX-файл, скопируйте его под именем /boot/splash.pcx, создайте файл /boot/loader.rc, как указано выше, и создайте файл /boot/loader.conf, который содержит следующее:

splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"

Теперь всё, что вам нужно - это сама заставка. Поищите заставки в галерее по адресу http://www.baldwin.cx/splash/.

11.23. Можно ли в X использовать клавиши Windows®, которые есть на клавиатуре?

Да. Всё, что вам нужно сделать, это с помощью xmodmap(1) задать функции, которые вы хотите к этим клавишам привязать.

Положим, что все клавиатуры ''Windows'' стандартны и 3 клавиши имеют следующие клавиатурные коды

  • 115 - клавиша Windows между клавишами Ctrl и Alt с левой стороны

  • 116 - клавиша Windows справа от клавиши AltGr

  • 117 - клавиша Menu, слева от клавиши Ctrl, находящейся справа

Чтобы заставить левую клавишу Windows набирать запятую, попробуйте выполнить такую команду:

# xmodmap -e "keycode 115 = comma"

Чтобы увидеть результат, вам нужно будет перезапустить ваш оконный менеджер.

Для того, чтобы переопределения клавиш Windows выполнялось автоматически каждый раз при запуске X, можно поместить вызов команд xmodmap в ваш ~/.xinitrc либо, что предпочтительней, создать файл ~/.xmodmaprc и включить в него параметры для xmodmap, по одному на строку, и добавить строку

xmodmap $HOME/.xmodmaprc

в ваш ~/.xinitrc.

Например, вы можете переопределить эти 3 клавиши так, чтобы они выполняли функции клавиш F13, F14 и F15 соответственно. Это позволит легко привязать их к полезным функциям в приложениях или вашем менеджере окон, как будет показано далее.

Чтобы сделать это, поместите в файл ~/.xmodmaprc вот такие строки:

keycode 115 = F13
keycode 116 = F14
keycode 117 = F15

Если, к примеру, вы используете fvwm2, то можете переопределить клавиши таким образом, что F13 сворачивает в иконку (или восстанавливает предыдущие размеры) окна, на которое указывает курсор, F14 перемещает окно с курсором на передний план или, если оно уже впереди, возвращает обратно, а F15 вызывает главное меню приложения Workplace, даже если курсор находится не на рабочем столе, что бывает полезно, если нет ни одного видимого кусочка рабочего стола (к тому же логотип на клавише соответствует этой функции).

Вот строки из ~/.fvwmrc, с помощью которых достигаются описанные выше функции:

Key F13        FTIWS    A        Iconify
Key F14        FTIWS    A        RaiseLower
Key F15        A        A        Menu Workplace Nop

11.24. Как заставить работать аппаратное ускорение 3D-графики для OpenGL®?

Наличие 3D-ускорения зависит от версии используемого вами сервера XFree86 или Xorg и типа графического адаптера. Если у вас адаптер NVIDIA, то вы можете использовать бинарные файлы драйверов для FreeBSD, размещённые в разделе Drivers их сайта. Дополнительную информацию об использования аппаратного ускорения в XFree86-4 или Xorg с другими адаптерами, включая Matrox G200/G400, ATI Rage 128/Radeon, а также 3dfx Voodoo 3, 4, 5 и Banshee, можно почерпнуть на страничке XFree86-4 Direct Rendering on FreeBSD. Пользователи XFree86 версии 3.3 могут воспользоваться портом Utah-GLX, находящимся в graphics/utah-glx, для получения частичного ускорения OpenGL для наборов микросхем Matrox Gx00, ATI Rage Pro, SiS 6326, i810, Savage и старых адаптеров NVIDIA.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.