<< Предыдущий раздел | /\ Содержание | >> Следующий раздел

Как указывать ключи X-программам

В отличие от программ командной строки, у которых бывают однобуквенные ключи, которые можно группировать вместе (ls -laR) и длинные ключи, начинающиеся с двойного минуса (ls --help), у программ под X бывают только длинные ключи, причем начинаются они всегда с одиночного символа "-".

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

Стандартные ключи X-программ
КлючНазначение
-helpВыдать краткую справку по ключам программы
-display дисплейЗапустить программу на указанный дисплей
-fg цвет
-foreground цвет
Цвет букв ("цвет переднего плана")
-bg цвет
-background цвет
Цвет фона
-fn шрифт
-font шрифт
Основной шрифт
-geometry геометрияСделать окно указанного размера и/или поместить его в указанном месте на экране
-iconicЗапустить программу сразу "свернутой" в пиктограмму

Описание всех стандартных ключей можно найти в man-странице по X.

Цвета

Что такое цвета в X


Поскольку X-Window работает с дисплеями, у которых цвет кодируется триплетом RGB (Red, Green, Blue), то использует именно такое представление. Цвета можно указывать одним из двух способов: либо триплетом RGB в шестнадцатеричном виде, либо по имени.

При первом способе цвет указывается как "#RRGGBB" -- символ "решетка" и затем шесть шестнадцатиричных цифр -- по две цифры на красный, зеленый и синий. Например, "#FFFFFF" -- белый, "#000000" -- черный, "#CC00CC" -- темно-фиолетовый, а "#92FF41" -- желто-зеленый.

Во втором случае указывается английское название -- "white", "black", "red", "darkblue", "maroon" и т.д.

Замечание
Те, кто знаком с HTML, сразу заметят, что в X цвета указываются точно так же. Дело в том, что первоначально World Wide Web создавалась именно под платформу X-Window, и способ указания цветов перешел из X в HTML практически без изменений.

Как узнать, какие есть цвета


      white
      powderblue
      lightblue
      blue
      darkblue
      steelblue4
      steelblue1
      moccasin
      maroon

X "знает" по именам огромное количество цветов -- несколько сотен. В их число входят "стандартные" цвета типа white, blue, green, их подвиды типа lightblue, darkblue, и даже градации яркости -- SteelBlue1 .. SteelBlue4, а также "экзотика" типа moccasin и PowderBlue. Многие из этих цветов на глаз практически не различимы (а некоторые и просто фигурируют под разными названиями -- например, cyan и cyan1).

Конкретный набор цветов определяется настройкой конкретного X-сервера, но основные цвета (такие, как red, green, black) есть всегда.

Заглавные и маленькие буквы в именах цветов не различаются.

Посмотреть список цветов (и их определений) можно командой showrgb. Она печатает R-, G- и B-компоненты цвета (в десятичной системе) и его имя. Поскольку showrgb выводит на экран огромное количество информации, лучше всего перенаправить вывод команде less.

Замечание
В принципе можно настроить X-сервер так, чтобы он, например, цветом "red" считал "#0000FF", т.е. синий.

Как указывать цвета программам


Xterm, запущенный командой
"xterm -bg darkblue -fg #C0C0C0"

Ключи "-fg" и "-bg" позволяют указывать программам, какие цвета использовать для букв и для фона.

Единственная проблема -- в каждой программе используется много разных элементов, у которых по умолчанию могут быть разные цвета. А эти два ключика могут указывать только один цвет сразу для всех элементов. Но для несложных программ (особенно на основе Athena Widgets, например xterm) это вполне приемлемо.

Замечание
Аналогичная проблема существует и со шрифтами. В X-Window есть средство для более тонкой настройки (причем не обязательно из командной строки), именуемое ресурсами. Но вследствие чрезмерной сложности этой темы мы ее касаться не будем.

Кроме того, многие программы позволяют менять цвета прямо изнутри -- в разнообразных меню настройки.

Шрифты

Что такое шрифты в X


Для сравнения рассмотрим, как именуются шрифты в Windows. Там для однозначного указания шрифта служат три параметра: гарнитура, начертание и размер. Например, Arial Bold 12pt (Гарнитура Arial, жирный, размер 12 пунктов).

В X-Window все устроено сложнее. Имя шрифта здесь состоит из 14 (!) компонентов, разделенных дефисами. Пример:

-b&h-lucida-bold-r-normal-sans-12-120-75-75-p-79-iso8859-1

Общий формат такой:

-fndry-fmly-wght-slant-sWdth-adstyl-pxlsz-ptSz-resx-resy-spc-avgWdth-rgstry-encdng

Поля fndry и fmly -- это фирма-создатель и гарнитура шрифта -- аналог "гарнитуры" в Windows (но в X может одновременно использоваться, например, два разных шрифта Times от разных фирм).

Поля wght, slant и sWdth -- это соответственно "жирность" (вес) шрифта, наклонность и ширина -- аналог "начертания" в Windows.

Поле pxlsz указывает размер шрифта в пунктах.

Поле spc определяет вид шрифта -- моноширинный (m -- monospace) или пропорциональный (p -- proportional).

Пара полей rgstry и encdng задает кодировку шрифта -- например, "iso8859-1" или "koi8-r".

Остальные поля менее существенны, поэтому их рассматривать не будем.


Обычно не требуется указывать шрифт с полной конкретностью -- т.е. перечислять все его 14 параметров, а нужен, к примеру, "моноширинный, прямой, 12 пунктов". В этом случае достаточно воспользоваться шаблоном -- указать лишь требуемые параметры, а в остальных позициях -- "*":

-*-*-*-r-*-*-12-*-*-*-m-*-*-*

