&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;.

Обратиться к &kstart; можно с помощью команды ``kstart`` с требуемыми параметрами. Для начала попробуем изменить поведение окна программы &kcalc;. Команда будет выглядеть следующим образом:

    % kstart --ontop --alldesktops kcalc

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

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

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

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

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

Изменять настройки окна можно как с помощью утилиты &kstart;, так и через меню окна. Нажмите крайнюю левую кнопку в заголовке окна (или используйте комбинацию клавиш &Alt;F3, чтобы открыть меню активного окна) и выберите Дополнительно Специальные параметры окна... Откроется окно, позволяющее изменять разнообразные параметры - размеры, наличие или отсутствие границы и многие другие.

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

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

Итак, нам известно, как настроить окно. Рассмотрим другой элемент рабочего стола - системный лоток. Системный лоток - это область, в которой приложение может отображать маленький значок окно. Он используется для вывода информации о состоянии или для предоставления быстрого доступа к командам. Окно, отображающее свой значок в системном лотке, обычно исчезает с панели задач после сворачивания, так как значок в лотке заменяет значок на панели задач. Обычно работу с лотком осуществляет само приложение, но инструменты &kde; позволяют изменить их поведение самостоятельно: ksystraycmd.

Для начала попробуем создать значок в системном лотке для приложения &kcalc;. Это достигается одной простой командой:

    % ksystraycmd --title 'kcalc' kcalc

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

&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;, чтобы переключаться между столами.

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

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