Руководство по IceWM

Введение

Этот документ является руководством по IceWM, диспетчеру окон для X11. Man-страницы IceWM предоставляют дополнительную документацию.

Цель проекта IceWM - создать маленький, быстрый и дружелюбный диспетчер окон для системы окон X11, совместимый с протоколами управления окнами EWMH и ICCCM. Обычно он старается сделать все функции доступными и с помощью клавиатуры, и с помощью мыши (это в настоящее время недоступно при использовании фокуса мыши).

IceWM изначально создавался для имитации внешнего вида Motif, OS/2 Warp 4, OS/2 Warp 3 и Windows 95. Поскольку он имеет движок тем, допустимы другие стили оформления. Большое количество оригинальных тем созданы и опубликованы пользователями.

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

Копирование

IceWM и эта документация защищены лицензией GNU LGPL, включенной в комплект поставки.

Первые шаги

Компоненты IceWM

Набор IceWM состоит из следующих основных приложений, предоставляемых главным пакетом:

Запуск icewm

Программа icewm подходит для использования в окружении рабочего стола наподобие GNOME. Если вы хотите запустить весь набор IceWM (диспетчер окон, изменение фона, поддержка приложений-Докаппов и обработка скриптов старта/останова), используйте бинарник icewm-session вместо просто icewm. Обратите внимание, что это не настоящий Диспетчер сессий, но помогает автоматизировать запуск.

Сначала убедитесь, что вы выбрали правильный скрипт запуска X-ов в вашем домашнем каталоге. Для большинства дистрибутивов любой из файлов $HOME/.xsession или $HOME/.xinitrc служат для startx и менеджеров дисплея X вроде KDM. В RedHat $HOME/.Xclients может быть использован вместо них. В любом случае выберите рекомендуемый вашим дистрибутивом и убедитесь, что здесь нет дублирующихся скриптов запуска X-ов. Обеспечьте, чтобы скрипт был исполняемым. Мой выглядит примерно так:

#!/bin/bash
# run profile to set $PATH and other env vars correctly
. $HOME/.bash_profile
# setup touchpad and the external mouse
xset m 7 2
xinput set-ptr-feedback 0 7 1.9 1

# start icewm-session
exec icewm-session
xterm

Xterm в последней строке здесь просто для того, чтобы убедиться, что ваша сессия X-ов не упала, если IceWM это сделает (чего не должно случиться никогда). Вы сможете перезапустить IceWM отсюда или запустить другой диспетчер окон. Сессия закроется, если вы закроете xterm.

Скрипты запуска и останова.

После инициализации icewm-session ищет путь к ресурсам для скрипта startup. Если этот файл был найден и он исполняемый, icewm-session запускает этот скрипт. Перед завершением icewm-session выполняется скрипт shutdown.

Пример скрипта ~/.icewm/startup:

#!/bin/bash

[ -x ~/.icewm/restart ] && source ~/.icewm/restart

gnome-terminal --geometry 80x25+217+235 &
xscreensaver &

При завершении сначала будет выполнен скрипт shutdown, потом icewm-session завершит icewm и icewmbg.

Подсказка: icewm-session служит просто для инициализации рабочего стола и является частью IceWM из-за известных потребностей. Для более сложного управления сессиями используйте настоящий диспетчер сессий. IceWM поддерживает протокол XSESSION.

Дополнительное окружение сессии

Пожалуйста, заметьте, что если icewm-session используется только как механизм запуска (без участия .xsession), можно вписать дополнительные настройки окружения в файл $HOME/.icewm/env. Расширение переменными в простом стиле оболочки поддерживается большинством платформ. Расширение командами оболочки поддерживается, если настроен wordexp. Это дополнительное окружение эффективно только в приложениях, запущенных icewm-session и его подпроцессами.

Пример env:

PATH=~/bin:$PATH
LANG=de_DE.UTF-8

Режимы фокуса

IceWM реализует четыре основных режима фокуса:

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

Команды мыши

Команды на рамке

Команды на заголовке

Клавиша Ctrl может использоваться вместе с кнопкой мыши для предотвращения поднятия окна на вершину стека.

Команды на панели задач

Команды клавиатуры

Клавиша Alt подразумевает, что эта клавиша определена как модификатор Mod1.

