&Philip.Rodrigues;

# Окна, работа с окнами

## Основы управления окнами

Каждое приложение, запускаемое в &kde;, открывает одно или несколько окон. Вы можете управлять этими окнами. Обычное окно выглядит так: Обычное окно

### Переключение между окнами

Непосредственно работать можно только с активным окном. Каждое новое окно становится активным автоматически, что позволяет сразу же начать работу с приложением. Активному окну передаются нажатия клавиш. Активным может быть только одно окно, которое можно отличить по цвету заголовка. (В теме &kde;, принятой по умолчанию, у активного окна светло-синий заголовок, а у неактивных - серый.)

Для того чтобы начать работу с окном, его необходимо сделать активным. Есть два способа:

- Щёлкните на требуемом окне левой кнопкой мыши. Окно станет активным и будет перемещено поверх остальных окон, если оно перекрывается ими.

- Удерживая клавишу &Alt;, нажимайте &Tab;. Появится список доступных окон, одно из которых будет выделено. Нажимая клавишу &Tab;, можно выбрать требуемое окно. Когда вы отпустите клавишу &Alt;, выбранное окно будет сделано активным.

### Перемещение окон

Простейший способ упорядочить окна на рабочем столе - переместить их. Окна могут перекрывать друг друга. Есть три способа переместить окно:

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

- Нажмите кнопку в левой части заголовка окна (см. рисунок ниже). Откроется меню окна. Выберите пункт Переместить. Курсор мыши переместится в центр окна, и окно будет двигаться вместе с ним. Щёлкните левой кнопкой мыши, чтобы отпустить окно.

  Меню окна
  Меню окна

- Наведите курсор на окно, которое требуется переместить, и нажмите клавишу &Alt; и левую кнопку мыши. Курсор изменит форму, и окно будет двигаться вместе с ним. Отпустите кнопку мыши, чтобы оставить окно на месте. Этот способ может быть особенно полезен, если заголовок окна находится за пределами экрана, что не позволяет применить другие методы.

### Изменение размера окна

Есть несколько способов изменения размеров окна:

- Переместите курсор мыши к границе окна (на рисунке выше она светло-синяя). Курсор примет форму двунаправленной стрелки. Удерживая левую кнопку, передвигайте мышь. Граница окна будет двигаться вместе с курсором. Перемещая верхнюю и нижнюю границы окна, можно изменять его высоту, перемещая левую и правую - его ширину. Для того чтобы изменять оба параметра одновременно, передвигайте угол окна (курсор мыши при наведении на него принимает форму диагонально расположенной двунаправленной стрелки).

- Откройте меню окна, нажав на крайнюю левую кнопку в заголовке. Выберите пункт Изменить размер. Курсоры мыши примет форму двунаправленной стрелки. Перемещая его, измените размер окна. Щёлкните левой кнопкой мыши, чтобы отпустить окно.

- Если граница окна или кнопка меню окна недоступны, используйте следующий способ. Удерживая клавишу &Alt;, нажмите правую кнопку мыши и перемещайте мышь. Размер окна будет изменяться. Закончив изменение размера, отпустите кнопку мыши.

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

### Как скрыть окно

Иногда необходимо освободить место на рабочем столе, не закрывая программу. В этом случае можно свернуть окно в значок на панели задач или в заголовок. Для того чтобы свернуть окно в значок, нажмите кнопку Свернуть - третью справа в заголовке окна. Окно будет скрыто, но выполнение программы не прекратится. Для того чтобы вновь развернуть окно, щёлкните мышью на соответствующем значке панели задач. Для восстановления окна также можно использовать комбинацию клавиш &Alt;&Tab;
; см. раздел .

Для того чтобы свернуть окно в заголовок (т. е. скрыть его рабочую область, оставив только заголовок), необходимо дважды щёлкнуть на заголовке левой кнопкой мыши. Для того чтобы восстановить окно, дважды щёлкните на залоговке ещё раз.

### Расположить каскадом

Бывает, что рабочий стол загромождён множеством окон. Щёлкните средней кнопкой мыши на рабочем столе и в открывшемся меню выберите пункт Расположить каскадом - окна будут расположены одно за другим, начиная с левого верхнего угла экрана.

### Выстроить окна

