ЯЕПБЕПМШЕ ЙНПОСЯ ЙНМЯНКЭМШИ ОЕПЕЙКЧВЮРЕКЭ
Графический интерфейс X-Window, часть 1
Графический интерфейс X-Window, часть 1
История и общие понятия; многоплатформность, распределенность
Как это выглядит
Как запускать X
Как работать в X -- использование MWM
Несколько стандартных прикладных программ
Сетевые возможности X и управление доступом
Практические задания
История и общие понятия; многоплатформность, распределенность
История
Система X-Window была создана совместно Массачусеттским
Технологическим Институтом (MIT) и фирмой DEC в 1984 году.
Последняя версия называется X11R6 (сокращение от "X11 release 6"),
обычно для краткости используется название "X11", или даже просто "X".
Полное название системы -- X Window System, сокращенно -- X-Window
(именно "Window" -- никакого "s" на конце нет!).
X11 -- сетевая система
Система X-Window построена по клиент-серверной модели. Она состоит
из двух частей: X-сервера и прикладных программ ("клиентов"), которые
пользуются услугами X-сервера для взаимодействия с экраном и с
пользователем.
X-сервер -- это единственная программа, "общающаяся с железом" -- с
монитором, клавиатурой и мышью; эти три компонента объединяются
термином дисплей. Прикладные же программы взаимодействуют с
X-сервером при помощи "программных каналов", и могут быть запущены с
другого компьютера -- при этом связь будет идти через сеть (по
протоколу TCP/IP).
X11 -- распределенная система
Практически все программы, которые можно запустить на своей машине
(т.е. на той, на которой запущен X-сервер, экран которой стоит перед
вами), можно запустить и с другого компьютера (при хорошей связи --
хоть из Антарктиды), и работать с ними точно так же, как и с
локальными.
Реализации как X-серверов, так и приложений под X-Window существуют
практически во всех современных операционных системах -- во всех клонах
Unix, в VMS, Dos, Windows, MacOS. И они полностью совместимы друг с
другом -- можно запустить программу на Unix-машине, и работать с ней
на Windows-компьютере.
Существенным отличием от Windows и Mac в Unix является то, что
графическая оболочка -- это не жизненно важная часть операционной
системы, а всего лишь дополнительная программа, без которой Unix будет
продолжать нормально функционировать (а видели ли вы когда нибудь
Windows NT, способную работать без графического интерфейса?).
Замечание
Название "X-сервер" вначале приводит к путанице -- ведь обычно
сервер -- это какой-то другой компьютер, услугами которого мы
пользуемся (например, файловый сервер Novell, или большой Unix-сервер,
на который мы заходим по telnet).
В данном же случае X-сервер -- это программа, которая обслуживает не
столько нас, сколько другие программы. Так, Netscape "просит" X-сервер
отобразить на экране содержимое web-страницы, и тот это делает (он
предоставляет программе Netscape некоторый сервис -- т.е. является для
нее сервером).
Window Manager и его функции
X-сервер -- программа в определенном смысле довольно глупая. Все,
что он умеет -- это выделять программам прямоугольные области экрана
("окна") и рисовать в них то, что программы попросят; плюс он знает,
что одно окошко может располагаться поверх другого, и правильно их
отрисовывает.
Но ведь надо еще изобразить рамку вокруг окошка, заголовок над ним,
уметь "сворачивать" окно в пиктограмму и еще многое другое. Этим
занимается специальная программа, называемая "Window Manager" (дословно
"менеджер окон").
В список функций хорошего window manager'а входят: декорирование
окон (бордюр, заголовок, кнопочки), манипуляции с окнами (перемещение,
изменение размера, свертывание в пиктограмму и т.д.), разнообразные
меню и панели инструментов (например, для запуска программ),
виртуальный экран.
Одновременно экран может обслуживаться ровно одним window
manager'ом. Поскольку window manager -- это не интегральная часть
системы X-Window, то их существует огромное количество. Вот лишь самые
часто используемые: Fvwm, AfterStep, Mwm, Olwm, KDE. Примеры их
внешнего вида есть в следующем разделе, а в разделе "Использование MWM"
приведено краткое руководство по работе в X-Window с Mwm.
Библиотеки интерфейсных элементов
Поскольку X-сервер, как уже отмечалось выше, знает только о том, как
работать с окошками на экране, то для полноценного интерфейса с
пользователем требуется еще набор стандартных элементов -- кнопок,
переключателей, строк ввода и т.д.
В X-Window используется многоуровневая реализация интерфейсных
элементов. Не вдаваясь в подробности, отметим лишь, что практически
никакие программы не взаимодействуют с X-сервером напрямую. Эти функции
возложены на компонент Xlib, услугами которого в свою очередь
пользуется компонент Xt. В Xt заложена абстракция "интерфейсного
элемента" (они в X называются "widgets"), и на основе Xt можно в
принципе построить большое количество разнообразных наборов элементов.
Взаимоотношения между X-сервером,библиотеками и программами
Первоначально вместе с X была создана библиотека под названием
Athena Widgets, с использованием которой и изготовлены все стандартные
(самые "старые") программы -- xterm, xedit,
xcals и многие другие. Хотя сейчас Athena Widgets выглядит
довольно архаично, написанные с ее использованием программы работают
довольно неплохо, и при некотором навыке вполне удобны.
В дальнейшем была создана библиотека Motif, близкая по виду к
интерфейсу MS Windows, которая и стала стандартной -- с ее
использованием написаны такие программы, как Netscape и Nedit.
Полностью вытеснить Athena Widgets Motif так и не смог по причине своей
небесплатности.
Как это выглядит
Window manager'ы бывают разные
В системах Windows и MacOS внешний вид экрана и доступные функции
практически одинаковы на всех компьютерах -- могут отличаться разве что
цвета, шрифты и набор программ, "напиханных" на рабочий стол и в меню.
В Unix же существует большое количество window manager'ов, которые и
играют роль графического интерфейса пользователя, и их внешний вид и
функции могут сильно отличаться. Более того, почти все window manager'ы
допускают огромное количество разных настроек, так что один и тот же
может выглядеть совершенно по разному (пример -- картинки Fvwm95 и Mwm,
приведенные ниже -- это в обоих случаях Fvwm, "загримированный" по
разному).
В RedHat Linux по умолчанию используется Fvwm, имитирующий интерфейс
Windows95. На практических занятиях он перенастроен под "более
Unix'ный" вид -- Mwm.
На иллюстрациях ниже приведено несколько примеров того, как может
выглядеть экран X с разными window manager'ами. Это лишь небольшое
подмножество из существующего разнообразия. Список общедоступных window
manager'ов можно посмотреть на странице
Window Managers
службы Yahoo! Другим полезным ресурсом на эту тему является страница
"Window Managers for X" (http://www.plig.org/xwinman/).
В последнее время стало очень модно использовать способность
X-Window работать с непрямоугольными окнами -- декорации на окнах
приобретают фигурный вид, а также делать "полупрозрачные" окна, когда,
к примеру, из-под xterm "просвечивает" фоновая картинка. Особенно
грешит этим KDE. Примеры этих "видеоэффектов" можно найти по указанным
выше ссылкам -- надо обращать внимание на пункты "screenshots".
Картинки с экрана
Снимок экрана X11 с Fvwm95
Снимок экрана X11 с MWM
Снимок экрана X11 с AfterStep
Снимок экрана X11 с KDE
Снимок экрана X11 с OpenLook (SunOS, Solaris, Linux)
Снимок экрана X11 с 4Dwm (Silicon Graphics)
Как запускать X
Запуск из консоли
Зайдя с консоли, для запуска X достаточно дать команду
startx
Именно "startx", а не "start x" и не
"xstart".
После этого на экране быстро пройдет диагностика запуска X-сервера,
затем компьютер переключится в графический режим -- появится пустой
экран, заполненный простеньким штрихованным узором, а через несколько
секунд на нем появится "оформление", которое обычно включает окно для
ввода команд и, например, часы.
Если X запускается автоматически
Иногда компьютеры настраивают так, что X запускается автоматически
сразу после загрузки операционной системы, и вместо консольного
приглашения "login:" сразу появляется окно примерно такого
вида:
Графическое приглашение к входу в систему
В этом случае надо просто войти в систему так же, как с консоли --
ввести свое login-имя, нажать , ввести пароль, и еще раз
нажать . После этого (если имя и пароль введены
правильно) автоматически запустится X-сессия -- так же, как если зайти
с консоли и запустить "startx".
Выход из X
Для того, чтобы завершить работу с X-Window, лучше всего найти в
меню пункт типа "Quit" -- "выход" (иногда он может называться "Exit"
или "Logout").
В самом же крайнем случае, например, когда надо выйти мгновенно, или
в незнакомом window manager'е, когда неизвестно, где искать "Quit",
можно воспользоваться комбинацией клавиш .
Хотя это самый простой способ, лучше все же всегда использовать "Quit".
Как работать в X -- использование MWM
Основные отличия от Win95
Хотя раздел и озаглавлен "Использование MWM", реально в Linux
применяется не настоящий MWM (Motif Window Manager), который является
платным, а свободно распространяемый Fvwm2, "загримированный" под MWM.
Хотя в других window manager'ах могут использоваться иное оформление,
клавиши и меню, по функциям они достаточно похожи.
В данном разделе предполагается, что читатель знаком с графическим
интерфейсом системы Windows95 или WindowsNT 4.
Первым отличием является то, что для того, чтобы активизировать
окно, не нужно щелкать на нем мышью -- достаточно просто навести на
него курсор. При этом окно "подсвечивается" -- цвет рамки из серого
превращается в бирюзовый. При этом, даже если окно почти полностью
закрыто другим окном, оно все равно является активным. К примеру, окно
xterm будет принимать команды с клавиатуры, даже если курсор
мыши стоит на самом его уголке, а остальная часть скрыта.
Про активное окно говорят, что ему принадлежит "фокус ввода".
Операция активизации окна называется "фокусированием".
Второе отличие -- то, что даже щелчок мышью на окне не "вытаскивает"
его поверх остальных окон. Для этого надо щелкнуть на его заголовке.
Третье отличие -- в большинстве window manager'ов нет стандартной
комбинации клавиш для закрытия окна (наподобие Alt+F4), поскольку
большая часть подобных действий выполняется в X при помощи мыши.
И, наконец, в Mwm отсутствует как "Панель задач" с кнопкой "Пуск" --
их функции выполняют меню, вызываемые мышью, так и большое количество
пиктограмм на рабочем столе (которые в Win95/NT все равно совершенно
бесполезны, поскольку большую часть закрыты каким-нибудь окном).
Меню, вызываемые мышью
Нажатием кнопки мыши на свободном пространстве экрана вызывается
одно из трех меню.
Основное меню
Меню программ
ЛЕВАЯ кнопка -- основное меню (аналог кнопки "Start" в
Win95/NT).
ПРАВАЯ -- меню программ (оно есть и в основном меню).
СРЕДНЯЯ -- список открытых на экране окон (это аналог панели
задач в Win95/NT).
Запуск программ
Чаще всего требуется открыть дополнительное окно xterm.
Для этого достаточно выбрать из главного меню пункт
.
Большинство остальных программ присутствуют в меню "Programs". Если
же какую-то программу там найти не удается, но ее имя известно, то
можно запустить ее прямо из окна xterm -- к примеру, для
Netscape это будет... догадайтесь что -- правильно, "netscape".
Операции с окнами
Большую часть операций с окнами можно сделать мышью при помощи
элементов оформления.
Элементы декорации окна
Передвинуть окно можно за заголовок; чтобы изменить размер,
достаточно "потянуть" за край окна. Чтобы "вытащить" окно поверх всех
других, надо щелкнуть на его заголовке. Если заголовок скрыт другими
окнами, то можно щелкнуть правой кнопкой мыши на любой части
рамки (кроме кнопочек). Повторный щелчок правой кнопкой "погружает"
окно так, что оно оказывается снизу всех остальных. Двойной щелчок на
кнопке закрывает окно.
Меню операций с окнами
При нажатии на кнопку появляется меню
дополнительных операций с окнами.
Пункт сворачивает окно в пиктограмму.
Пункты и максимально
растягивают окно по вертикали и по горизонтали, соответственно.
Пункт закрывает окно.
Пункт используется, когда программа
"зависла" и не реагирует на команду закрытия окна. При этом она будет
просто насильно отсоединена от X-сервера (именно вся программа, а не
только это окно!).
У некоторых окон нет оформления, и, казалось бы, их нельзя ни
передвинуть, ни закрыть -- ведь нет способа вызвать меню. Но в главном
меню есть пункт , за которым скрывается точно
такое же меню операций с окнами. Выбрав из него, к примеру, пункт
, надо щелкнуть мышью (курсор которой
превратится при этом в "череп с костями") на окне, которое хочется
закрыть.
Пункт создает на экране линейку
инструментов, позволяющую выполнить любую команду из меню "Window
Operations".
Линейка инструментов дляманипуляций с окнами
Блокировка экрана
В отличие от Windows, X-Window после некоторого времени бездействия
пользователя просто отключает монитор, но сама не вызывает
программу-"хранитель экрана" (screen saver). Если пользователь хочет
насладиться красивыми заставками, то он должен сам вызвать из главного
меню программу-заставку, которая по совместительству позволяет
заблокировать доступ к компьютеру. Для этого служит пункт
.
При нажатии на нем появляется окно, которое позволяет выбрать тип
заставки (их число далеко за полсотни и увеличивается с каждой новой
версией программы) и действие -- запустить заставку (Screen Saver) или
заблокировать экран (Lock Screen).
По умолчанию выбран тип заставки "Random", который случайным образом
меняет вид заставки примерно раз в минуту.
Курсор мыши автоматически ставится на кнопку "Lock Screen", так что
если надо срочно куда-то уйти, заблокировав компьютер, надо после
нажатия на "Lock Screen/Screen Saver" просто еще раз щелкнуть мышью.
Выход и переход в другой window manager
Для выхода из X-Window надо в основном меню выбрать пункт
, а в нем нажать для подтверждения
.
Если же в меню "Exit Fvwm" зайти в подменю
, то можно переключиться на другой window
manager. В зависимости от того, какое программное обеспечение
установлено, там будут пункты "Fvwm95" -- Fvwm в режиме
имитации Windows95, "Lesstif WM" -- собственно Fvwm в
режиме MWM, "AfterStep" и "WindowMaker".
Виртуальный десктоп
Одним из самых больших удобств интерфейса X-Window является так
называемый виртуальный десктоп, или виртуальный экран (хотя его
аналоги есть в Win95/NT, вследствие слабой интеграции с системой
работают они не слишком хорошо).
Дословно "desktop" -- это рабочая поверхность стола (или сокращенно
просто "рабочий стол"), но из-за громоздкости перевода используется
англоязычный термин.
Виртуальный десктоп -- это возможность работать не с одним экраном,
на который надо "упихать" все окна (а их зачастую открывают по
несколько десятков), а с несколькими одновременно, быстро переключаясь
между ними при помощи мыши или клавиатуры.
Технически виртуальный десктоп делается за счет того, что реальный
размер рабочего стола не один экран, а, например, 3x3, и на мониторе
отображается лишь какая-то его часть -- аналогично тому, как в окне
текстового редактора отображается лишь часть текста, а остальное скрыто
за границами, но тоже может быть просмотрено. Так, если окно "увезти
за заголовок" так, что часть его будет скрыта за низом экрана, то эта
скрытая часть будет "свисать сверху" в том экране, что расположен ниже.
В правом нижнем углу экрана расположено маленькое неприметное
окошко.
Левая его часть занята индикатором занятости компьютера, а вот
правая -- это "карта" виртуального десктопа, на которой каждый экран
отделен пунктирными линиями, а открытые окна отображаются маленькими
прямоугольничками (пропорционально реальному размеру). Текущий экран (в
данном случае левый средний) подсвечен розовым.
Переключиться в другой экран можно, щелкнув мышью на его изображении
на "карте". Другой вариант -- можно "переходить" между экранами при
помощи Shift+Ctrl+Alt+клавиши со стрелками.
Переместить окно в другой экран можно, "перетащив" его изображение
на "карте" средней кнопкой мыши.
Вообще говоря, в искусство работы в X-Window входит умение поудобнее
"раскидать" окна по экранам. При этом даже отпадает потребность
сворачивать окна в пиктограммы -- поскольку все окна в своих экранах,
то они не закрывают друг дружку, и переключение между ними производится
простым переходом между экранами.
Замечание
На приведенной выше иллюстрации на "карте" даже не один виртуальный
десктоп, а целых два независимых -- один под названием "Desk", а другой
-- "Apps". Это стандартная настройка Fvwm, хотя второй используется
довольно редко.
Кроме того, по умолчанию размер десктопа -- 2x2, поскольку
предполагается использование и "Desk", и "Apps", но удобнее оказывается
обходиться одним экземпляром десктопа, сделав его размером 3x3.
Несколько стандартных прикладных программ
Особенности программ на основе Athena Widgets
Как указывалось выше, значительное количество программ сделано на основе
библиотеки интерфейсных элементов под названием "Athena Widgets". Библиотека это
довольно старая, и программы выглядят несколько необычно.
Первое отличие -- это линейки прокрутки (scrollbars). Мало того, что на них
нет стрелочек, а только бегунок, они еще и весьма "нестандартно" реагируют на
мышь.
Для того, чтобы передвинуть бегунок, надо нажать на нем среднюю
кнопку мыши. При этом мышь необязательно должна быть на бегунке -- он сам
"прыгнет" к курсору. Если не отпуская кнопку мыши передвигать курсор, то бегунок
будет ездить за ним.
Второе отличие -- то, что после вызова меню кнопкой мыши нельзя отпускать
кнопку -- иначе меню исчезнет. Нужно не отпуская кнопку подвести курсор к
нужному пункту, и тогда отпустить.
Третье -- некоторые программы (например, xedit) используют принцип
"Focus Follows Mouse" -- например, если на экране есть несколько полей ввода
текста, то активным является то, над которым находится курсор мыши.
Эмулятор консоли: xterm
Для того, чтобы можно было вводить команды Unix как на консоли, служит
программа xterm -- эмулятор терминала. В Linux используется его
улучшенная версия -- nxterm.
В левой части окна расположена линейка прокрутки, позволяющая "заглянуть
назад" и увидеть то, что уже скрылось за пределами экрана. При помощи клавиш
и можно добиться того же.
Нажав одновременно и одну из кнопок мыши, можно вызвать одно из
трех меню xterm.
По появляется меню "Main Options", которое
используется крайне редко.
По появляется меню "VT Fonts", которое позволяет
сменить шрифт. По умолчанию используется шрифт, уставленный как "Delault",
остальные пункты позволяют выбрать шрифт от "Unreadable" (нечитабельный) до
"Huge" -- очень большой.
И, наконец, вызывает меню "VT Options",
содержащее около двух десятков пунктов. Остановимся лишь на самых полезных из
них.
Enable Scrollbarвключает/выключает линейку прокрутки (редко кому
надо ее убирать, но иногда она по умолчанию бывает выключена -- тогда надо
знать, как ее включить).
Enable Reverse Videoменяет цвета букв и фона -- если выбрать эту
опцию при белых буквах на черном фоне, то буквы станут черными, а фон -- белым.
Scroll to Bottom on Tty Outputпозволяет отключить автоматическое
"перепрыгивание" окна вниз (в текущую область) при выводе на экран.
Do Soft Reset и Do Full Resetсбрасывают внутренние
настройки терминала в начальное состояние -- это требуется, например, когда
какая-то программа привела терминал в такое состояние, что вместо букв
отображаются всякие странные символы.
Reset and Clear Saved Linesделает то же, что и Full Reset, но
при этом еще и "забывает" строки, "уехавшие" за верх экрана.
Текстовый редактор: xedit
В любой версии X-Window есть простейший текстовый редактор под названием
xedit, по возможностям примерно эквивалентный программе Notepad в
Windows.
Текстовый редактор xedit
Хотя xedit довольно примитивен, он имеется всегда, и при этом он не
столь "неудобоварим" для обычного пользователя, как vi.
В верхней части окна располагаются кнопки [Quit], [Save] и
[Load], отвечающие за выход, сохранение файла и загрузку файла
соответственно. Если нажать на [Quit], когда в файл были внесены
изменения, то xedit откажется выйти -- надо будет нажать
[Quit] повторно.
Справа от кнопок расположено поле для ввода имени файла. Достаточно просто
навести на него мышь и набрать нужное, а затем нажать [Save] или
[Load] -- в первом случае файл будет сохранен под указанным именем, во
втором случае будет загружен указанный файл.
Текст файла располагается в самой нижней части окна -- для ввода и
редактирования надо навести туда мышь. Полное описание всех клавиш, используемых
при редактировании, можно найти на man-странице по xedit.
Графический просмотр man-страниц: xman
Программа xman служит для интерактивного выбора и просмотра
man-страниц. При ее запуске появляется маленькое окошко (иногда даже без
обрамления).
Основное окно программы xman
При нажатии на кнопку [Manual Page] появляется окно с кнопками-меню
[Options] и [Sections] сверху. Выбрав раздел из меню
[Sections], можно затем выбрать в нем интересующую страницу и щелкнуть
на ее названии мышью. Посмотреть другую страницу можно, заново нажав
[Sections] и т.д. Чтобы для каждой страницы не приходилось заново идти в
[Sections], можно выбрать в меню [Options] пункт
[ShowBoth Screens] -- при этом на экране одновременно будут отображаться и список
страниц, и текущая страница.
Пункт [Search] из меню [Options] позволяет найти страницу по
ее имени.
Xman позволяет открыть одновременно несколько окон -- для этого
надо просто несколько раз нажать на кнопку [Manual Page]. Убрать лишнее
окно можно, просто закрыв его. Кнопка [Help] дает довольно подробную
справку по использованию xman.
Основные недостатки xman -- то, что он не позволяет вести поиск
внутри страницы, а также то, что по умолчанию им совершенно невозможно
пользоваться без мыши.
Калькулятор: xcalc
Калькулятор xcalc
Xcalc -- это простейший калькулятор, который умеет выполнять
основные арифметические действия, считать тригонометрические функции и позволяет
считать "сложные" выражения со скобками. (Xcalc -- это полная копия
калькулятора Texas Instruments TI-30.)
Большую часть "кнопок" можно нажимать как мышью, так и с клавиатуры. Для
выходя служит клавиша "q".
Если щелкнуть на индикаторе, то число "подсветится", и его можно
затем вставить куда-либо при помощи средней кнопки мыши.
Увеличительное стекло: xmag
Участок экрана, увеличенный при помощи xmag
Программа xmag (ее обычно нет в меню и надо запускать из командной
строки) позволяет рассмотреть некую область экрана "с увеличением". При ее
запуске курсор мыши привращается в "уголок" Г, который надо
навести на интресующий участок экрана.
Графический редактор: xpaint
Панель инструментов редактора xpaint
Xpaint -- это графический редактор для растровых изображений, по
функциональности значительно превосходящий редактор Paintbrush (он же Windows
Paint).
При запуске появляется окно инструментов, в верхней части которого
расположено меню. Пункт [NewCanvas] меню [File] открывает
новое окно с пустым изображением 640*480, [NewWithSize]
позволяет указать размер. Загрузить существующий файл можно командой
[Open].
Xpaint умеет работать с файлами самых распространенных форматов --
GIF, JPEG, PNG, TIFF и с еще несколькими. Одновременно можно открыть несколько
окон.
В каждом окне с редактируемым изображением есть свое меню и две палитры
цветов -- основная (для операций типы рисования линии) и дополнительная (для
заполненных фигур).
В xpaint встроена справочная система, в которой есть информация по
большинству вопросов.
Программы для развлечений и "красоты": xearth, xsnow, xeyes, xclock, xroach
xearth
Эта программа показывает на заднем плане (в качестве "обоев") Землю, как ее
видно в данный момент со стороны Солнца, и отмечает на ней основные города.
(У xearth есть одна неприятная особенность: если ее
убить (kill), то изображение земли все равно остается, но не
обновляется.)
xsnow
"Зимний пейзаж" -- на заднем плане растут елочки и иногда проезжает
Санта-Клаус на санях, а "с неба" падает снег и оседает внизу экрана и на окнах.
Указав "-snowflakes 1000", можно в десять раз увеличить
количество снега, а указав "-windtimer 1", можно заставить ветер
дуть всегда (это средний интервал между порывами ветра в секундах).
Глаза, следящиеза мышью
Часы
xeyes
Глаза, которые следят за мышью. Эта программа имеет ту особенность, что
глаза занимают непрямоугольное окно, и если их поместить поверх чего-нибудь, то
они закроют ровно ту часть, которую и должны.
xclock
Это простейшие стрелочные часы.
Замечание
На практических занятиях "глаза" и часы при запуске X-Window автоматически
помещаются в правый верхний угол экрана.
Таракан
xroach
Эта программа выпускает на задний план стаю тараканов, которые бегают, пока
не спрячутся под каким-нибудь окном.
По умолчанию тараканы бегают очень быстро, поэтому при запуске лучше
указывать ключ "-speed 1". Изменить количество насекомых можно
ключом "-roaches" (по умолчанию -- 10).
Хотя тараканы -- это не то, что захочется видеть у себя на экране, эта
программа бесценна для подшучивания над соседом, который забыл "закрыть" свой
дисплей (подробнее об этом -- в следующем разделе).
Сетевые возможности X и управление доступом
Имя X-сервера
Каждый запущенный X-сервер имеет свое имя, по которому на него можно
сослаться. Оно называется именем дисплея или просто "дисплей". Имя
выглядит следующим образом:
Bobby.inp.nsk.su:0.0
Имя состоит из трех частей: имя компьютера (можно указывать и короткое имя
(bobby), и IP-адрес), затем через двоеточие идет так называемый номер
дисплея (используется, когда на одном компьютере запущено несколько
X-серверов одновременно; обычно просто "0") и затем через точку так
называемый номер экрана -- обычно тоже "0".
Номер экрана можно не указывать -- он по умолчанию принимается равным 0.
Если не указать имя компьютера, то по умолчанию будет считаться тот компьютер,
на котором запущена программа (но двоеточие указывать все же обязательно!).
Единственное, что обязательно -- это номер дисплея. Несколько примеров
сокращенных имен дисплеев:
ИмяСсылка
Sky:0Нулевой дисплей на компьютере Sky
:0.1 Первый экран нулевого дисплея данного компьютера
:3 Третий дисплей данного компьютера
Чаще всего имя дисплея -- это или просто ":0.0", или
"компьютер:0.0".
Как указать программе, на каком дисплее ей работать
При запуске каждая программа проверяет переменную окружения с
названием DISPLAY. Посмотреть ее значение можно командой
echo $DISPLAY:
bobby:~% echo $DISPLAY
:0.0
bobby:~% _
При запуске X-Window в $DISPLAY автоматически помещается ссылка на
запускаемый X-сервер. Менять же ее значение требуется только при входе по
telnet/rlogin/rsh на другой компьютер.
Команды изменения значения $DISPLAY разные в разных shell'ах. В
используемом на практических занятиях zsh это делается командой
export:
somewhere:~% echo $DISPLAY
somewhere:~% export DISPLAY=Bobby.inp.nsk.su:0.0
somewhere:~% echo $DISPLAY
Bobby.inp.nsk.su:0.0
somewhere:~% _
Вокруг символа "=" не должно быть пробелов!
Аналогичная команда в bash будет выглядеть так:
DISPLAY=Bobby.inp.nsk.su:0.0; export DISPLAY
а в csh/tcsh так:
setenv DISPLAY Bobby.inp.nsk.su:0.0
Практически всем программам можно указать имя дисплея при помощи ключа
"-display":
xterm -display bobby:0
Менять значение $DISPLAY при этом не требуется -- она может быть даже
пустой.
Управление доступом: xhost
Если просто зайти (например, по telnet) на какой-то другой
компьютер и попытаться запустить оттуда к себе на дисплей программу, то это не
удастся:
sky:~% xterm -display bobby:0
Xlib: connection to "bobby:0.0" refused by server
Xlib: Client is not authorized to connect to Server
xterm Xt error: Can't open display: bobby:0
sky:~% _
Дело в том, что по умолчанию доступ к дисплею открыт только для локальных
программ. Для того, чтобы разрешить доступ к дисплею с другого компьютера, надо
воспользоваться командой xhost.
Команда "xhost +компьютер" добавляет указанный компьютер в
список тех, кому разрешен доступ. "xhost -компьютер" удаляет
компьютер из этого списка. При этом будет запрещен доступ всем программам в
будущем -- те, что уже запущены, "отключены" не будут. Просто "xhost"
без параметров печатает текущий список доступа.
Предупреждение
Команду xhost можно запускать только с локального компьютера --
например, если компьютер Alpha открыл доступ к своему дисплею для компьютера
Beta, то с Beta не удастся открыть компьютеру Gamma доступ к Alpha.
Практические задания
Замечание
Все компьютеры в классе имеют адреса вида 192.168.1.N,
где число "N" написано на корпусе.
Открыть новое окно nxterm. Увеличить в нем шрифт
до "огромного" размера. Выполнить команду
"ls -lR /etc", которая выведет на экран большое
количество информации. Затем при помощи линейки прокрутки посмотреть,
какой файл в этом листинге идет первым. Потом заставить
nxterm "забыть" весь этот листинг.
Скопировав к себе в home-директорию файл
/net/class/home/teachers/bolkhov/moroz (он набран
латинскими буквами) при помощи xedit исправить имеющиеся в
нем ошибки.
Запустив xcalc, посчитать выражение
sin2390+cos2-330.
Запустив xmag, "увеличить" карту экрана из
правого нижнего угла. Затем запустить xpaint, открыть в нем
новое окно, "скопировать" при помощи кнопки [Select] в
xmag изображение в "карман" и вставить его в xpaint
(фрагмент вставится неувеличенным). Переместить этот фрагмент в центр
изображения и нарисовать вокруг него эллипс красного цвета. Затем
сохранить картинку в свою home-директорию в формате JPEG.
Переместить часы из правого верхнего угла в правый нижний
-- над "картой" десктопа, а "глаза" -- в то место, где были часы.
Закрыть имеющиеся часы и "глаза", а затем "вручную"
запустить часы так, чтобы при закрытии окна nxterm, из
которого они запущены, часы остались. Переместить эти часы в левый
верхний угол экрана и уменьшить их до размера 50*50 точек (размер
отображается на индикаторе в центре экрана).
Перейти в правый нижний экран и открыть в нем новое окно
nxterm. Затем перейти в левый нижний экран, запустить там
xpaint и "перетащить" его в правый нижний экран.
Зайдя (при помощи rlogin или telnet) на
компьютер к соседу, запустить ему на экран "снежную зиму" и
"тараканов" (доступ с соседнего на него самого открыт).
Сделать то же самое со своего компьютера на соседский
(предварительно сосед должен открыть доступ к своему дисплею).
Переключить window manager с режима MWM (Lesstif WM) на
Fvwm95, затем перейти в AfterStep, и вернуться обратно в Lesstif WM.
Корректно выйти из X-Window и затем правильным образом
выключить компьютер.
╘ 1999 Дмитрий Болховитянов
ПЮГДЕКШ
НПЦЮМХГЮЖХЪ БХДЕНЙНМТЕПЕМЖХЪ
ОПНУНДХРЭ НЯЛНРП ЦХМЕЙНКНЦ
РНМХПНБЙЮ ЯРЕЙНК
ХГАЮБХРЭЯЪ ЯОЮЛ
man ЦХКЭГЮ
НУНРЮ ОХПЮМЭЪ
СГХ ЯДЕКЮРЭ
БПЮВ ЮЙСЬЕП ЦХМЕЙНКНЦ
ХЛОКЮМРЮР
КЮПЯЕМ ЖЕМРП
ОСРЕБНИ ЯРЕМЮ
АЮМЙНБЯЙХИ ЯЕИТНБШЕ ЪВЕИЙЮ
АКЧДН ТЮПТНП
ЛЕФДСМЮПНДМШИ ЙНМЙСПЯ ДЕАЧРЮМР
НРЙЮВЙЮ РСЮКЕР
ЛЕФДСМЮПНДМШИ ЙНМЙСПЯ ДЕАЧРЮМР
ОЮГК
АЕЯЕДЙЮ
ОНПРЮРХБМШИ ПЮДХНЯРЮМЖХЪ
ЙСКЕП 478
РПХ ЖБЕРЮ: ЙПЮЯМШИ
БШГНБ БПЮВ
ЙСОХРЭ ЮПУХБЮРНП
ЙМХЦЮ ЙПЕЛКЭ
ОЕПЕДБХФМНИ ЯБЮПНВМШИ ЮЦПЕЦЮР
БШАНПНВМШИ СТ-КЮЙ
ОЮПЙЕРМШИ КЮЙ
РНМХПНБЮМХЕ ЮБРН
УХЛВХЯРЙЮ ДНЯРЮБЙЮ
ЮЩПНАХЙЮ ЛЪВНЛ
certification microsoft
ГНМЮ НЦПЮМХВЕМХЕ ДНЯРСО
ЙБМ ЯЗЕЛЙЮ
БНКНЯНБЯЙХИ ДНКНЛХР
ЮДЕМНЛЮ ОПЕДЯРЮРЕКЭМШИ ФЕКЕГЮ
ЙСОКЪ ОПНХГБНДЯРБЕММШИ ЙНЛОКЕЙЯ
НДЕБЮМХЕ АЮУХКЮ
ОСРЕБНИ ЯРЕМЮ
АПЩМД
ЙСКЕП БХМВЕЯРЕП
ХГЛЕПХРЕКЭ ЯНОПНРХБКЕМХЕ
ЙСКЕП ОПНЖЕЯЯНП
o2 optix
ОНДЦНРНБЙЮ ielts
ЙБМ ЯЗЕЛЙЮ
ЙСКЕП 478
УЕМДЩ ЯНМЮРЮ
БПЮФДЕАМШИ ОНЦКНЫЕМХЕ
ЧП.ЮДПЕЯ
ГЮРЕМЕМХЕ БХРПХМЮ
ЩКЕЙРПНОЕВЭ dimplex model lee rc
thuraya sg 2510
НОЕПЮРНПЯЙХИ ЖЕМРП
БЕМЕПНКНЦ
thuraya
rittal
БЕМРЕКЪЖХНММЮЪ ПЕЬЕРЙЮ
ОНЯРЮБЙЮ РПНИМХЙ
ЛЕУНБНИ УНКНДХКЭМХЙ
КЕВЕМХЕ ЯКСУ
НУНРЮ КЕЦЮБШИ
ЙНПНРЙХИ МЮПД ЯЙЮВЮРЭ АЕЯОКЮРМШИ
ЖХЙКНМ ЯЖМ-40
ЙЮПК ЦХПЪ
ЙСОХРЭ ЛНАХКЭМХЙ
ОПЕДНУПЮМХРЕКЭ ОЙМ
БЮГЮ 2115
tognana ТЮПТНП
tag heuer
ХГАЮБХРЭЯЪ ЯОЮЛ
КЮПЯЕМ ЖЕМРП
ЦХДПЮМР
5003.17 (ЙПШЬЙЮ)
ЙНТЕ ДНПНЦЮ
ЮЩПНАХЙЮ
ЙКЮЯЯХВЕЯЙХИ ЮЩПНАХЙЮ
БЮЙЮМЯХЪ ЙПЮЯМНЪПЯЙ
УНКНДХКЭМШИ ЖЕМРПЮКЭ
ЙКЕХРЭ МЮМЕЯЕМХЕ
ПЮГНЦПЕРЭ БВЕПЮЬМХИ НАЕД
gislaved НРГШБ
ДЕРЯЙХИ ЛХП wow
ДНКЦ
ДНЯРЮБЙЮ ЯСЬЮ
ЙСОХРЭ МХООЕКЭ ОЕПЕУ
ЛЮЯКН ТНПЛЮ
ЮМРХНАКЕДЕМХРЕКЭМШЕ ЯХЯРЕЛЮ
СЯРПНИЯРБН ОКЮБМШИ ОСЯЙ
ЩТХПМШИ ЮМРЕММЮ funke
ОЮЯЯЮФХПЯЙХИ КХТР
ЬРЮЛОНБЙЮ
ЖБЕР ЙЮЛСТКХП
ЯПЕДЯРБН ЯЮЛННАНПНМЮ
mobil cut
БЮММЮ ЛНЕВМШИ
ЙСОХРЭ ЙНМДЕМЯЮРННРБНД
ЮМРЕММЮ
ЩКЕЙРПНХМЯРПСЛЕМР ЛЕРЮАН
ДБСУРЮПХТМШЕ ЩКЕЙРПНЯВЕРВХЙ
ОНДАНП ЙНМРПЮЖЕОЖХЪ
ЯЙЯ
ЙЮПК ЦХПЪ
ЙНПОНПЮРХБМШИ ХМНЯРПЮММШИ
fargo
ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ
ТКЧПХЯЖЕМРМЮЪ ЙПЮЯЙЮ
ЮПНЛЮРМШИ ЛХП
НУНРЮ
АЕЯОКЮРМШИ МЮПД
ХГДЕКХЕ ЯКНИЙЮ
ЙПЮМНБШИ РЕКЕФЙЮ
ЯХЯРЕЛЮ ДШЛНСДЮКЕМХЪ
АКХГНПСЙНЯРЭ
ЛЕДХЙЮЛЕРНГМНЕ АЕГНОЕПЮЖХНММНЕ ОПЕПШБЮМХЕ АЕПЕЛЕММНЯРЭ
ЯЕПБЕП hp
ФЮПНЯРНИЙХИ ЙПЮЯЙЮ
ЛЕФДСМЮПНДМШИ ЙНМЙСПЯ
ЯАНПЫХЙ ДНКЦ
ГЮК ЮЩПНАХЙЮ
ОНДЦНРНБЙЮ ielts
ПНКЭ ЯРЮБЕМЭ
АЕЯРПЮМЬЕИМШИ НАКХЖНБЙЮ
КЕМХМЦПЮДЯЙХИ БНЙГЮК АХКЕР
НУНРЮ КХЯ
renu multiplus 355ЛК
ЯЕПБЕПМШЕ ЙНПОСЯ ЙНМЯНКЭМШИ ОЕПЕЙКЧВЮРЕКЭ