Путь к ресурсам

IceWM смотрит в некоторые местоположения для информации о конфигурации, темах и настройках; их общим наименованием будет “путь к ресурсам”. Путь к ресурсам содержит следующие каталоги:

$ICEWM_PRIVCFG; $XDG_CONFIG_HOME/icewm; $HOME/.icewm

Первый же из них, который определён и существует, используется для поиска индивидуальных пользовательских настроек.

/etc/icewm каталог с общесистемными настройками по умолчанию

/usr/share/icewm или /usr/local/share/icewm вкомпилированный каталог по умолчанию с файлами по умолчанию

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

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

Для настройки icewm под себя создайте каталог $HOME/.icewm и скопируйте те файлы, которые хотите изменить, вроде preferences, keys или winoptions из /etc/icewm, /usr/share/icewm или /usr/local/share/icewm и измените их по вашему вкусу.

Для настройки тем по умолчанию создайте каталог $HOME/.icewm/themes, скопируйте туда все файлы темы и тогда измените как вам надо. Каждая тема имеет свой каталог. Темы можно загрузить из https://themes.ice-wm.org.

Файлы конфигурации

IceWM использует следующие файлы конфигурации:

Темы

Файл theme содержит текущую выбранную тему. Он будет автоматически перезаписан при выборе темы через меню Темы.

Предпочтения

Эта секция показывает предпочтения, которые могут быть установлены в preferences. Темы не могут быть перекрыты этими параметрами. Значения по умолчанию показаны после знака равенства.

Фокус и поведение

Следующие параметры могут иметь значение 1 (включено) или 0 (выключено).

Список быстрого переключения

Переключение рабочих мест по достижении края

Панель задач

Следующие параметры могут быть установлены в значение 1 (включено) или значение 0 (выключено).

Мониторинг почтового ящика (обновлено 2018-03-04)

Здесь может содержаться список спецификаций почтовых ящиков. Почтовые ящики разделяются пробелами. Если TaskBarShowMailboxStatus включен, то IceWM мониторит каждый почтовый ящик на изменение статуса каждые MailCheckDelay секунд. Для каждого почтового ящика IceWM показывает значок на панели задач. Значок показывает, есть ли почта, есть ли непрочитанная почта или есть ли новая почта. Наведение указателя мыши на значок покажет количество сообщений в этом почтовом ящике, а также количество непрочитанной почты. Почтовый ящик может быть путём к файлу в обычном формате mbox. Если путь указывает на каталог, то предполагается формат Maildir. Удалённые почтовые ящики специфицируются по URL, используя Common Internet Scheme Syntax (RFC 1738):

scheme://user:password@server[:port][/path]

Поддерживаются схемы pop3, pop3s, imap, imaps и file. Схемы pop3s и imaps зависят от наличия команды openssl для шифрования TLS/SSL. Здесь также выбирается любой port 993 для imap или 995 для pop3. Когда схема опущена, предполагается file. Подпапки IMAP могут быть заданы как компонент path. Зарезервированные символы, такие как slash, at и colon могут быть определены с использованием escape-последовательностей, как %2f для косой черты или %40 для знака at. Например:

file:///var/spool/mail/captnmark
file:///home/captnmark/Maildir/
pop3://markus:%2f%40%3a@maol.ch/
pop3s://markus:password@pop.gmail.com/
imap://mathias@localhost/INBOX.Maillisten.icewm-user
imaps://mathias:password@imap.gmail.com/INBOX

Для помощи в разрешении ошибок сетевого протокола для pop3 и imap установите переменную окружения ICEWM_MAILCHECK_TRACE. IceWM тогда запишет в лог подробности коммуникации для почтовых ящиков POP3 и IMAP. Просто поставьте export ICEWM_MAILCHECK_TRACE=1 перед выполнением icewm или поставьте это в конфигурационный файл env.

Заметьте, что для доступа IceWM к Gmail вы должны сперва настроить ваш аккаунт Gmail для включения доступа по POP3 или IMAP. Для разрешения не-Gmail приложениям вроде IceWM использовать это см. сайт помощи Gmail на предмет “Let less secure apps use your account”. Также установите безопасные права доступа к файлу preferences вашего IceWM и каталогу, содержащему его. Но всегда неразумно хранить пароль в файле. Рассмотрите расширение “кошелька” для IceWM. Следующий фрагмент кода на Perl демонстрирует как перекодировать пароль вроде !p@a%s&s~ в шестнадцатеричный вид:

