Часто задаваемые вопросы и инструкция по IceWM

Последнее изменение оригинального текста 2020/03/21

Что такое IceWM?

IceWM - это диспетчер окон для системы окон X11.
Он спроектирован, чтобы быть маленьким, быстрым, лёгким и имитировать внешность и поведение Motif, OS/2 и Windows.
Он является весьма настраиваемым: он предоставляет определяемый пользователем вид в относительно едином стиле.

Сейчас, когда вы знаете, что такое IceWM и всё ещё читаете, вы, очевидно, заинтересованы в его использовании. Чтобы использовать программу, вам сначала нужно где-то её взять. Отсюда очевидный вопрос:

Где его взять?

Посмотрите здесь на английском

или здесь на русском.

Под какими операционными системами он работает?

IceWM работает под:

Как его установить из RPM?

Посмотрите repology или pkgs.

Как его скомпилировать из исходников?

Сборку IceWM обеспечивают autoconf и CMake. Посмотрите README или INSTALL-cmakebuild.

Как его сделать диспетчером окон по умолчанию?

Под GNOME вы можете запустить icewm-set-gnomewm, чтобы сделать IceWM Вашим диспетчером окон по умолчанию.

Некоторые менеджеры дисплея проверяют ~/.dmrc:

```

[Desktop]
Session=icewm-session
Language=en_US.utf8

```

Убедитесь, что icewm-session.desktop может быть найден. Используйте locate icewm-session.desktop. Возможно, его нужно будет расположить в /usr/share/xsessions/.

Проверьте /var/lib/AccountsService/users/$USER, если он есть, на предмет вашей сессии по умолчанию. Это может быть что-то вроде:

```

[User]
XSession=icewm-session
SystemAccount=false

```

Ещё одним способом установить это является:

```

$ myid=$(id -u -r) $ gdbus call –system –dest org.freedesktop.Accounts \ –object-path /org/freedesktop/Accounts/User${myid} \ –method org.freedesktop.Accounts.User.SetXSession icewm-session

```

Если вы используете startx для запуска X11, то создайте ~/.xinitrc:

```

#!/bin/bash
icewm-session >~/.xinitrc.log 2>&1

```

Выполните chmod +x ~/.xinitrc. Если вы используете Xdm, то создайте ссылку:
ln ~/.xinitrc ~/.xsession.

Менеджер дисплея WDM проверяет ~/.wmrc. Выполните echo icewm-session >~/.wmrc.

Каждую из команд, запускаемых при старте вашей сессии IceWM поместите в файл startup.

Конфигурирование

Когда вы запустили IceWM, вы можете изменить темы через кнопку Стартового меню в левом нижнем углу. Некоторые параметры можно будет изменить на лету через Меню предпочтений. Не забудьте выбрать Сохранить изменения. Для получения эффекта большинство параметров нуждается в перезапуске icewm через Выход -> Перезапуск IceWM.

При конфигурировании IceWM обычно требуется редактирование текстовых конфигурационных файлов. Посмотрите man-страницы icewm и preferences.

Вы можете настроить IceWM под себя, редактируя следующие конфигурационные файлы:

menu

Файл menu управляет содержимым вашего Стартового меню. Он имеет следующий синтаксис:

```

prog Program Icon app -with -options

```

prog - это ключевое слово, сообщающее IceWM, что это запись о программе. Другими ключевыми словами являются separator для рисования разделителя и

```

menu Xyz folder_icon {
  prog ...
}

```

для открытия нового вложенного меню, названного Xyz. Program - это имя, которое будет показано в меню. Заключите его в кавычки, если вам здесь нужно более одного слова. Icon будет использовано как значок для записи меню, если соответствующее изображение найдётся по IconSearchPath. И наконец, app -with -options - это то, что будет запущено, если пользователь выберет этот пункт меню.

Заметьте, что меню показывает только записи, которые находятся в вашем PATH, IceWM достаточно умён, чтобы пропустить неиспользуемые записи.