X-Window автоматически подберет первый подходящий шрифт. Это дает определенную гибкость. Во-первых, программа "просит" не слишком конкретно, и ей подберут какой-нибудь из имеющихся (зачастую это совершенно разные шрифты, но с одинаковыми параметрами, а потому равно подходящие). Во-вторых, это позволяет, например, заставить программу использовать вместо европейских шрифтов русские -- достаточно сделать русские шрифты "более первыми".

Хотя такой "детальный" способ очень удобен для программ, человеку запоминать и набирать такие длинные имена наоборот чрезвычайно неудобно. Поэтому для многих шрифтов есть "псевдонимы" (aliases) -- короткие имена, аналогичные используемым в Windows. К примеру, за названием "lucidasans-italic-12" скрывается шрифт "-b&h-lucida-medium-i-normal-sans-12-120-75-75-p-71-iso8859-1".

Замечание
Такой формат имени шрифта называется "XLFD" -- X Logical Font Description. Полное его описание доступно по адресу

ftp://ftp.x.org/pub/R6.4/xc/doc/hardcopy/XLFD/xlfd.PS.gz
а в RedHat-6.0 этот файл есть в директории

/usr/doc/XFree86-doc-*/XLFD/
("*" -- номер версии X, например, 3.3.3.1), эта директория относится к пакету XFree86-doc.

Программы для выбора и просмотра шрифтов: xfontsel и xfd


Для подбора шрифта служит программа xfontsel (X Font Selector).

Окно программы xfontsel

Она отображает меню в виде формата шрифта, в котором можно выбирать нужные параметры, текущий выбранный шаблон, и как выглядит первый подходящий к нему шрифт.

При стандартной инсталляции Linux xfontsel сразу при запуске (шаблон из одних "*") покажет корейский шрифт -- просто он оказался самым первым в списке. Вообще, в дистрибутиве X-Window сразу имеются японские и корейские шрифты, что позволяет, к примеру, свободно просматривать в Netscape сайты .jp и .kr (естественно, при условии владения соответствующим языком :).

Поскольку шрифты есть не для всех комбинаций параметров, то по мере выбора параметров из меню некоторые пункты в других меню становятся "недоступными" -- например, шрифты гарнитуры Times есть только в кодировках iso8859 и koi8, а в jis -- нету.

Подобрав шрифт, можно нажать кнопку [select] -- при этом название будет скопировано в "карман" (буфер обмена, clipboard), и его затем можно вставить, например, в xterm средней кнопкой мыши.


Для просмотра всех символов шрифта (а не только тех, что отображает в своем примере xfontsel, служит программа xfd (X Font Displayer).

Программа xfd, запущенная командой
"xfd -fn 5x7"

Ей надо указывать требуемый шрифт (или шаблон) ключом "-fn". При этом имя шрифта следует заключать в одинарные апострофы, поскольку оно обычно содержит символы, имеющие специальное значение для интерпретатора командной строки (shell), такие, как "*" и "&".

Как указывать шрифты программам


Указать программе, какой шрифт использовать, можно при помощи ключа "-fn". Ситуация здесь аналогична оной с цветами -- указывается один шрифт для всех элементов. Но практически любой хороший текстовый редактор позволяет выбрать используемый шрифт где-нибудь в меню.


Меню выбора
шрифта в Xterm

Довольно интересен способ выбора шрифта в программах Xterm и NXterm. При нажатии <Ctrl+ПраваяКнопкаМыши> появляется меню шрифтов, в котором самый нижний пункт называется [Selection]. Если выбрать в xfontsel шрифт и "отметить" его, нажав [select] (или просто набрать где-нибудь имя шрифта и выделить его мышью), а потом выбрать в меню Xterm пункт [Selection], то Xterm сменит шрифт на указанный.

Геометрия

Координаты и размеры окон от запуска к запуску программы не запоминаются, но их можно указать при запуске. Для этого служит ключ "-geometry". Под "геометрией" окна понимается его размер и позиция на экране.

У ключа "-geometry" есть три варианта:

-geometry Размер
-geometry Позиция
-geometry РазмерПозиция

Размер указывается как "ШИРИНАxВЫСОТА" (между размерами -- латинская буква "x"). В зависимости от программы ширина и высота указываются или в пикселах (в большинстве программ) или в символах (например, в Xterm). Причем указывается размер внутренней части окна, без учета обрамления (которое зависит от window manager'а и может быть каким угодно).

Позиция указывается в пикселах от края экрана. Обычно она выглядит как "+X+Y". В этом случае левый край окна будет в X пикселах от левого края экрана, а верхний край -- в Y пикселах от верхнего края экрана.

Но иногда нужно поместить окно, например, вплотную к правому краю. В этом случае надо в горизонтальной координате вместо "+" указать "-". При этом окно будет расположено так, что его правый край окажется в X пикселах от правого края экрана.

Аналогично вертикальную позицию можно так же указывать от нижнего края экрана. Несколько примеров приведены на иллюстрации ниже.

Разные координаты на экране

Несколько примеров указания геометрии (взяты из man-страницы по X):

xterm -fn 6x10 -geometry 80x24+30+200 &
xclock -geometry 48x48-0+0 &
xload -geometry 48x48-96+0 &
xbiff -geometry 48x48-48+0 &

Здесь xterm помещается приблизительно в левой средней части экрана, а часы, индикаторы загрузки и писем -- в правый верхний угол.

Обычно ключ "-geometry" используется не при запуске программ "руками", а для указания позиции программам, запускаемым автоматически при старте X-Window (из инициализационных файлов X и window manager'а).


<< Предыдущий раздел | /\ Содержание | >> Следующий раздел