Marko.Macek@gmx.net
Задача IceWM предоставить компактный, быстрый и удобный
(знакомый) менеджер окон для графической системы Х11. По возможности
обеспечивается совместимость с оконным менеджером
mwm
.
IceWM может имитировать внешние виды Motif, OS/2 Warp 4, OS/2 Warp 3 и Windows 95. В будущем могут быть добавлены и другие внешние виды.
Там где это допустимо, воспроизводятся и способы работы с выше упомянутыми системами.
Практически все операции можно производить как мышью, так и клавиатурой (за исключением фокусировки с помощью мыши).
Сверхконфигурируемость, такая как в fvwm
и во многих
других оконных менеджерах, НЕ ЯВЛЯЕТСЯ целью.
Конфигурационный файл меню пользователя. Определяет программы, запускаемые с помощью главного/стартового меню .
Конфигурационный файл панели инструментов. Определяет программы, доступные в виде кнопок на панели задач.
Обычно, этот конфигурационный файл содержит автоматически
сгенерированное меню установленных программ. Файл programs
должен быть сгенерирован с помощью wmconfig
(Redhat),
menu
(Debian) или другой подобной программы (существуют
программы kde2ice и gno2ice для перевода иерархий меню GNOME/KDE).
Синтаксис добавления программ следующий:
prog "Название" имя_иконки имя_файла_программы параметры
имя_иконки может быть -
, если иконка не нужна.
Синтаксис добавления подменю следующий:
menu "Название" имя_иконки { # содержимое подменю }
IceWM интерпретирует только двойные кавычки. IceWM не запускает автоматически shell, так что вам придется делать это самим.
Icewm позволяет запускать любые программы с помощью каких угодно
сочетаний клавиш. Это определяется в файле
libpath/keys
.
Синтаксис этого файла следующий:
key "сочетание клавиш" программа параметры...
Например:
key "Alt+Ctrl+t" xterm
Файл winoptions предназначен для настройки окон отдельных приложений.
Каждая строка этого файла должна быть в одном из следующих форматов:
класс_окна.имя_окна.параметр: значение
имя_окна.параметр: значение
класс_окна.параметр: значение
Каждое окно на рабочем столе имеет (должно иметь) связанные с ним ресурсы
класса и имени. Они могут быть определены с помощью утилиты
xprop
.
xprop при использовании с самым верхним окном выдает примерно такую строку:
WM_CLASS = "имя", "класс"
Параметры, которые могут быть определены для каждого окна, следующие:
Имя иконки.
workspace
Рабочее место по умолчанию для этого окна (число, считая от 0)
layer
Слой по умолчанию для этого окна. Слой может быть определен одной из следующих строк:
Окно рабочего стола. В этом слое должно быть только одно окно.
Below
Ниже основного слоя.
Normal
Основной слой для окон.
OnTop
Выше основного слоя.
Dock
Слой для окон, прикрепленных к краю экрана.
AboveDock
Слой над доковым слоем.
Menu
Слой над доковым слоем.
Кроме того, вы можете использовать числа из WinMgr.h
.
Если сделать равным 1, окна будут видны на всех рабочих местах.
ignoreWinList=0
Если сделать равным 1, окно не появится в списке окон.
ignoreTaskBar=0
Если сделать равным 1, окно не появится на панели задач.
ignoreQuickSwitch=0
Если сделать равным 1, окно будет недоступно для функции быстрого переключения (Alt+Tab).
fullKeys=0
Если сделать равным 1, оконный менеджер оставит для приложений больше клавиш (Alt+F?).
fMove=1
Если сделать равным 0, окно станет неперемещаемым.
fResize=1
Если сделать равным 0, окно будет с неизменяемыми размерами.
fClose=1
Если сделать равным 0, окно станет незакрываемым.
fMinimize=1
Если сделать равным 0, окно нельзя будет минимизировать.
fMaximize=1
Если сделать равным 0, окно нельзя будет максимизировать.
fHide=1
Если сделать равным 0, окно нельзя будет спрятать.
fRollup=1
Если сделать равным 0, окно будет несворачиваемым.
dTitleBar=1
Если сделать равным 0, у окна не будет панели заголовка.
dSysMenu=1
Если сделать равным 0, у окна не будет системного меню.
dBorder=1
Если сделать равным 0, у окна не будет рамки.
dResize=1
Если сделать равным 0, у окна не будет меняющей размер рамки.
dClose=1
Если сделать равным 0, у окна не будет кнопки закрытия.
dMinimize=1
Если сделать равным 0, у окна не будет кнопки минимизации.
dMaximize=1
Если сделать равным 0, у окна не будет кнопки максимизации.
noFocusOnAppRaise
Если сделать равным 1, окно не будет автоматически получать фокус при переводе его на передний план приложением.
ignoreNoFocusHint
Если сделать равным 1, icewm передаст окну фокус даже если это окно не поддерживает ввод.
Менеджер окон рассчитывает найти два XPM-файла для каждой иконки указанной в конфигурационных файлах как ICON. Эти файлы должны называться как-то так:
_16x16.xpm
маленький рисунок, размером 16x16 точек.
ICON_32x32.xpm
Обычный рисунок, 32x32 точки.
ICON_48x48.xpm
Большой рисунок, 48x48 точек.
Другие размеры, такие как 20x20, 24x24, 40x40, 48x48, 64x64, могут быть использованы в будущем. Возможно, нам нужен новый формат, который может содержать больше одного рисунка (с разными размерами и количеством цветов), как .ICO-файлы Windows и OS/2.
Было бы хорошо иметь возможность изменять размер иконки в зависимости от разрешения экрана, как в OS/2 ( иконки 16x16 и 32x32 кажутся слишком мелкими на экранах с разрешением 4000x4000 ;-)
Темы предназначены для определения внешнего вида менеджера окон. Такие параметры, как шрифты, цвета, размеры рамок, картинки кнопок могут быть переопределены. Вместе эти настройки и составляют тему.
Файлы тем разыскиваются в подкаталогах директория
libpath/themes
.
Эти подкаталоги содержат другие директории, в которых размещены относящиеся к теме файлы и .xpm-картинки. Каждый .theme-файл определяет используемые темой шрифты, цвета и т.п.
Какую тему использовать определяет либо опция командной строки
-t
, либо параметр Theme
конфигурационного
файла preferences.
Название используемой темы. Необходимо указывать и директорий и файл темы.
Подключить X экран к ЭКРАНу.
-c CONFIG
Использовать конфигурационный файл CONFIG.
-v
Показать версию.
-n
Не использовать конфигурационных файлов. Воспользоваться значениями по умолчанию.
-t theme
Использовать указанную тему.
-debug
Выводить различные отладочные сообщения на stderr.
IceWM X11 Window Manager
Copyright (C) 1997,1998,1999 Marko Macek
Примечание переводчика: в оригинальном тексте Марко Мацек вместо слова продукт использует слово библиотека и распространяет его по лицензии GNU LGPL.
Этот продукт - свободное программное обеспечение; вы можете распространять и/или модифицировать его по лицензии GNU Library General Public License версии 2 или (на ваше усмотрение) любой более поздней версии, опубликованной Free Software Foundation.
Этот продукт распространяется в надежде, что он окажется полезным, но БЕЗ КАКИХ ЛИБО ГАРАНТИЙ. За подробностями обращайтесь к лицензии GNU Library General Public License.
Вместе с продуктом вы должны были получить копию лицензии GNU Library General Public License, если ее нет, напишите по адресу: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA.
Для нормальной работы функции перезапуска исполняемый файл
icewm
должен быть доступен через переменную $PATH.
Сначала убедитесь в отсутствии файлов $HOME/.xinitrc или $HOME/.Xsession, а если они есть, то проверьте, что они нормально запускают $HOME/.Xclients.
Рекомендуемый способ запуска - из файла $HOME/.Xclients (должен быть исполняемым). Мой выглядит примерно так:
# run profile to set $PATH and other env vars correctly . $HOME/.bash_profile # setup background xsetroot -solid '#056' # setup mouse acceleration xset m 7 2 # run initial programs xterm & # start icewm, and run xterm if it crashes (just to be safe) exec icewm || exec xterm -fg red
Х-терминал в последней строке для того, чтобы ваша Х-сессия не обвалилась в случае краха icewm (никогда не должно случиться). Из него вы сможете перезапустить icewm либо другой оконный менеджер. Сессия завершится если вы закроете xterm.
Выше приведенный способ должен работать на большинстве Linux-систем. На коммерческих унихах вы должны использовать $HOME/.dtprofile если у вас CDE, либо $HOME/.vueprofile на HP-UX с HP VUE. Если вы используете xdm или какую-нибудь другую программу входа, в ее ман-странице найдите правильное место для запуска оконного менеджера (обычно это /.Xsession).
В IceWM реализованы 4 способа фокусировки:
Точно как в Win9x и OS/2 Warp. При щелчке мышью по окну, оно активизируется и выводится на передний план.
Окно получает фокус и переводится на передний план при щелчке на панели заголовка либо на рамке. При щелчке на содержимом окна, окно получает фокус, но на передний план не переводится.
При перемещении мыши, фокус передается окну под курсором. Если мышь не двигать, то фокус можно будет передавать другим окнам и с помощью клавиатуры.
При щелчке окно активизируется, но не переводится на передний план. Новые окна получают фокус только если они принадлежат активному окну.
Выбор способа фокусировки осуществляется с помощью соответстующих параметров конфигурационных файлов.
Выбор окна и перевод его на передний план. На рамке окна - изменение размеров этого окна.
Если нажата, и мышь перемещается - окно двигается. При щелчке выводится контекстное меню.
Перемещение окна.
Перевод окна на задний план.
Максимизировать/Восстановить окно.
Свернуть/Развернуть окно.
Удерживая нажатой во время щелчка клавишу Ctrl можно предотвратить перевод окна на передний план.
Щелчок левой кнопкой
Активизирует рабочее место с выбранным окном, и переводит это окно на передний план. Переключает минимизированное/активное состояние окна.
Shift + Щелчок левой кнопкой
Переносит окно на текущее рабочее место. Это работает, только если на панели задач отображаются окна со всех рабочих мест.
Control + Щелчок левой кнопкой
Минимизировать/восстановить окно.
Щелчок средней кнопкой
Перевод окна на передний/задний план.
Shift + Щелчок средней кнопки
Переносит окно на текущее рабочее место.
Control + Щелчок средней кнопкой
Перевод окна на задний план.
Щелчок правой кнопкой
Вывод контекстного меню.
Подразумевается, что клавиша Alt определена как переключатель Mod1.
Alt+F1
Перевести окно на передний план.
Alt+F2
Распространить окно на все рабочие столы.
Alt+F3
Перевести окно на задний план.
Alt+F4
Закрыть окно.
Alt+F5
Восстановить нормальное состояние окна, если оно максимизировано или минимизировано/спрятано.
Alt+F6
Передать фокус следующему окну.
Alt+Shift+F6
Передать фокус предыдущему окну.
Alt+F7
Передвинуть окно.
Alt+F8
Изменить размер окна.
Alt+F9
Минимизировать окно на панель задач.
Alt+F10
Максимизировать окно.
Alt+Shift+F10
Максимизировать окно по вертикали (переключатель).
Alt+F11
Спрятать окно (отображается в списке окон, но не на панели задач).
Alt+F12
Свернуть/Развернуть окно.
Ctrl+Escape
Показать стартовое меню.
Ctrl+Shift+Escape
Показать список окон.
Shift+Escape
Показать системное меню окна.
Alt+Escape
Передать фокус следующему окну (вниз по Z-порядку)
Alt+Shift+Escape
Передать фокус предыдущему окну (вверх по Z-порядку)
Alt+Tab
Перебор (переключение) окон (от верхнего к нижнему).
Alt+Shift+Tab
Перебор (переключение) окон (от нижнего к верхнему).
Ctrl+Alt+LeftArrow
Перейти к предыдущему рабочему месту (циклично).
Ctrl+Alt+RightArrow
Перейти к следующему рабочему месту (циклично).
Ctrl+Alt+Shift+LeftArrow
Перевести окно в фокусе на предыдущее рабочее место и активизировать его.
Ctrl+Alt+Shift+RightArrow
Переводит окно в фокусе на следующее рабочее место и активизирует его.
Ctrl+Alt+Delete
Вывести диалог управления сессией.
Для поиска большинства файлов icewm использует библиотечный путь. Этот путь включает в себя следующие директории:
$HOME/.icewm
персональные настройки пользователя
/etc/X11/icewm
общесистемные значения по умолчанию
/usr/local/lib/X11/icewm
директорий по умолчанию, содержащий основные файлы (для .rpm-пакетов директорий по умолчанию - /usr/X11R6/lib/X11/icewm)
Вышеупомянутые директории просматриваются в таком порядке, что
любой файл в установочном директории может быть переопределен
пользователем создавшим в каталоге $HOME/.icewm
аналогичную иерархию директорий и файлов.
IceWM использует следующие конфигурационные файлы:
lib
/
preferences
- Основные параметры - пути, цвета, шрифты ...
lib
/
menu
- Стартовое меню. Обычно настраивается пользователем.
lib
/
programs
- Автоматически генерируемое меню остальных приложений
(его следует создавать с помощью wmconfig, menu или
схожих пакетов, возможно, во время входа в систему или в процессе
запуска Х-windows).
lib
/
winoptions
- Свойства окон приложений
Значения по умолчанию показаны после знака равенства.
Следующим параметрам может быть присвоено значение 1 (разрешено) или значение 0 (запрещено).
ClickToFocus = 1
Разрешить фокус по щелчку.
RaiseOnFocus = 1
При получении фокуса окно переводить на передний план.
FocusOnClickClient = 1
Окно получает фокус при щелчке на содержимом этого окна.
RaiseOnClickClient = 1
При щелчке на содержимом окна, оно переводится на передний план.
RaiseOnClickTitleBar = 1
Окно переводится на передний план при щелчке на панели заголовка.
RaiseOnClickButton = 1
Окно переводится на передний план при щелчке на кнопке панели заголовка.
RaiseOnClickFrame = 1
Окно переводится на передний план при щелчке на рамке.
PassFirstClickToClient = 1
Щелчок переводящий окно на передний план передается и клиенту.
AutoRaise = 0
При получении фокуса, окна будут автоматически переводится на передний план через интервал времени равный AutoRaiseDelay.
FocusOnMap = 1
Окно получает фокус после создания.
FocusOnMapTransient = 1
Промежуточные окна получают фокус после создания.
FocusOnAppRaise = 1
Окно получает фокус когда приложение переводит его на передний план.
PointerColormap = 0
Цветовой фокус следует за курсором.
SizeMaximized = 0
У максимизированного окна можно изменять размеры.
MinimizeToDesktop = 0
Окно минимизируется и на рабочий стол (а не только на панель задач).
QuickSwitch = 1
разрешить Alt+Tab переключатель окон.
QuickSwitchToMinimized = 1
Alt+Tab переключается и на минимизированные окна.
QuickSwitchToAllWorkspaces = 1
Alt+Tab переключается на окна со всех рабочих мест.
ShowMoveSizeStatus = 1
Показывать окно статуса перемещения/изменения размеров при перемещении/изменении размеров окон.
WarpPointer = 0
В режиме фокуса под курсором, при изменении фокуса с помощью клавиатуры, перемещать указатель в позицию нового фокуса.
OpaqueMove = 1
При перемещении, окно начинает двигаться сразу, без рисования контуров нового положения (непрозрачное перемещение).
OpaqueResize = 0
Окно изменяет свои размеры сразу, без рисования контуров нового размера.
Win95Keys = 0
Разрешить функционирование 3х дополнительных клавиш. Клавиши должны быть определены, как MetaL, MetaR и Menu. Тогда левая клавиша будет активизировать стартовое меню, а правая - меню списка окон.
ManualPlacement = 0
Пользователь должен будет вручную размещать окна на рабочем месте.
IgnoreNoFocusHint = 0
Игнорировать подсказку (или событие ?) "no-accept-focus", устанавливаемую некоторыми окнами?
MenuMouseTracking = 0
Если разрешено, то меню будет отслеживать перемещения мыши, даже при отпущеной кнопке.
SnapMove = 1
Стыковать перемещаемое окно к ближайшему краю экрана/окна.
SnapDistance
Расстояние в пикселах между краями окон, прежде чем они состыкуются.
EdgeSwitch = 0
Автоматическое переключение рабочих мест при достижении мышью левого/правого края экрана.
AutoReloadMenus = 1
Автоматически перезагружать файлы меню.
Следующим параметрам может быть присвоено значение 1 (разрешено) или значение 0 (запрещено).
Показывать панель задач.
TaskBarAtTop = 0
Панель задач расположена вверху экрана.
TaskBarAutoHide = 0
Автоматически скрывать панель задач, когда курсор уходит с нее.
TaskBarShowStartMenu = 1
Показывать на панели задач кнопку стартового меню.
TaskBarShowWindowListMenu
Показывать на панели задач кнопку списка окон.
TaskBarShowWorkspaces = 1
Показывать на панели задач кнопки переключения рабочих мест.
TaskBarShowAllWindows = 0
Отображать на панели задач окна со всех рабочих мест.
TaskBarShowClock = 1
Показывать часы на панели задач.
TaskBatClockLeds = 1
Отображать время в графическом ЖКИ-стиле.
TaskBarShowMailboxStatus = 1
Отображать состояние почтового ящика (определяется переменной окружения $MAIL).
TaskBarMailboxStatusBeepOnNewMail = 1
Подавать звуковой сигнал при появлении новой почты.
TaskBarMailboxStatusCountMessages = 0
Отображать в качестве подсказки количество писем.
TaskBarDoubleHeight = 0
Панель задач двойной высоты (примечание переводчика: при этом в верхней части панели появится строка для ввода команд).
TaskBarShowCPUStatus = 1
Отображать на панели задач состояние процессора.
TimeFormat
Формат вывода часов панели (время) (смотри strftime(3) man-страницу)
DateFormat
Формат вывода подсказки для часов (дата+время) (смотри strftime(3) man-страницу).
UseMouseWheel
поддержка колесика у мыши
DelayPointerFocus
аналог задержки автоматического перевода на передний план.
Следующим параметрам могут быть присвоены числовые значения.
Ширина левой/правой части рамки.
BorderSizeY = 6
Высота верхней/нижней части рамки.
DlgBorderSizeX = 2
Ширина левой/правой части рамки окон с неизменяемыми размерами.
DlgBorderSizeY = 2
Высота верхней/нижней части рамки окон с неизменяемыми размерами.
CornerSizeX = 24
Ширина уголка окна.
CornerSizeY = 24
Высота уголка окна.
TitleBarHeight = 20
Высота панели заголовка.
EdgeResistance = 32
Сопротивление при перемещении окна за границу экрана. Установка значения 10000 делает это сопротивление бесконечным.
UseRootButtons
Битовая маска щелчка на рабочем столе.
ButtonRaiseMask
Битовая маска кнопок вызывающих перевод окна на передний план.
Смещение, после которого щелчок будет считаться тягой (drag).
MultiClickTime = 400
Время (мс) для распознавания двойного щелчка.
AutoRaiseDelay = 400
Задержка перед автоматическим переводом на передний план (должна быть предварительно разрешена в параметре AutoRaise).
AutoHideDelay = 300
Задержка перед автоматическим сокрытием панели задач (должна быть предварительно разрешена в TaskBarAutoHide).
ToolTipDelay = 1000
Задержка перед показам подсказки.
ScrollBarStartDelay
Начальная задержка автоскроллинга ползунка
ScrollBarDelay
Задержка автоскроллинга ползунка
AutoScrollStartDelay
Задержка перед началом автоскроллинга
AutoScrollDelay
задержка автоскроллинга
Следующим параметрам могут быть присвоены строковые значения.
Название шрифта панели заголовка.
MenuFontName = ""
Название шрифта меню.
StatusFontName = ""
Название шрифта отображения статуса.
QuickSwitchFontName = ""
Название шрифта для окна Alt+Tab переключателя.
NormalTaskBarFontName = ""
Название шрифта для нормального элемента панели задач.
ActiveTaskBarFontName = ""
Название шрифта для активного элемента панели задач.
ListBoxFontName = ""
Название шрифта списка окон.
ToolTipFontName = ""
Название шрифта для подсказок.
ClockFontName =""
Название шрифта для часов на панели задач.
Цвет рамки активного окна.
...
... ЕЩЕ НЕ НАПИСАНО (полный список со значениями по умолчанию смотри в файле preferences)
Цвет фона рабочего стола.
DesktopBackgroundImage
Рисунок (.xpm) для фона рабочего стола. Если вы хотите, чтобы icewm игнорировал рисунок/цвет фона рабочего стола, присвойте обоим параметрам DesktopBackgroundColor и DesktopBackgroundImage пустые значения ("").
DesktopBackgroundCenter = 0
Отображать фоновый рисунок рабочего стола в центре и неразмноженным. (присвойте 0 или 1).
Список названий рабочих мест, например:
WorkspaceNames=" 1 ", " 2 ", " 3 ", " 4 "
Путь к icewm/lib директорию.
IconPath
Путь к директорию с иконками. Может быть указано несколько путей, разделенных запятой (UNIX) или точкой с запятой (OS/2).
Программа, запускаемая при двойном щелчке на часах.
MailCommand
Программа, запускаемая при двойном щелчке на иконке почтового ящика.
LockCommand
Программа блокировки экрана.
RunCommand
Программа, запускаемая при выборе в стартовом меню пункта Run.
Marko.Macek@gmx.net