Там также есть два продвинутых ключевых слова, runonce и menuprogreload "title" icon_name timeout program_exec.

runonce используется для запуска приложения только однажды - если оно уже работает, оно не запустится в ответ на щелчок. runonce нужны ещё некоторые параметры - см. руководство.
menuprogreload используется для создания динамических меню: timeout - целое число, определяющее минимальный интервал времени (в секундах) между перезагрузками меню. Нулевое значение означает обновление меню каждый раз, когда пользователь щёлкнет по нему.

Что такое модели фокуса?

Чтобы ответить на этот вопрос, хорошей идеей будет сначала взглянуть на четыре общих модели фокуса, которые реализованы в IceWM.

Окно активировано, получило фокус, … означает, что ввод (или нажатия клавиш) сейчас отправляются этому окну.

IceWM реализует следующие режимы фокуса:

  1. по щелчку : для изменения фокуса ввода требуется щёлкнуть по окну левой кнопкой мыши.
  2. липкий : установить фокус ввода можно просто перемещая указатель мыши через окно.
  3. явный : не изменяет фокус или не поднимает окно, если вы не потребуете этого.
  4. строгий : похоже на липкий, но сохраняет фокус на последнем окне, даже если разместится новое приложение.
  5. тихий : как липкий, но без мигания, если что-то захотело фокус.
  6. свое : настраивается через следующие десять параметров в файле preferences: “ClickToFocus”, “FocusOnAppRaise”, “RequestFocusOnAppRaise”, “RaiseOnFocus”, “RaiseOnClickClient”, “FocusChangesWorkspace”, “FocusOnMap”, “FocusOnMapTransient”, “FocusOnMapTransientActive”, “MapInactiveOnTop”

Вкратце:
Модель фокуса управляет тем, что вам нужно сделать, чтобы окно стало активным и принимало то, что вы печатаете на клавиатуре.

Конфигурирование кнопок мыши

Параметры UseRootButtons и ButtonRaiseMask являются так называемыми параметрами битовой маски.

Эта концепция используется, например, chmod, где 4 ставится для доступа на чтение, 2 для доступа на запись и 1 для доступа на выполнение (или смены каталога), и вы можете сложить соответствующие цифры для управления доступом к файлу.

Что касается параметров UseRootButtons и ButtonRaiseMask, 1 ставится для первой кнопки мыши, 2 для второй, и 4 для третьей. Следующий список показывает, какое число ставится для какой комбинации кнопок мыши:

```

---------------------------------
 Значение  Ставится для
---------------------------------
    0      Ни одной из кнопок
    1      Кнопки 1
    2      Кнопки 2
    3      Кнопок 1 и 2
    4      Кнопки 3
    5      Кнопок 1 и 3
    6      Кнопок 2 и 3
    7      Всех трёх кнопок мыши
---------------------------------

```

Любое значение более семи имеет тот же эффект, что и семь.
UseRootButtons управляет, какими кнопками вызывается меню, щёлкнув ими по свободному месту рабочего стола.
ButtonRaiseMask определяет, какими кнопками окно будет поднято наверх, щёлкнув ими по панели заголовка окна.

Привязка меню к кнопкам

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

```

-----------------------------------------
 Имя параметра          Чем управляет
-----------------------------------------
 DesktopWinMenuButton   Меню окна
 DesktopWinListButton   Списком окон
 DesktopMenuButton      Меню приложений
-----------------------------------------

```

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

```

-----------------------------
 Значение  Ставится для
-----------------------------
    0      Ни одной из кнопок
    1      Левой кнопки мыши
    2      Правой кнопки мыши
    3      Средней кнопки мыши
   4-6     Других кнопок
-----------------------------

```

Мониторинг почтовых ящиков?

Нет проблем. Посмотрите mailbox monitoring.

Отключение кнопок Alt?

Чтобы отправлять все комбинации клавиши Alt приложению, Вы можете использовать параметр окна

