Программирование
On-line приложения
Почитать
Web-сервер Apache
Печать и форматирование
MySQL
Разные рецепты
Сборка/установка
Справки
Философия
Мой опыт
Скачать
Программы на Tcl/Tk (GUI)
Программы на Python/Tk (GUI)
Программы (CLI)
Help
Хобби
Фракталы
on-line
Язык для рисования фракталов
Гиперкуб
Теория относительности
Ампуллярии
Преподавание
Студенту/абитуриенту
Мой опыт
Автора!

Настройка Xorg

Начальная настройка Xorg

Конфигурационный файл составляется автоматически по команде

Xorg -configure

Далее прописываем определённую моду в секцию "Screen", например так:

Modes "1280x1024"

Рекомендую рассчитать собственные ModeLine'ы. Я предпочитаю делать это программой umc. В Xorg идёт очень приятная утилита gtf.

Обязательно добавляем пути к шрифтам, в файле, создаваемом автоматически многого не хватает. Если вы будите подключать TTF-шрифты, то вам может понадобиться ttmkfdir, эта утилита не входит в состав Xorg по умолчанию. Причём, утилита ttmkfdir создаёт только koi8-шрифты; чтобы продублировать их и в windows-кодировке, можно пропустить файл fonts.dir через вот такой фильтр:

#!/usr/bin/perl
my $c=<>; my $t='';
while (<>) {
  $t.=$_;
  if (s/-koi8-ru$/-microsoft-cp1251/) { $t.=$_; $c++; }
}
print "$c\n$t"

Строка -microsoft-cp1251 должна соответствовать тому, что написано в вашем файле encodings.dir.

Русифицируем клавиатуру:

Option  "XkbLayout" "us,ru(winkeys)"
Option  "XkbModel" "pc105"
Option  "XkbRules" "xfree86"
Option  "XkbOptions" "grp:menu_toggle"

После этого переключение русский/английский будет происходить при нажатии на кнопку «меню» (обычно слева от правого Ctrl).

Подключаем колесо у мыши:

Option       "ZAxisMapping" "4 5"

Настраиваем DPMS — систему энергосбережения монитора:

Section "ServerFlags"
   Option      "StandbyTime" "3"
   Option      "SuspendTime" "4"
   Option      "OffTime"     "5"
EndSection

Цифрами указаны интервалы времени в минутах.

Пишем Option "DPMS" в секции "Monitor". Теперь DPMS включена.

Настройка xinit

Я не использую startx и прочие запускалики X. Вместо них я вызываю простой xinit. Сессия X инициализируется файлом .xinitrc. У меня в нём написано:

#!/bin/sh
xsetroot -cursor_name top_left_arrow -solid black
xset b 100 100 10
/home/a/bin/evilwm \
 -mask1 mod4 \
 -mask2 mod4 \
 -altmask alt \
 -snap 10 \
 -fg khaki2 -bg khaki4 -fc brown4 \
 -app Michurin -s &
display -window root util/file.png
#exec xclock
exec ~/bin/panel -geometry +0-0

Как видите, я устанавливаю атрибуты root-окна, устанавливаю параметры звукового сигнала (короткий, низкий звук). Звук можно выключить вообще, если написать:

xset b off

Далее, запускаю evilwm — мой оконный менеджер. В конце я запускаю свою панельку. Вместо неё можно запускать часы или ещё что-нибудь полезное.

Дополнительные замечания по X-приложениям

Вторая графическая консоль

Графических консолей можно запустить сколько угодно.

Если одна консоль у Вас уже запущена, то вторую можно запустить командой:

xinit -- :1

Третью:

xinit -- :2

И так далее.

Запускать новые графические консоли можно и из текстовой консоли и из другой графической.

Новая графическая консоль внутри существующей (Xnest)

Мало кто знает, что в X существует специфический X-сервер — Xnest. Он запускается в окне уже существующей X-консоли.

Проще всего его можно запустить так:

Xnest :1

Если вы имеете shell на другой машине, то в таком отдельном окне удобно запускать приложения с другой машины. Итак, вы сидите в X на станции A. Запускаете в xterm

Xnest :1 -ac

При этом появляется окно, в котором существует совершенно новый и полностью независимый X-сервер; даже без оконного менеджера. Обратите внимание на -ac, это позволит удалённым клиентам подключаться к вашему X-серверу.

Теперь запускаете xterm, ssh и заходите на удалённую станцию B. На ней вы можете запустить xterm, указав, к какому X-серверу следует подключиться:

xterm -display 192.168.0.5:1

где 192.168.0.5 следует заменить на адрес станции A.

Теперь в вашем Xnest-окне запущен удалённый xterm, можете запускать оконный менеджер и работать: графика у вас, а работает всё на удалённой машине. Т.е. вы получили графическую консоль на удалённую машину в отдельном окне ваше графической консоли. Очень удобно.

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

xterm -display 192.168.0.5:0

Однако, я предпочитаю так не делать по нескольким причинам:

  • Во-первых, когда все окна (и локально- и удалённо- запущенных приложений) находятся на одой консоли, то отличить их бывает не легко. Это может приводить к различным недоразумениям. Работать намного удобнее, когда удалённые приложения «живут» в отдельном окне.
  • Во-вторых, я предпочитаю жёстко ограничивать доступ к X-серверу, не допуская вообще никаких внешних подключений. Отдельную Xnest-консоль можно сделать более доступной, хотя ключ -ac, который я привёл в своём примере — не самый лучший выход, так как он открывает доступ абсолютно всем. По вопросам безопасности и ограничения доступа к X-серверу можно обратиться к man 7 Xsecurity и страницам, на которые ссылается этот мануал.

Xterm с произвольной локалью

Локаль с которой работает xterm совсем не должна совпадать с локалью всей системы. Все приложения, запускаемые в этом xterm будут иметь локаль xterm'а, а не системы, что иногда очень удобно.

Запустить xterm в cp1251-режиме можно скриптом

export LANG=ru_RU.CP1251
exec xterm -vb \
 -fn '-*-lucidatypewriter-medium-*-*-*-14-*-*-*-*-*-*-1251' \
 -e 'sh' >/dev/null 2>&1

Шрифт, естественно, должен существовать в системе; при работе в таком терминале будут абсолютно корректно открываться и редактироваться все windows-файлы, даже если вся система у вас работает в КОИ.

И ещё чуть-чуть про X, xterm и mc

mc в xterm я предпочитаю запускать с ключом -d. Тогда mc перестаёт воспринимать мышку и ей можно пользоваться, как обычно.

На моём сайте вы можете найти дополнительную информацию по консольным вопросам и Xorg-диагностике.

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

Если вы ожидаете получить от меня ответ или разъяснение, пожалуйста укажите e-mail, ICQ или другую контактную информацию.
Ваше сообщение не появится на странице, а просто отправится мне.

© 1999 − 2008 Мичурин Алексей — http://www.michurin.com.ru/