perl -e 'foreach(split("", $ARGV[0])) { printf "%%%02x", ord($_); }; print "\n";' '!p@a%s&s~'
%21%40%23%24%25%5e%26%2a%7e

Меню

Временные интервалы

Кнопки и клавиши

Рабочие места

Пути

Программы

Меню окна

WinMenuItems

Пункты, которые будут показаны в меню окна, допустимыми значениями являются:

Настройки темы

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

Ограничительные рамки

Следующие настройки могут иметь числовые значения.

Шрифты

Следующие настройки могут иметь строковые значения.

Когда IceWM сконфигурирован с --enable-xfreetype, могут быть использованы только настройки с суффиксом “Xft”. Они определяют имя шрифта в формате fontconfig:

MenuFontNameXft="sans-serif:size=12:bold"

Цвета

Фон рабочего стола

Следующие параметры использует icewmbg:

Стиль панели задач

Меню и Панель инструментов (обновлено 2018-05-06)

menu

Внутри конфигурационного файла menu вы можете настроить, какие программы должны появиться в корневом/стартовом меню.

Вложенные меню могут быть созданы с:

menu "title" icon_name {
# contained items
}
separator
menufile "title" icon_name filename
menuprog "title" icon_name program arguments
menuprogreload "title" icon_name timeout program arguments
include filename
includeprog program arguments

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

Директива menufile создаёт вложенное меню с заголовком title и значком icon_name, menuprog и menuprogreload создают вложенное меню с записями из вывода program arguments, где timeout из menuprogreload приказывает перечитать вложенное меню после истечения таймаута. Выражение include загружает более подробную конфигурацию из заданного filename, includeprog запускает program arguments для анализа вывода.

toolbar

Конфигурационный файл toolbar используется для размещения программ в виде кнопок на панели задач. Он использует тот же синтаксис, что и файл menu.

programs

Обычно автоматически генерируемый конфигурационный файл меню установленных программ. Файл programs может быть автоматически сгенерирован через wmconfig (Redhat), menu (Debian) или icewm-menu-fdo.

Программы могут быть добавлены, используя следующий синтаксис:

prog "title" icon_name program_executable options

Перезапуск другого диспетчера окон может быть сделан, используя перезапуск программы:

restart "title" icon_name program_executable options

icon_name может быть -, если значка нет или !, если имя значка должно быть подставлено проверкой команды (т.е. настоящий исполняемый файл, следующие симлинки при необходимости).

Ключевое слово “runonce” позволяет запускать приложение, только когда ни в одном окне не указано свойство WM_CLASS. Иначе первое же окно, содержащее это свойство класса находится и поднимается. Синтаксис:

runonce "title" icon_name "res_name.res_class" program_executable options
runonce "title" icon_name "res_name" program_executable options
runonce "title" icon_name ".res_class" program_executable options

Свойство класса окна приложения можно выяснить, запустив

xprop WM_CLASS

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

IceWM интерпретирует только двойные кавычки. IceWM не запускает оболочку автоматически, поэтому вы, возможно, должны сделать это сами.

Горячие клавиши

IceWM позволяет запуск произвольных программ с помощью любых комбинаций клавиш. Это настраивается в файле keys. Синтаксис этого файла такой:

key “key combination” program options…

Например:

key  "Alt+Ctrl+t"  xterm -rv
key "Ctrl+Shift+r" icewm --restart
runonce "Alt+F12"  "res_name.res_class" program_executable options

Параметры окон (обновлено 2018-03-04)

Файл winoptions используется для настроек конфигурации для отдельных окон приложений. Каждая строка в этом файле может иметь один из следующих форматов:

Последний формат устанавливает значение параметра по умолчанию для всех окон. Каждое окно на рабочем столе должно иметь ресурсы name и class, связанные с ним. Некоторые приложения также имеют ресурс window role. Они могут быть выяснены с применением утилиты xprop. Когда использовано на окне на высоком уровне, xprop | grep -e CLASS -e ROLE должен вывести примерно такую строку:

WM_CLASS = "name", "Class"