```

window_class.fullKeys: 1

```

В файле preferences найдите параметр ClientWindowMouseActions и установите его в 0. Это отключит возможность схватить и переместить окно с помощью Alt+mouse для всех окон, поддерживаемых IceWM.

Управление приложениями

Эта секция о том, как вы можете заставить окно появится на отдельном рабочем месте, отобразить их без бордюра или панели заголовка, или положить их выше или ниже других окон. Этого можно достичь, используя winoptions.

Назначить отдельный параметр (значок, слой по умолчанию, рабочее место по умолчанию, и т.д.) заданному приложению или окну приложения можно следующим образом:

Сперва вы должны получить описатель (или дескриптор) WM_CLASS, используя xprop:

```

xprop | grep WM_CLASS

```

в терминале. Вывод xprop для Mozilla Firefox

```

WM_CLASS(STRING) = "Navigator", "Firefox"

```

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

```

имя.класс.параметр: значение
класс.параметр:     значение
имя.параметр:       значение

```

Чтобы назначить значки navigator_*.xpm окну Netscape Navigator, используйте параметр:

```

Navigator.Netscape.icon: navigator

```

Другие параметры работают в соответствии с примерно тем же шаблоном. Список параметров окна вы можете найти на man-странице.

Как удержать окно наверху?

Есть два слегка отличающихся способа сделать это. Воспользуйтесь любым подходящим вам.
Способ номер один: окно навсегда останется сверху любых других окон. Установите следующий параметр окна: name.class.layer: onTop.
Способ номер два: окно садится в прямоугольный участок рабочего стола, где другие окна не будут размещены. Используйте параметр окна doNotCover: name.class.doNotCover: 1.
Кстати, вот так работает панель задач или GNOME panel. Хорошая идея использовать это с gkrellm, Вашим клиентом ICQ, или другими инструментами наблюдения, которые всегда хотелось бы иметь на виду.

Как свернуть окно в значок или развернуть его?

Могут быть программы, которые вы хотите запустить либо свёрнутыми в значок, либо максимально развёрнутыми. Для этого есть паратетры окна: startMinimized, startMaximized, startFullscreen, и т.д.

Как расположить окно на рабочем месте?

Используйте winoptions и определяйте

```

xmms.workspace: 7 Mozilla.workspace: 9

```

Это решение всегда запустит xmms на рабочем месте 7 и Mozilla на рабочем месте 9, учтите, IceWM начинает отсчёт от 0. IceWM переключит рабочее место на назначенное при каждом запуске этих программ.

Или Вы можете использовать icesh:

```

icesh -class xeyes setWorkspace 0

```

Это переместит xeyes на рабочее место 0.

Основные сочетания клавиш

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

```

Alt+Tab = Переключает между открытыми окнами
Alt+F4 = Закрывает окно
Alt+F9 = Сворачивает окно в кнопку на панели задач
Alt+F10 = Разворачивает окно до максимального размера
Alt+F12 = Скручивает окно вверх
Alt+Shift+F10 = Разворачивает окно до максимального размера по вертикали
Ctrl+Alt+стрелка вправо = Меняет рабочее место от 1-12
Ctrl+Alt+стрелка влево = меняет рабочее место от 12-1
Ctrl+Alt+Esc = Открывает список окон
Ctrl+Esc = Открывает меню

```

Как переключить Рабочий стол с помощью клавиатуры

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

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

```

WorkspaceNames="1","2","3","4","5","6","7","8","9","0"

```

Эта настройка имеет результатом десять виртуальных рабочих столов и десять кнопок на вашей панели задач, видимых примерно так:

```

+---+---+---+---+---+---+---+---+---+---+
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |
+---+---+---+---+---+---+---+---+---+---+

```

Если вы поименуете меньше рабочих столов, вы получите меньше, если вы поименуете больше - получите больше.

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

Вы можете представить два способа переключения между рабочими столами:

IceWM умеет оба способа:

Если вы примените Ctrl+Alt+Right на крайнем правом рабочем столе, вы переключитесь на крайний левый рабочий стол. Отсюда Ctrl+Alt+Left перенесёт вас обратно на крайний правый рабочий стол.

Что, если вы имеете более чем десять виртуальных рабочих столов? В этом случае Ctrl+Alt+n будет работать только для первых десяти рабочих столов, а когда переключаемся к левому или правому, всё работает для всех рабочих столов.

Важно: Чтобы переключать рабочие столы при перемещении мыши к краям рабочего стола, используйте параметр:

```

EdgeSwitch=1

```

тогда вы сможете менять рабочие места, двигая Ваш курсор к левому/правому краям вашего экрана.

Как переместить окна на рабочие столы

В предыдущей секции я объяснил, как переключаться между рабочими столами. Если вы ещё не прочитали это, вы должны это сделать, потому что перемещение активного окна на другой рабочий стол работает примерно так же, как переключение на определённый рабочий стол. Всё, что вам надо сделать, это нажать Shift, как и при переключении рабочего стола:

Интерфейс командной строки

Вы должны запустить IceWM с TaskBarDoubleHeight=1, потому что это включит Панель адреса (см. Для чего нужна пустая панель на панели задач?). Прим. переводчика: включить Панель адреса на панели задач одинарной высоты можно, нажав Ctrl+Alt+Пробел. Это особенно полезно, если вам часто приходится обращаться к man-страницам и вы не хотите, чтобы “xman” постоянно висел рядом.

Если вы вводите man perl в Панели адреса и нажимаете Ctrl+Enter, появится окно терминала, отображающее man-страницу Perl. Если вы нажимаете q, не только man-страница не будет далее отображена, но и XTerm будет завершён.

Это просто один пример использования интерфейса командной строки. Вы также можете делать так для выполнения любых других команд. Проблема, которая может возникнуть, состоит в том, что XTerm будет завершён до того, как вы прочитаете вывод команды (он завершается, как только команда выполнена). Терминал может поддерживать ресурс hold или параметр -hold, который будет удерживать терминал открытым, пока он не будет закрыт вами.

Могу я использовать клавиши Win(95)?

Конечно, можете. В .xinitrc

```

clear Mod4
keycode 64 = Alt_L
keycode 113 = Alt_R
keycode 115 = Meta_L
keycode 116 = Meta_R
add Mod4 = Meta_L Meta_R

```

в .Xmodmap вот это:

```

add Mod1 = Alt_L
add Mod2 = Mode_switch
keycode 117 = Menu

```

и в ~/.icewm/preferences

```

Win95Keys=1 # было 0

```

На свободном рабочем месте правая Win95 открывает список рабочих мест.

Теперь также в OpenOffice я могу использовать правую клавишу меню, чтобы открыть меню на панели задач OOo с символами для быстрого доступа, я могу переключиться в желаемое меню без необходимости оставлять клавиатуру, предпочитаемым мной способом работы на ПК.

Как устанавливать темы?

IceWM может быть настроен с использованием разнообразных тем. Вы можете их скачать с https://www.box-look.org/. Чтобы установить темы, просто распакуйте их в ваш каталог ~/.icewm/themes/.

Какие форматы изображений поддерживаются?

IceWM поддерживает JPEG, PNG и XPM. Поддержка SVG является опциональной.

Установка фона рабочего стола

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

```

DesktopBackgroundColor="color"

```

для установки цвета фона или

```

DesktopBackgroundImage="image"

```

для установки рисунка фона. Чтобы удержать IceWM от установки цвета/рисунка фона, просто установите обоим параметрам пустую строку:

```

DesktopBackgroundColor=""
DesktopBackgroundImage=""

```

Советы:

  1. Комментирование DesktopBackgroundColor="color" и DesktopBackgroundImage="image" не имеет желаемого эффекта.

  2. IMHO использование фонового изображения (особенно одного большого) является не очень хорошей идеей. Это сильно замедляет оконную систему X.