Если вы выберете этот пункт меню, &kde; расположит окна так, чтобы сделать доступным как можно большую часть каждого из них. Например, если открыты четыре окна, после выбора этого пункта они будут перемещены в углы экрана. Щёлкните средней кнопкой мыши на рабочем столе и в открывшемся меню выберите пункт Выстроить окна.

### Как закрыть окно

После того, как вы завершили работу с приложением, требуется остановить его выполнение и закрыть окно. И в этом случае есть несколько различных способов:

- Щёлкните на крайней правой кнопке в заголовке окна. Если вы изменили какой-либо документ с помощью этого приложения, программа спросит, хотите ли вы Сохранить изменения, Отклонить их либо Отменить выход из приложения.

- Выберите пункт меню Файл Выход. Откроется то же самое окно с кнопками Сохранить, Отклонить и Отмена.

- Щёлкните правой кнопкой мыши на значке, соответствующем окну, на панели &kde; (&kicker;), и выберите Закрыть. Программа предложит вам сохранить изменённые документы.

- Нажмите &Alt;F4
  . Если какие-либо документы были изменены, окно подтверждения также будет открыто.

## Расширенное управление окнами

kstart

&Richard.J.Moore; &Richard.J.Moore.mail;

### &kstart;

Простейший способ использовать функции расширенного управления окнами предоставляет утилита &kstart;, которая входит в состав &kde;, начиная с версии 2.1. &kstart; позволяет управлять взаимодействием приложений и оконного менеджера. Эта программа обычно используется для того, чтобы задать нестандартные настройки для приложений, но она также позволяет использовать в &kde; приложения, не входящие в состав &kde;.

Using &kstart; is easy: you simply put ``kstart`` and some options before a command. To begin, let's look at how we might use &kstart; to customize the behavior of a &kcalc; window. The command we'll use is as follows:

    % kstart --ontop --alldesktops kcalc

Эффект от этой команды достаточно очевиден: окно kcalc будет отображаться поверх остальных окон и будет доступно на всех рабочих столах. Эта команда работает в любой среде, совместимой с технологией NET, а не только в &kde;.

&kstart; позволяет передавать аргументы программам. Пример:

    % kstart
    --skiptaskbar --desktop
    1 xmessage'Hello World'

В результате этой команды на экран с помощью программы xmessage будет выведено сообщение `Hello World`, причём окно программы будет отображаться на всех рабочих столах без значка в панели задач. Программа написана с помощью инструментария Xt и, таким образом, не является приложением &kde;, однако это не представляет затрудения для &kstart;. Таким образом, этот пример также демонстрирует интеграцию приложений в среду &kde;.

### Прочие специальные параметры окон

While you can use &kstart; to assign particular window settings, &kde; also allows you to alter these -- as well as other similar settings -- from the program window itself. Simply select the leftmost button in the window titlebar (or just hit &Alt;F3 once the window is focused), and then go to Advanced Special Window Settings.... As you can see, from here you change various things from its geometry upon startup, to whether it should have a border or not.

&Richard.J.Moore; &Richard.J.Moore.mail;

### Системный лоток

Now that we know how to customize the decoration of a window let's take a look at another aspect of the desktop: the system tray. The system tray is an area in which an application can display a small window. It is used to display status information or provide quick access to commands. A window that has an item in the system tray usually disappears from the task manager when minimized with the tray icon providing a replacement. Normally tray icons are specifically developed as part of an application, but as with window decorations, &kde; provides a tool for changing this: ksystraycmd.

To begin with, we'll take the standard application &kcalc; and turn it into a system tray application. This is achieved with one simple command:

    % ksystraycmd --title 'kcalc' kcalc

The icon shown in the tray is the one specified in the window hints and will be updated if the icon changes. The window title is shown as a tooltip if you hold the mouse over the icon. ksystraycmd follows standard &kde; behavior so the target window can be shown and hidden by clicking the tray icon, and a standard context menu is available.

&Richard.J.Moore; &Richard.J.Moore.mail;

### Дополнительные функции ksystraycmd

Рассмотрим более сложный пример использования команды ksystraycmd: поместим в лоток значок окна &konsole;, отслеживающего изменения в файле `.xsession-errors` (файл протокола, в который записывается информация об ошибках в графической среде). Вот команда для запуска такого окна:

    % konsole --icon
    log --caption 'Протокол X' \
    --nomenubar --notabbar
    --noframe \
    -e tail -f ~/.xsession-errors