и ещё может показать примерно такую строку:

WM_WINDOW_ROLE = "window role"

Возможно, что name и/или class приложения содержат символ точки (.), который также используется IceWM для разделения значений name, class и role. В этом случае предварите точку символом backslash (\). В следующем примере мы предположим, что окно приложения имеет the.name как значение name и The.Class как значение class и для этой комбинации мы сопоставим option к argument.

the\.name.The\.Class.option: argument

Параметры, которые могут быть назначены каждому окну, следующие:

Обработка значков

Общие положения

Диспетчер окон ожидает найти два XPM файла для каждого значка, представленных в файлах конфигурации как ICON. Они должны называться примерно так:

Другие размеры картинок, как 20x20, 24x24, 40x40, 48x48, 64x64 могут быть использованы в будущем. Возможно, нам нужен формат файла, который может содержать более одного изображения (с разными размерами и глубиной цвета), как файлы .ICO Windows'95 и OS/2.

Было бы классно создать фичу из OS/2, которая меняет размер значка в соответствии с разрешением экрана (значки 16x16 и 32x32 маловаты на экранах 4000x4000 ;-).

GDK-Pixbuf

Когда icewm сконфигурирован с параметром --enable-gdk-pixbuf, поддерживаются все форматы изображений GdkPixbuf. Используйте их в спецификациях полного имени файла или абсолютного пути:

Курсоры мыши

IceWM проверяет каталоги тем и конфигурации на наличие подкаталогов под названием cursors, содержащих монохромные или прозрачные файлы XPM. Для изменения курсоров мыши используйте следующие имена файлов:

Темы

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

Поиск файлов тем производится в подкаталогах themes.

Эти каталоги содержат другие каталоги, которые содержат файлы, связанные с темами и их файлы .xpm. Каждый файл темы определяет шрифты, цвета, размеры рамок, …

Используемая тема определяется в файле ~/.icewm/theme:

Если каталог темы содержит файл с именем fonts.dir, созданный mkfontdir, каталог темы включается в путь поиска шрифта X сервера.

На www.box-look.org очень много тем, которые были созданы пользователями IceWM.

Параметры командной строки

icewm поддерживает следующие параметры:

-d, --display=NAME

ИМЯ X-сервера для использования.

--client-id=ID

Идентификатор клиента, используемый при обращении к диспетчеру сессий.

--sync

Синхронизировать команды X11.

-c, --config=FILE

Загрузить предустановки из ФАЙЛА.

-t, --theme=FILE

Загрузить тему из ФАЙЛА.

--postpreferences

Напечатать предустановки после обработки всех их.

-V, --version

Напечатать информацию о версии и выйти.

-h, --help

Напечатать этот экран об использовании и выйти.

--replace

Заменить существующий диспетчер окон.

-r, --restart

Приказать работающему icewm перезапустить себя.

--configured

Напечатать конфигурацию, которая была во время компиляции.

--directories

Напечатать каталоги конфигурации

-l, --list-themes

Напечатать список доступных тем.

Параметр restart может быть использован, чтобы перезагрузить конфигурацию IceWM после изменения. Это предпочтительный способ, чтобы перезапустить IceWM из командной строки или из скрипта. Для загрузки другой темы из командной строки, совместите его с параметром --theme=NAME так:

icewm -r -t CrystalBlue

Имя темы тогда будет сохранено в файле конфигурации ‘theme’, перед перезапуском IceWM.

Глоссарий

Resource Path

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

Авторы

Авторы, внёсшие свой вклад в этот документ, включают Gallium, Macek, Hasselmann, Gijsbers, Bidulock и Bloch.

Перевод

Перевод данного текста на русский язык, а также поддержка пакета icewm в ALTLinux Dmitriy Khanzhin.

См. также

icehelp(1), icesh(1), icesound(1), icewm-env(5), icewm-focus_mode(5), icewm-keys(5), icewm-menu-fdo(1), icewm-menu-xrandr(1), icewm-menu(5), icewm-preferences(5), icewm-prefoverride(5), icewm-programs(5), icewm-session(1), icewm-shutdown(5), icewm-startup(5), icewm-theme(5), icewm-toolbar(5), icewm-winoptions(5), icewm(1), icewmbg(1), icewmhint(1),