Чтобы выбрать, заполнить весь рабочий стол изображением или расположить его посередине, вы можете использовать

```

DesktopBackgroundCenter=""

```

DesktopBackgroundCenter используется, чтобы указать IceWM, как вы хотите расположить обои на экране. Если установить в 1, ваша картинка будет отцентрирована на экране. В результате этого у вас будет только одна картинка посередине рабочего стола. Если установить в 0, ваша картинка заполнит весь экран. Это хорошо, если вы используете узор, который покрывает весь рабочий стол.

Установка формата часов

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

```

man 3 strftime

```

Чтобы установить формат часов, используйте

```

TimeFormat="<format string>"

```

и для формата всплывающей подсказки часов, используйте

```

DateFormat="<format string>"

```

Обычные символы, входящие в строку формата, печатаются без изменения (если возможно, см. ниже). Определители преобразования начинаются с символа процента % и заменяются соответствующими строками.

Важное замечание: Хотя DateFormat и TimeFormat оба поддерживают все описатели формата, последний имеет полную поддержку только если используется с

```

TaskBarClockLeds=0

```

(который по умолчанию равен 1).

Причина этого в том, что не имеется значков для отображения названий месяцев, дней или временных зон. Точнее, есть только значки для

  1. цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
  2. двоеточия, точки, слэша и пробела
  3. A, P и M (для AM и PM)

Описатели формата, которые могут быть только в TimeFormatесли TaskBarClockLeds=0 (в общем или в зависимости от локали) отмечены в следующей таблице как ограниченные. Она показывает замены для всех доступных описателей формата.

Значения в скобках показывают, что различные описатели формата отображают для

YYYY/MM/DD HH:MM:SS TimeZone = 1999/09/04 19:09:22 UTC

на моей машине с аппаратными часами и запущенным Linux временная зона UTC, локаль “C” (т.е. нет интернационализации для всего):

Как добавлять значки?

Значок для приложения может быть определён по названию, имени файла, полному пути или префиксу пути в winoptions. Чтобы найти значок, который определён по названию или имени файла, IceWM смотрит значение параметра IconPath в preferences, который представляет собой разделённый двоеточиями список каталогов. Начальные тильда или не более одной переменной окружения наподобие $HOME в составе пути к любому каталогу раскрываются в действительные значения. Если значок до сих пор не найден, тогда IceWM ищет значки в $ICEWM_PRIVCFG/icons/ (или ~/.config/icewm/icons/, или ~/.icewm/icons/), потом в каталоге icons темы, потом в CFGDIR/icons, потом в LIBDIR/icons. CFGDIR и LIBDIR задаются во время компиляции и могут быть запрошены командой icewm --directories.

Как создавать темы?

Это есть в документации по темам, написанной MJ Ray и дополненной Adam Pribyl.

Что означает LogoutCommand?

Для большинства пользователей, ничего. Команды Logout и Cancel были предназначены для интеграции c GNOME как альтернативные команды, которые могли быть запущены, чтобы пользователи начали выход из системы или прекратили выход. Поскольку GNOME не включил эту фичу, обычно они не используются.

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

Для чего нужна пустая панель на панели задач?

Если вы запускаете IceWM с установленным параметром TaskBarDoubleHeight, на панели задач появляется пустое поле. Это интерфейс командной строки.

В этом поле вы можете вводить команды для запуска программ. Если вы щёлкнете внутри этого поля и введёте xclock, запустится Xclock.

Если вы щёлкнете там и просто нажмёте Ctrl+Enter, будет запущен XTerm.

Если вы введёте не-X команду и нажмёте Ctrl+Enter, эта команда будет выполнена в XTerm.

Как остановить перехват моих комбинаций клавиш?

Что, если вы запускаете приложение и нужно использовать комбинацию клавиш, которую перехватывает IceWM?