Значения параметров `--caption` и `--icon` по умолчанию задаются самими приложениями &kde;. Полный список глобальных параметров можно просмотреть, запустив приложение с аргументами `--help-kde` и `--help-qt`. С помощью этой команды окну &konsole; присваивается заголовок 'Протокол X' и значок log. Эти опции применимы к любому приложению &kde; и, как уже было сказано выше, ksystraycmd учитывает их, создавая значок в лотке. Аргумент `-e` является опцией самой программы &konsole; - он указывает на то, что необходимо выполнить команду `less`. ksystraycmd с лёгкостью формирует значок приложения в лотке:

    % ksystraycmd
    --hidden --title 'X Log' \
    konsole --icon log --caption 'XLog' \
    --nomenubar --notabbar --noframe \
    -e tail -f .xsession-errors

Этот пример также демонстрирует работу параметра `--hidden` - значок приложения отсутствует на панели задач. Таким образом, задача - обеспечить быстрый доступ к файлу протокола - выполнена, но эффективность команды можно ещё немного увеличить, сделав так, чтобы процесс konsole был активен только в том случае, если значок является видимым. Для этого используется следующая команда:

    % ksystraycmd --startonshow \
     --icon log --tooltip 'X Log' \
    konsole --icon log --caption 'X Log' \
    --nomenubar --notabbar --noframe \
    -e tail -f ~/.xsession-errors

Добавление параметра `--startonshow` приводит к следующему: ksystraycmd отображает значок только в лотке (как в случае использования параметра `--hidden`) и запускает приложение после того, как пользователь активирует этот значок. Опция `--quitonhide` означает, что при скрытии окна выполнение команды останавливается. Таким образом, &konsole; не использует лишних ресурсов. Значок окна и отображаемую подсказку в данном случае требуется указывать вручную.

&Richard.J.Moore; &Richard.J.Moore.mail;

### Повышение надёжности

В ранее описанных примерах &kstart; и ksystraycmd самостоятельно определяли окно, с которым требуется работать. По умолчанию это первое окно, которое открывает приложение. Обычно такое поведение не приводит к ошибкам, однако если одновременно запускается несколько окон (например, при входе в систему), может произойти сбой. Этого можно избежать, используя параметр `--window`. Он позволяет указать заголовок требуемого окна. В следующем примере параметр `--window` используется для того, чтобы указать на конкретное окно konsole:

    % kstart --iconify --window 'kstart_me' konsole
    --caption 'kstart_me' -e tail -f
    ~/.xsession-errors

В данном примере заголовок окна был указан как для &kstart;, так и для целевого приложения. Это один из самых надёжных способов работы с &kstart; и ksystraycmd. Аргумент `--window` поддерживается как &kstart;, так и `ksystraycmd`. Допускается использование как обычной строки, так и регулярного выражения (например, window[0-9]). Регулярные выражения являются мощным механизмом работы со строками, используемым в &kde; очень часто.

## Работа с несколькими рабочими столами

Иногда на экране просто не хватает места для всех окон. Если несколько приложений работают одновременно, и экран загромождён окнами, возможно, следует использовать виртуальные рабочие столы. По умолчанию в &kde; четыре рабочих стола, каждый из которых работает подобно отдельному экрану: на каждом из них можно открывать окна, перемещать их и изменять фоновый рисунок. Эта техника похожа на механизм виртуальных терминалов.

### Переключение между виртуальными рабочими столами

Для того чтобы перейти к следующему виртуальному рабочему столу, используйте комбинацию клавиш &Ctrl;&Tab; , аналогично комбинации &Alt;&Tab; для переключения между окнами (см. ): удерживая клавишу &Ctrl;, нажимайте &Tab;. Появится маленькое всплывающее окно с изображенями рабочих столов, одно из которых будет выделено. Отпустите клавишу &Ctrl;, чтобы перейти к выделенному рабочему столу. Нажимайте клавишу &Tab;, удерживая &Ctrl;, чтобы переключаться между столами.

### Окна и виртуальные рабочие столы

Переместить окно с одного виртуального рабочего стола на другой можно с помощью пункта На рабочий столменю окна: в открывшемся подменю просто выберите требуемый рабочий стол. Для того чтобы сделать окно доступным на всех рабочих столах, установите переключатель Все рабочие столы.