В отличие от программ командной строки, у которых бывают однобуквенные ключи, которые можно группировать вместе (ls -laR) и длинные ключи, начинающиеся с двойного минуса (ls --help), у программ под X бывают только длинные ключи, причем начинаются они всегда с одиночного символа "-". Поскольку разбор командной строки выполняется не самой программой, а специальной библиотечной функцией, то есть несколько ключей, поддерживаемых всеми программами.
Описание всех стандартных ключей можно найти в man-странице по X. | ||||||||||||||||||
Что такое цвета в X Поскольку X-Window работает с дисплеями, у которых цвет кодируется триплетом RGB (Red, Green, Blue), то использует именно такое представление. Цвета можно указывать одним из двух способов: либо триплетом RGB в шестнадцатеричном виде, либо по имени. При первом способе цвет указывается как "#RRGGBB" -- символ "решетка" и затем шесть шестнадцатиричных цифр -- по две цифры на красный, зеленый и синий. Например, "#FFFFFF" -- белый, "#000000" -- черный, "#CC00CC" -- темно-фиолетовый, а "#92FF41" -- желто-зеленый. Во втором случае указывается английское название -- "white", "black", "red", "darkblue", "maroon" и т.д.
Как узнать, какие есть цвета
X "знает" по именам огромное количество цветов -- несколько сотен. В их число входят "стандартные" цвета типа white, blue, green, их подвиды типа lightblue, darkblue, и даже градации яркости -- SteelBlue1 .. SteelBlue4, а также "экзотика" типа moccasin и PowderBlue. Многие из этих цветов на глаз практически не различимы (а некоторые и просто фигурируют под разными названиями -- например, cyan и cyan1). Конкретный набор цветов определяется настройкой конкретного X-сервера, но основные цвета (такие, как red, green, black) есть всегда. Заглавные и маленькие буквы в именах цветов не различаются. Посмотреть список цветов (и их определений) можно командой
showrgb. Она печатает R-, G- и B-компоненты цвета (в
десятичной системе) и его имя. Поскольку showrgb выводит на
экран огромное количество информации, лучше всего перенаправить вывод
команде less.
Как указывать цвета программам
Ключи "-fg" и "-bg" позволяют указывать программам, какие цвета использовать для букв и для фона. Единственная проблема -- в каждой программе используется много разных элементов, у которых по умолчанию могут быть разные цвета. А эти два ключика могут указывать только один цвет сразу для всех элементов. Но для несложных программ (особенно на основе Athena Widgets, например xterm) это вполне приемлемо.
Кроме того, многие программы позволяют менять цвета прямо
изнутри -- в разнообразных меню настройки.
| ||||||||||||||||||||||||||||||||||||||||
Что такое шрифты в 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". Программы для выбора и просмотра шрифтов: xfontsel и xfd Для подбора шрифта служит программа xfontsel (X Font Selector).
Она отображает меню в виде формата шрифта, в котором можно выбирать нужные параметры, текущий выбранный шаблон, и как выглядит первый подходящий к нему шрифт. При стандартной инсталляции Linux xfontsel сразу при запуске (шаблон из одних "*") покажет корейский шрифт -- просто он оказался самым первым в списке. Вообще, в дистрибутиве X-Window сразу имеются японские и корейские шрифты, что позволяет, к примеру, свободно просматривать в Netscape сайты .jp и .kr (естественно, при условии владения соответствующим языком :). Поскольку шрифты есть не для всех комбинаций параметров, то по мере выбора параметров из меню некоторые пункты в других меню становятся "недоступными" -- например, шрифты гарнитуры Times есть только в кодировках iso8859 и koi8, а в jis -- нету. Подобрав шрифт, можно нажать кнопку [select] -- при этом название будет скопировано в "карман" (буфер обмена, clipboard), и его затем можно вставить, например, в xterm средней кнопкой мыши. Для просмотра всех символов шрифта (а не только тех, что отображает в своем примере xfontsel, служит программа xfd (X Font Displayer).
Ей надо указывать требуемый шрифт (или шаблон) ключом "-fn". При этом имя шрифта следует заключать в одинарные апострофы, поскольку оно обычно содержит символы, имеющие специальное значение для интерпретатора командной строки (shell), такие, как "*" и "&". Как указывать шрифты программам Указать программе, какой шрифт использовать, можно при помощи ключа "-fn". Ситуация здесь аналогична оной с цветами -- указывается один шрифт для всех элементов. Но практически любой хороший текстовый редактор позволяет выбрать используемый шрифт где-нибудь в меню.
Довольно интересен способ выбора шрифта в программах Xterm
и NXterm. При нажатии <Ctrl+ПраваяКнопкаМыши>
появляется меню шрифтов, в котором самый нижний пункт называется
[Selection]. Если выбрать в xfontsel шрифт и
"отметить" его, нажав [select] (или просто набрать где-нибудь
имя шрифта и выделить его мышью), а потом выбрать в меню
Xterm пункт [Selection], то Xterm сменит
шрифт на указанный.
| ||||||||
Координаты и размеры окон от запуска к запуску программы не запоминаются, но их можно указать при запуске. Для этого служит ключ "-geometry". Под "геометрией" окна понимается его размер и позиция на экране. У ключа "-geometry" есть три варианта:
Размер указывается как "ШИРИНАxВЫСОТА" (между размерами -- латинская буква "x"). В зависимости от программы ширина и высота указываются или в пикселах (в большинстве программ) или в символах (например, в Xterm). Причем указывается размер внутренней части окна, без учета обрамления (которое зависит от window manager'а и может быть каким угодно). Позиция указывается в пикселах от края экрана. Обычно она выглядит как "+X+Y". В этом случае левый край окна будет в X пикселах от левого края экрана, а верхний край -- в Y пикселах от верхнего края экрана. Но иногда нужно поместить окно, например, вплотную к правому краю. В этом случае надо в горизонтальной координате вместо "+" указать "-". При этом окно будет расположено так, что его правый край окажется в X пикселах от правого края экрана. Аналогично вертикальную позицию можно так же указывать от нижнего края экрана. Несколько примеров приведены на иллюстрации ниже.
Несколько примеров указания геометрии (взяты из man-страницы по X):
Здесь xterm помещается приблизительно в левой средней части экрана, а часы, индикаторы загрузки и писем -- в правый верхний угол. Обычно ключ "-geometry" используется не при запуске программ "руками", а для указания позиции программам, запускаемым автоматически при старте X-Window (из инициализационных файлов X и window manager'а). | |||||
NEdit был создан человеком по имени Mark Edel в Национальной Ускорительной Лаборатории Ферми (Фермилаб). Название расшифровывается как "Nirvana Editor" (вероятно, это обещание достижения указанного состояния при использовании NEdit :). NEdit -- это редактор с графическим интерфейсом для обычных текстовых файлов. Он очень похож в обращении на редакторы под Windows и Macintosh. Основные достоинства NEdit (сокращенный перевод с официальной web-страницы программы):
Довольно подробная документация содержится в меню [Help], в частности очень полезен для начинающих пункт "Getting Started". Для запуска достаточно набрать "nedit". Можно сразу указать в командной строке файлы, которые следует загрузить.
Некоторые "нестандартности" и возможности NEdit:
| ||||
Меню "Preferences" позволяет менять "поведение" редактора с текущим файлом -- автоматический перенос слов, отступ, шрифт и и.д. В подменю "Default Settings" можно менять настройки по умолчанию -- они будут использоваться для всех следующих файлов. Там же настраивается поддержка языков программирования (пункт "Language Modes" и меню "Syntax Highlihting"). Для сохранения настроек служит пункт "Save Defaults". | ||
NEdit не входит в стандартный дистрибутив. Хотя он имеется в разделе "пожертвований" (contrib), наличествующая там версия требует динамической библиотеки Motif (которая является платной). Взять готовый NEdit, статически слинкованный с Motif, можно по адресу ftp://ftp.fnal.gov/pub/nedit/Там есть версии под большинство подвидов Unix и под VMS и исходные тексты программы, а также документация по установке. Последней на момент написания является версия 5.0.2. | ||
XV был создан Джоном Брэдли из Университета Пенсильвании. Эта программа предназначена для просмотра изображений в различных форматах и простейших манипуляций с ними. XV отличается тем, что использует свою собственную библиотеку интерфейсных элементов. И хотя существуют и более мощные программы (например, GIMP), и понимающие большее число форматов файлов, вследствие удобства и простоты обращения XV чрезвычайно популярен, даже несмотря на то, что последняя версия вышла аж в 1994 году.
При запуске появляется окно изображения, в котором, если не указан никакой файл, первоначально отображается заставка программы. По нажатию <Правой> кнопки на изображении появляется окно управления.
В окне управления справа расположены кнопки для работы с файлами, снизу -- для простых манипуляций с изображениями (копирование, поворот и т.д.). -- Центральная часть окна отведена под список файлов, который заполняется по -- мере просмотра и позволяет быстро вернуться к предыдущим файлам. Сверху же расположены шесть меню:
Хотя XV имеет функции для простейшего рисования, они практически не используются. Очень подробная документация по xv есть в его дистрибутиве. В RedHat Linux она находится в файле (о том как смотреть PostScript-файлы -- в конце этой лекции). | ||||||
Кнопка [Load] вызывает окно загрузки файла. Если включить переключатель "Browse", то при загрузке файлов окно "Load" будет оставаться на экране, что позволяет быстро просматривать много файлов. К сожалению, изображения, превышающие по размерам экран, XV
показывает в сжатом виде, чтобы они целиком помещались на экране. Для
обхода этого ограничения можно воспользоваться ключом
"-nolimits".
Загруженное изображение можно поворачивать на 90 градусов, зеркально отображать и применять к нему преобразования из меню [Algorithms]. Левой кнопкой мыши можно отметить прямоугольный фрагмент изображения. Тогда все операции (кроме поворота и изменения карты цветов) будут применяться к отмеченному фрагменту. Для "разотметки" достаточно щелкнуть мышью вне выделенной области. Кнопка [Crop] (в окне управления) урезает изображение до выделенной области.
Для сохранения изображения служит кнопка [Save]. Файл можно
сохранить в другом формате, выбрав соответствующий вариант из списка вверху.
Если включить опцию "Selected Area", то будет сохранена не вся картинка, а
только выделенная часть.
| ||||||
При помощи XV можно копировать изображения окон с экрана, и даже весь экран (именно так были сделаны почти все иллюстрации в данном курсе).
Для этого служит кнопка [Grab] (дословно "grab" означает "хватать"). Она вызывает окно, в котором можно установить параметры захвата: убирать ли на это время окна самого XV; как копировать -- по нажатию -- кнопки мыши над окном ([Grab]) или автоматически ([AutoGrab]) -- после заданной паузы скопировать окно под мышью; интервал ожидания перед копированием. Чтобы скопировать весь экран, надо указать на место на экране, не занятое
никакими окнами -- это будет "самое нижнее окно" (root window), которое
содержит в себе все остальные окна.
| ||||
XV позволяет установить на экран "обои". Для того, чтобы "попрактиковаться", можно воспользоваться меню [Root]. Обычно же обои устанавливаются из командной строки при помощи ключей "-root" и "-quit" -- первый указывает, что надо вместо окна использовать для отображения рабочую поверхность экрана ("root window"), а второй -- что сразу после этого программа должна завершиться. Так, команда покроет весь экран обоями из файла walls.gif.
| ||||||||
Что это такое "GIMP" расшифровывается как Gnu Image Manipulation Program. Как следует из названия, это программа для манипуляций с изображениями. По возможностям GIMP похож на редакторы PaintShop Pro и Adobe PhotoShop. Как пользоваться GIMP
При первом запуске производится начальная настройка программы. Далее же сразу появляется основная панель инструментов, в верхней части которой расположено меню. Выбрав в меню File команды New или Open, можно создать новое изображение или загрузить его с диска.
В окне редактирования можно вызвать меню при помощи правой кнопки мыши (причем меню очень "развесистое"). GIMP "знает" про такое свойство изображений, как прозрачность
(т.н. "альфа-канал") и отображает прозрачные области шахматной текстурой.
Дополнительная информация о GIMP Так же как и PaintShop Pro, GIMP позволяет расширять свою функциональности при помощи так называемых "plug-ins" ("дополнения"). Больше узнать про plug-ins для GIMP и скачать их можно на сайте registry.gimp.org. У GIMP есть официальная страница -- www.gimp.org. Кроме того, есть еще много сайтов, посвященных GIMP. Хорошая их подборка есть на Yahoo! -- достаточно поискать на тему "gimp". | ||||||||||||
Формат PostScript был разработан в середине 80-х годов фирмой Adobe как язык для принтеров. Поскольку в то время Unix использовался исключительно на мощных и дорогих компьютерах, то к ним обычно были подключены дорогие PostScript-принтеры. Поэтому термин "печать" в графических программах под Unix обычно означает выдачу данных в формате PostScript, которые потом либо отправляются на принтер (если он не-PostScript, то фильтр принтера автоматически преобразует их в нужный формат), либо сохраняются в файл .ps. PostScript бывает двух видов: собственно одно- или многостраничные файлы, которые можно сразу печатать на PostScript-принтере (файлы .ps), и Encapsulated PostScript -- формат для рисунков, которые затем вставляются в другие документы (например, в TeX) -- такие файлы обычно имеют расширение .eps. Достоинством PostScript является его универсальность -- файл, созданный в одной системе, можно использовать и в другой. К недостаткам относится, во-первых, большой объем (особенно если в файлах есть растровые изображения -- они записываются крайне неэффективно), а во-вторых то, что программы -- просмотра показывают файл "как картинку" -- смотреть можно, а, например, -- найти определенное слово в тексте -- нельзя. Формат PDF (Portable Document Format) был разработан в начале 90-х той же фирмой Adobe, и, в частности, в нем исправлены вышеозначенные недостатки PostScript. И PostScript, и PDF -- форматы для оконечных устройств вывода (принтеры и дисплеи), файлы в них никогда не редактируются, а только создаются из других форматов (.dvi, .html, .doc и т.д.). | ||
GhostView -- это, пожалуй, самая старая в Unix программа для просмотра PostScript.
Хотя в RedHat начиная с 5.1 GhostView уже отсутствует (а по команде "ghostview" вызывается gv), в других Unix она еще популярна. Упомянем лишь основные "неочевидности" в обращении с ней.
| ||||
Gv -- это тот же GhostView, сильно переработанный в сторону улучшения пользовательского интерфейса. Файл для просмотра можно или указать в командной строке, или открыть командой Open из меню File.
В левой части окна расположен список страниц. Щелчок левой кнопкой показывает нужную страницу, правой или средней кнопкой можно отметить несколько страниц, чтобы потом распечатать их или сохранить в другой файл. Кнопки над списком позволяют быстро отмечать сразу все нечетные/четные страницы. Вместо полосок прокрутки изображения используется "карта страницы", по которой можно передвигать "изображение окна просмотра". Передвигать страницу можно также клавишами со стрелками, или просто "таская" изображение левой кнопкой мыши. В верхней части окна расположены меню. [File] -- для работы с файлами. [State] -- для настроек (в нем очень полезно включать опцию Antialias для лучшего качества изображения). [Page] -- для перемещения по страницам и отметки. Далее расположены меню ориентации изображения (Portrait, Landscape и т.д.), масштаба изображения и формата бумаги -- в заголовках этих меню отображаются текущие параметры. Кроме PistScript-файлов gv "по совместительству" умеет показывать и PDF. | ||||||||||
Хотя .pdf-файлы можно смотреть и распечатывать при помощи gv, лучше для этой цели подходит Adobe Acrobat Reader (AcroRead).
Unix-версия этой программы практически не отличается от варианта под Windows. AcroRead позволяет вести поиск по тексту (Tools->Find), а также отмечать фрагменты текста для копирования. Пакет AcroRead находится рядом с дистрибутивом в разделе contrib. | ||||