Marko предлагает следующий способ:

  1. Включите scroll lock
  2. Нажмите проблемные клавиши
  3. Выключите scroll lock

Он полагает, что это будет работать только если ScrollLock установлен как модификатор.

Здесь показано, как использовать утилиту X11 xmodmap, чтобы установить ScrollLock как модификатор (от Marco Molteni):

```

$ xmodmap -pm

xmodmap:  up to 2 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x6d)
mod1        Alt_L (0x40),  Alt_R (0x71)
mod2        Num_Lock (0x4d)
mod3
mod4        Super_L (0x73),  Super_R (0x74)
mod5

```

```

$ xmodmap -e "add mod3 = Scroll_Lock"

```

Этот вызов xmodmap можно положить в скрипт, который запускает диспетчер окон, ~/.xinit or ~/.xsession, или в startup

Как настроить команду блокировки экрана

Чтобы настроить команду блокировки экрана, добавьте

```

LockCommand="xlock -mode blank"

```

в ваш $HOME/.icewm/preferences и xlock будет запускаться в режиме пустого экрана.

В случае, если вы предпочитаете xscreensaver

```

LockCommand="xscreensaver 2>/dev/null; sleep 1; xscreensaver-command -lock"

```

Как заблокировать экран …

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

… с помощью клавиатуры

В IceWM блокировка экрана очень проста: Если вы нажмёте

```

Ctrl+Alt+Del

```

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

Выделенные буквы подчёркнуты в диалоговом окне. Это значит, что вы можете, например, нажать k, чтобы заблокировать вашу рабочую станцию.

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

… с помощью мыши

Если вы предпочитаете пользоваться мышью, чтобы блокировать экран, вы можете добавить следующий пункт в ваш $HOME/.icewm/toolbar

```

prog    xlock   xlock   xlock

```

Вы можете, конечно, добавить эту строку в ~/.icewm/menu или ~/.icewm/programs, но это не хорошая идея:

Блокировка экрана часто выполняется в спешке и если вы будете искать по меню, это будет увеличивать шанс, что вы не заблокируете вашу машину вовремя.

… используя команду блокировки

Как определить другую команду блокировки описано в секции “Как настроить команду блокировки экрана”

IceWM поддерживает управление сессиями?

Начиная с 1.2.13 IceWM имеет некоторую базовую поддержку управления сессиями, чтобы управлять всеми его частями. Но там, где более сложные окружения рабочего стола, как GNOME, KDE или xfce вступают в игру, IceWM всё ещё является главным образом диспетчером окон… Но, конечно, вы можете всегда запустить ваши избранные приложения после запуска X или логина, используя файлы .xinitrc или .xsession, или использовать IceWM как диспетчер окон вместо диспетчера окон GNOME/KDE по умолчанию.

Могут ли у меня быть значки на рабочем столе?

Уверен, но но не от IceWM. Ещё раз, это работа окружения рабочего стола, но обычно выполняется соответствующими файловыми менеджерами, с тех пор, как они стали понимать MIME-типы, окончания файлов и т.д. Пользователи IceWM обычно используют idesk, dfm, rox, kfm или gmc.

Почему игнорируется мой фоновый рисунок?

Обычно это потому, что использован неправильный формат рисунка. Это может произойти, когда IceWM скомпилирован только с libXpm. С imlib, IceWM умеет читать многие из часто встречающихся форматов изображений, как png, gif, jpeg, вместо простых рисунков xpm с libXpm. Другой причиной может быть, что тема определяет другую картинку или цвет.

Могут ли у меня быть большие значки?

Начиная с IceWM 1.2.14 возможно определить размер значков в IceWM preferences. Там есть четыре подходящих параметра:

```

MenuIconSize=16
SmallIconSize=16
LargeIconSize=32
HugeIconSize=48

```

