Настройка Xorg : Графический интерфейс, Xnest, xterm, кодировка


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

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

Xorg -configure

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

Modes "1280×1024"

Рекомендую рассчитать собственные 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 перестаёт воспринимать мышку и ей можно пользоваться, как обычно.


Комментарии запрещены.




Статистика