Это значения по умолчанию, но вы можете изменить их на любые, какие хотите. MenuIconSize определяет размер значков в меню. Три других используются для любых других значков в IceWM. Например, SmallIconSize используются на панели задач, обрамлениях окон приложений и списке окон. LargeIconSize используется в быстром переключении.

Примите к сведению, что когда вы меняете размер SmallIconSize, тогда все вышеописанные части будут иметь значки различного размера, но панель задач и обрамления окон не изменят высоту в соответствии! Также, когда вы назначили размер, который недоступен, тогда размер значков будет изменён - это может причинить некоторые неудобства, в основном когда вы используете значки xpm.

Однако, есть хитрый способ увеличить размер панели задач. Высота панели задач по размеру соответствует размеру кнопки Start. Например, если ваш linux.xpm на панели задач размером 50x32, то ваша панель задач будет высотой 32 пиксела.

Чтобы изменить высоту обрамлений, сделайте тему с более высокими обрамлениями окон.

Как переводить IceWM?

Лучший способ это присоединиться к openSUSE Weblate. Сперва зарегистрируйтесь или здесь, или там, потом улучшайте перевод для вашего языка.

Другая возможность это создать копию icewm.pot и переименовать его в xx.po, где xx обозначает ваш язык. Потом переведите файл, используя любой из инструментов для перевода файлов gettext, напр. kbabel, или отредактируйте вручную.

Если вы хотите проверить свой файл, вы можете добавить этот файл в каталог po исходников IceWM и потом сконфигурируйте IceWM (./configure) и напечатайтеmakeв каталогеpo. Это создаст файл .mo, который вы можете скопировать в каталог локали (напр. /usr/local/share/locale/cs/LC\_MESSAGES), или выполнитьmake install`.

Как использовать Xrandr?

Начиная с некоторой версии IceWM поддерживает расширение X11 Xrandr. Оно очень просто может быть использовано для создания пункта меню на вашей панели инструментов, чтобы менять разрешение дисплея, при условии, что что вы запустили достаточно свежие версии и X11, и IceWM, которые поддерживают xrandr. Вы можете запустить xrandr -q, чтобы посмотреть поддерживаемые разрешения, используя вашу текущую конфигурациию X (максимальное разрешение и глубина цвета). Вы можете отредактировать этот фрагмент меню, проверив, какие разрешения работают и потом положить его в ваш файл toolbar.

```

# Меню панели инструментов IceWM для изменения разрешения дисплея.
# Это требует поддержки xrandr со стороны и X11, и IceWM.
#
# Xrandr считается экспериментальной возможностью, так как ваш экран может
# уйти в чёрный, если у вас есть проблемы с установкой некоторых разрешений.
# Хорошей идеей будет закрыть другие окна перед проверкой.
#
# Проверьте ваши собственные разрешения с xrandr -q и исправьте соответственно.
# Этот пример предполагает, что разрешение по умолчанию 1280x1024.
#


menu Resolution redhat-system-settings {
   prog 1280x1024 1280x1024 xrandr -s 0
   prog 1152x864  1152x864  xrandr -s 2
   prog 1024x768  1024x768  xrandr -s 3
   prog  800x600   800x600  xrandr -s 4
   prog  640x480   640x480  xrandr -s 5
}

```

Redhat-system-settings это растровое изображение, которое я взял из моей Fedora Core 3 box, вы можете, конечно, положить туда любое, какое хотите.

Example: configuration A-Z

This is a sample of possible configurations you could do to have IceWM running with all you need. Following applies for RedHat(9). Placement of files can be bit different.

X window login

To have possibility to switch to IceWM in GDM greeter (after start to runlevel 5 = Xwindow), then you need to do following things:

bash #!/bin/bash exec /etc/X11/xdm/Xsession icewm

bash #!/bin/bash exec /usr/local/bin/icewm-session

IceWM configuration

To configure all of IceWM options go to sections about configuration. Generally all you need to customize IceWM globaly, is to edit /usr/local/share/icewm/preferences etc.

Icons on desktop

Usually people want to have icons on desktop. One of most simple applications that can satisfy this need is idesk (see Tools to find it). Configuration of idesk is almost as easy as configuration of IceWM, but has one disadvantage: idesk does not have in version 0.3.x global configuration file. Therefore each user needs to have proper configuration file in his/her home.

To configure idesk you need to:

table Config FontName: Helvetica FontSize: 9 FontColor: #ffffff PaddingX: 35 PaddingY: 25 Locked: true HighContrast: false Transparency: 50 Shadow: true ShadowColor: #000000 ShadowX: 1 ShadowY: 1 Bold: false end

table Icon Caption: Mozilla Command: mozilla Icon: /usr/share/pixmaps/mozilla-icon.png X: 22 Y: 13 end

bash idesk > /dev/null & # start idesk - desktop icon manager

IceWM ignores my colors

Some users wonder why the colors specified in their preference files seem to have no effect upon the actual appearance of things. The reason is that these settings may be overridden by settings in the theme file.

The theme file can control all of the options controlled by the preferences file, but usually theme authors are decent confine their meddling to superficial aspects of window manager behavior and leave control over most important behaviors to the user.

If this wasn’t the reason: If you are running X in 8-bit mode then it is possible that the specified color simply isn’t available.

You don’t know if X is running in 8-bit mode? Run

xwininfo | grep Depth

in an XTerm and click on the root window (the desktop). If this command displays

Depth: n

you are running X in n-bit mode (n typically is 8, 16, 24 or 32).

Programs are missing from menus

A very annoying problem are programs you added to the menu file but that are missing in the corresponding menus. That isn’t really a bug of IceWM. The point of view of IceWM is that it makes no sense to display a program that is not present.

The crucial point is the meaning of to be present. It does not mean to be installed, but to be found using the present path. Do echo $PATH or which program to find if a program is in PATH.

To fix the problem you have at least three possibilities:

  1. You give the full path and not only the program name itself.
  2. You set the PATH in your .xinitrc, .xsession or .Xclients.
  3. You set the PATH in env.

IceWM maximizes windows over the GNOME panel

This used to be a really annoying problem, but seems to be gone with newer versions of IceWM and GNOME. If it still happens on your machine try to set

Panel.doNotCover: 1

in your winoptions file.

Screen locking doesn’t work

The reason for this is that the standard lock command (xscreensaver-command or xlock) could not be found by IceWM. See “Setting the lock command” for details on setting a different lock command.

Background does not show up

IceWM is divided in few separated parts. One of them is icewmbg. This part takes care of bacground setup. Therefore if you want IceWM to take care of desktop background you have to start icewmbg at IceWM startup. The proper way is to start “icewm-session” in your X startup instead of just icewm. See “Configuration”.

Font settings are ignored

IceWM uses two ways of font handling - corefonts OR fonts provided by xfreetype library.

These fonts can be specified in preferences or theme default.theme.

For X server provided fonts (configure –enable-corefonts option) the definition looks like this:

ActiveButtonFontName = "-artwiz-snap-regular-r-normal-sans-10-*-*-*-*-*-*-*"

For Xft (xfreetype) library (used by default, disable using option –disable-xfreetype), then specification is like this:

ActiveButtonFontNameXft = "Snap:size=10,sans-serif:size=12:bold"

To provide correct fonts to Xft you have to specify them in /etc/fonts/fonts.conf. X server font are either provided by X server itself e.g. /etc/X11/XF86Config - Section “Files”, or by XFS (X Font Server) defined in. /etc/X11/fs/config.

How can I make the title bar of an XTerm span the whole screen when maximized?

Set ConsiderSizeHintsMaximized=0.

How can I disable the Super keys, which open the WindowList or Menu?

Set Win95Keys=0.

How can IceWM load new keybindings from .icewm/keys without a restart?

Do icesh keys.

License

This document is released under the terms of the GNU Library General Public License.

Authors