====== IceWM ======
IceWM — менеджер окон для [[xwindows:xwindows|X Window System]] в Unix-подобных операционных системах. Разработка IceWM началась с нуля в 1997 году, проект написан целиком на C++ и выпущен на условиях лицензии GNU LGPL. Цель проекта — создание рабочей среды с удобным и быстрым интуитивным интерфейсом с широкими возможностями для настройки пользователем. В частности, все функции графического интерфейса доступны при использовании только клавиатуры. В то же время в число задач входила максимальная «лёгкость» IceWM в плане потребляемых ресурсов компьютера — памяти и процессора.
IceWM полностью соответствует i18n и поддерживает работу с русским языком.
https://ice-wm.org/
http://sourceforge.net/projects/icewm
[[github>bbidulock/icewm|Неофициальный, но поддерживаемый проект]]
Высокая скорость работы и низкие требования к памяти позволяют успешно использовать этот продукт в решения на базе технологии [[tag:terminal_server|Терминальный сервер]].
====== Установка ======
При ручной установке предварительно нужно [[xwindows:xwindows#установить|]] сервер X-Windows.
apt install icewm xorg tango-icon-theme
apt-get install -t jessie-backports icewm
apt-get install xorg tango-icon-theme
apt-get install -t buster-backports icewm xorg tango-icon-theme
====== Компиляция ======
FIXME
Установка необходимых пакетов:
apt install asciidoctor libxpm-dev
#!/bin/bash
cd /tmp
git clone https://github.com/bbidulock/icewm.git
cd icewm
./autogen.sh
./configure --prefix=/usr --sysconfdir=/etc
make
sudo make DESTDIR="$pkgdir" install
====== Запуск ======
[[xwindows:xwindows#updatealternativesxsessionmanager|Выбор дисплейного менеджера по умолчанию]]
FIXME
Запуск вручную:
startx /usr/bin/icewm
#startx /usr/bin/icewm-session
====== Настройки ======
FIXME
Папки:
|''/usr/share/icewm''|Общие настройки, темы и другие файлы|
|''/etc/X11/icewm''|Настройки по умолчанию|
|''~/.icewm''|Пользовательские настройки|
Файлы:
* keys
* logout
* [[#menu|menu]]
* [[#startup|startup]]
* toolbar
* [[#preferences]]
* winoptions
===== Иерархическая система меню =====
Удобно использовать технологию: [[hierarchical_menu_system:hierarchical_menu_system|Иерархическая система меню]], вот пример внешнего вида:
{{:icewm:icewm_hierarchical_menu.png|}}
===== menu =====
По умолчанию меню находится в файле ''/usr/share/icewm/menu''
Также можно создать общее меню в этом файле: ''/etc/X11/icewm/menu''
Для вставки пользовательской части меню можно использовать директиву ''include'', пример:
include /home/user/.icewm/menu
===== startup =====
:!: Если существует пользовательский файл ''~/.icewm/startup'' то выполняется он, а не ''/etc/X11/icewm/startup''
( sleep 2s; xxkb )&
( sleep 2s; volumeicon)&
( sleep 2s; setxkbmap -layout "us,ru" -model "pc105" -option "grp:caps_toggle,grp_led:scroll")&
На файл нужно дать права запуска для всех пользователей:
chmod +x /etc/X11/icewm/startup
===== preferences =====
* ''~/.icewm/preferences''
* ''/usr/share/icewm/preferences''
==== Скрыть TaskBar ====
''ShowTaskBar=0''
===== Завершение =====
Этот файл выполняется при выходе из IceWM (завершении работы).
Нужно создать файл:
#!/bin/bash
pcmanfm --desktop-off > /dev/null 2>&1
pkill icewm-session
#pkill -u $(whoami)
Дать право на запуск всем пользователям:
chmod +x /usr/share/icewm/icewm-logout.sh
И указать его в настройках:
LogoutCommand="/usr/share/icewm/icewm-logout.sh"
===== Шрифты "как в MS Windows" =====
- Выполнить действия описанные в разделе [[xwindows:xwindows#Шрифты "как в MS Windows"|X-Windows System: Шрифты "как в MS Windows"]].
- Добавить в файл ''/usr/share/icewm/preferences'' следующие значения:
TitleFontNameXft="sans-serif:size=10:bold" #Название шрифта панели заголовка.
MenuFontNameXft="sans-serif:size=10" #Название шрифта меню.
StatusFontNameXft="sans-serif:size=12" #Название шрифта отображения статуса.
QuickSwitchFontNameXft="sans-serif:size=12" #Название шрифта для окна Alt+Tab переключателя.
NormalButtonFontNameXft="sans-serif:size=12"
NormalTaskBarFontNameXft="sans-serif:size=12" #Название шрифта для нормального элемента панели задач.
ActiveTaskBarFontNameXft="sans-serif:size=12" #Название шрифта для активного элемента панели задач.
ListBoxFontNameXft="sans-serif:size=14" #Название шрифта списка окон.
ToolTipFontNameXft="sans-serif:size=10" #Название шрифта для подсказок.
ClockFontNameXft="sans-serif:size=11" #Название шрифта для часов на панели задач.
ActiveButtonFontNameXft="sans-serif:size=11:bold"
ToolButtonFontNameXft="sans-serif:size=11"
NormalWorkspaceFontNameXft="sans-serif:size=11"
ActiveWorkspaceFontNameXft="sans-serif:size=11"
MinimizedWindowFontNameXft="sans-serif:size=11"
ApmFontNameXft="monospace:size=11"
InputFontNameXft="monospace:size=11"
LabelFontNameXft="sans-serif:size=11"
===== Выключение и перезагрузка компьютера =====
FIXME
Для этого используем возможности программы [[sudo:sudo|sudo]].
Нужно разрешить пользователю выполнять команду ''/sbin/shutdown'' без ввода пароля:
Выполняем следующую команду:
su -c visudo
Для каждого пользователя вводим:
ИМЯ_ПОЛЬЗОВАТЕЛЯ ALL = (ALL) NOPASSWD:/sbin/shutdown
В файл настроек ''icewm'' нужно добавить:
ShutdownCommand="sudo /sbin/shutdown -h now"
RebootCommand="sudo /sbin/shutdown -r now"
===== Наборы иконок =====
apt-get install tango-icon-theme tangerine-icon-theme gnome-wine-icon-theme
====== Запуск ======
===== Для всех =====
Нужно выполнить настройку через [[debian:alternatives|систему альтернатив в Debian]]
* Для [[debian:alternatives#xwindowmanager|x-window-manager]] нужно выбрать:/usr/bin/icewm
* Для [[debian:alternatives#xsessionmanager|x-session-manager]] нужно выбрать:/usr/bin/icewm-session
===== Для отдельного пользователя =====
exec icewm-session
====== Индикатор раскладки клавиатуры ======
[[xxkb:xxkb#IceWM|XXKB]]
====== Примеры использования ======
Примеры использования в:
* [[pcmanfm:pcmanfm#IceWM|PCManFM]]
* [[spacefm:spacefm#IceWM|SpaceFM]]
{{anchor:kiosk}}
====== Киоск ======
FIXME
Набор файлов для режима "киоск"
## Empty file for kiosk mode
## Пустой файл для режима "киоск"
## Empty file for kiosk mode
## Пустой файл для режима "киоск"
## Preferences for kiosk mode
## Настройки для режима "киоск"
ClickToRaise=0
ClickToFocus=0
FocusOnAppRaise=1
RequestFocusOnAppRaise=1
RaiseOnFocus=1
FocusOnClickClient=1
RaiseOnClickClient=1
RaiseOnClickTitleBar=1
RaiseOnClickButton=1
RaiseOnClickFrame=1
LowerOnClickWhenRaised=0
PassFirstClickToClient=1
FocusChangesWorkspace=0
FocusOnMap=1
FocusOnMapTransient=1
FocusOnMapTransientActive=1
MapInactiveOnTop=1
PointerColormap=1
DontRotateMenuPointer=1
LimitSize=1
LimitPosition=1
LimitByDockLayer=0
ConsiderHBorder=0
ConsiderVBorder=0
ConsiderSizeHintsMaximized=1
CenterMaximizedWindows=0
HideBordersMaximized=0
SizeMaximized=0
ShowMoveSizeStatus=1
ShowWorkspaceStatus=0
MinimizeToDesktop=0
MiniIconsPlaceHorizontal=0 # 0/1
MiniIconsRightToLeft=0
MiniIconsBottomToTop=0 # 0/1
StrongPointerFocus=1
OpaqueMove=1
OpaqueResize=1
ManualPlacement=0
SmartPlacement=1
HideTitleBarWhenMaximized=0 # 0/1
CenterLarge=0 # 0/1
CenterTransientsOnOwner=1
MenuMouseTracking=1
AutoRaise=0
DelayPointerFocus=0
Win95Keys=0
ModSuperIsCtrlAlt=0
UseMouseWheel=1
ShowPopupsAbovePointer=0
ReplayMenuCancelClick=0
QuickSwitch=0
QuickSwitchToMinimized=0
QuickSwitchToHidden=0
QuickSwitchToUrgent=0
QuickSwitchToAllWorkspaces=0
QuickSwitchGroupWorkspaces=0
QuickSwitchAllIcons=0
QuickSwitchTextFirst=0
QuickSwitchSmallWindow=0
QuickSwitchMaxWidth=0
QuickSwitchVertical=1
QuickSwitchHugeIcon=0
QuickSwitchFillSelection=0
GrabRootWindow=1
SnapMove=0
EdgeSwitch=0
HorizontalEdgeSwitch=0
VerticalEdgeSwitch=0
ContinuousEdgeSwitch=0
AutoReloadMenus=1
ArrangeWindowsOnScreenSizeChange=1
ShowTaskBar=0
TaskBarAtTop=0
TaskBarKeepBelow=0
TaskBarAutoHide=1
TaskBarFullscreenAutoShow=0
TaskBarShowClock=0
TaskBarShowAPMStatus=0
TaskBarShowAPMAuto=0
TaskBarShowAPMTime=0
TaskBarShowAPMGraph=0
TaskBarShowMailboxStatus=0
TaskBarMailboxStatusBeepOnNewMail=0
TaskBarMailboxStatusCountMessages=0
TaskBarShowWorkspaces=0
TaskBarShowWindows=0
TaskBarShowShowDesktopButton=0
ShowEllipsis=0
TaskBarShowTray=0
TrayShowAllWindows=0
TaskBarShowTransientWindows=0
TaskBarShowAllWindows=0
TaskBarShowWindowIcons=0
TaskBarShowStartMenu=0
TaskBarShowWindowListMenu=0
TaskBarShowCPUStatus=0
CPUStatusShowRamUsage=0
CPUStatusShowSwapUsage=0
CPUStatusShowAcpiTemp=0
CPUStatusShowCpuFreq=0
TaskBarShowMEMStatus=0
TaskBarShowNetStatus=0
TaskBarShowCollapseButton=0
TaskBarDoubleHeight=0
# Place workspace pager on left, not right
# TaskBarWorkspacesLeft=1 # 0/1
# Show a mini desktop preview on each workspace button
# PagerShowPreview=0 # 0/1
# Draw window icons inside large enough preview windows on pager (if PagerShowPreview=1)
# PagerShowWindowIcons=1 # 0/1
# Draw even minimized windows as unfilled rectangles (if PagerShowPreview=1)
# PagerShowMinimized=1 # 0/1
# Draw border around workspace buttons (if PagerShowPreview=1)
# PagerShowBorders=1 # 0/1
# Show number of workspace on workspace button (if PagerShowPreview=1)
# PagerShowNumbers=1 # 0/1
# Execute taskbar applet commands (like MailCommand, ClockCommand, ...) on single click
# TaskBarLaunchOnSingleClick=1 # 0/1
# Allow mouse actions on client windows (buggy with some programs)
# ClientWindowMouseActions=1 # 0/1
ShowProgramsMenu=0
ShowSettingsMenu=0
ShowFocusModeMenu=0
ShowThemesMenu=0
ShowLogoutMenu=0
ShowHelp=0 # 0/1
ShowLogoutSubMenu=0
ShowAbout=0
ShowRun=0
ShowWindowList=0
AllowFullscreen=1
FullscreenUseAllMonitors=0
EnableAddressBar=0
ShowAddressBar=0
MultiByte=1
ConfirmLogout=1 # 0/1
# Don't cut client windows by shapes set trough frame corner pixmap
# ShapesProtectClientWindow=1 # 0/1
# Use double buffering when redrawing the display
# DoubleBuffer=1 # 0/1
# Disable use of new XRANDR API for dual head (nvidia workaround)
# XRRDisable=0 # 0/1
# Delay fuzziness, to allow merging of multiple timer timeouts into one (notebook power saving)
# DelayFuzziness=10 # [0-100]
# Activate workaround for Java7 Swing/AWT focus issue
# ActivateJava7FocusHack=0 # 0/1
# Pointer motion distance before click gets interpreted as drag
# ClickMotionDistance=4 # [0-32]
# Delay before click gets interpreted as drag
# ClickMotionDelay=200 # [0-2000]
# Multiple click time
# MultiClickTime=400 # [0-5000]
# Delay before activating menu items
# MenuActivateDelay=40 # [0-5000]
# Delay before activating menu submenus
# SubmenuMenuActivateDelay=300 # [0-5000]
# Maximal width of popup menus, 2/3 of the screen's width if set to zero
# MenuMaximalWidth=0 # [0-16384]
# Delay before tooltip window is displayed
# ToolTipDelay=1000 # [0-5000]
# Time before tooltip window is hidden (0 means never
# ToolTipTime=0 # [0-60000]
# Delay before task bar is hidden
# AutoHideDelay=300 # [0-5000]
# Delay before task bar is shown
# AutoShowDelay=500 # [0-5000]
# Delay before windows are auto raised
# AutoRaiseDelay=400 # [0-5000]
# Resistance in pixels when trying to move windows off the screen (10000 = infinite)
# EdgeResistance=32 # [0-10000]
# Delay for pointer focus switching
# PointerFocusDelay=200 # [0-1000]
# Distance in pixels before windows snap together
# SnapDistance=8 # [0-64]
# Screen edge workspace switching delay
# EdgeSwitchDelay=600 # [0-5000]
# Inital scroll bar autoscroll delay
# ScrollBarStartDelay=500 # [0-5000]
# Scroll bar autoscroll delay
# ScrollBarDelay=30 # [0-5000]
# Auto scroll start delay
# AutoScrollStartDelay=500 # [0-5000]
# Auto scroll delay
# AutoScrollDelay=60 # [0-5000]
# Time before workspace status window is hidden
# WorkspaceStatusTime=2500 # [0-2500]
# Bitmask of root window button click to use in window manager
# UseRootButtons=255 # [0-255]
# Bitmask of buttons that raise the window when pressed
# ButtonRaiseMask=1 # [0-255]
# Desktop mouse-button click to show the window list menu
# DesktopWinMenuButton=0 # [0-20]
# Desktop mouse-button click to show the window list
# DesktopWinListButton=2 # [0-20]
# Desktop mouse-button click to show the root menu
# DesktopMenuButton=3 # [0-20]
# TitleBar mouse-button double click to maximize the window
# TitleBarMaximizeButton=1 # [0-5]
# TitleBar mouse-button double click to rollup the window
# TitleBarRollupButton=2 # [0-5]
# Preselect to Cancel (0) or the OK (1) button in message boxes
# MsgBoxDefaultAction=0 # [0-1]
# Delay between new-mail checks. (seconds)
# MailCheckDelay=30 # [0-86400]
# Delay between CPU Monitor samples in ms
# TaskBarCPUDelay=500 # [10-3600000]
# Width of CPU Monitor
# TaskBarCPUSamples=20 # [2-1000]
# Width of Memory Monitor
# TaskBarMEMSamples=20 # [2-1000]
# Delay between Memory Monitor samples in ms
# TaskBarMEMDelay=500 # [10-3600000]
# Width of Net Monitor
# TaskBarNetSamples=20 # [2-1000]
# Delay between Net Monitor samples in ms
# TaskBarNetDelay=500 # [10-3600000]
# default number of tasks in taskbar
# TaskbarButtonWidthDivisor=3 # [1-25]
# Width of APM Monitor
# TaskBarApmGraphWidth=10 # [1-1000]
# Primary screen for xinerama (taskbar, ...)
# XineramaPrimaryScreen=0 # [0-63]
# Number of seconds the taskbar app will blink when requesting focus (0 = forever)
# FocusRequestFlashTime=0 # [0-86400]
# Taskbar blink interval (ms) when requesting focus (0 = blinking disabled)
# FocusRequestFlashInterval=250 # [0-30000]
# Minimal number of themes after which the Themes menu becomes nested (0=disabled)
# NestedThemeMenuMinNumber=15 # [0-1234]
# Delay between power status updates (seconds)
# BatteryPollingPeriod=10 # [2-3600]
NetWorkAreaBehaviour=0
# Icon search path (colon separated)
# IconPath="/usr/share/icons:/usr/share/pixmaps"
MailBoxPath=""
MailCommand=""
MailClassHint=""
NewMailCommand=""
LockCommand="""
ClockCommand =""
ClockClassHint=""
RunCommand=""
OpenCommand=""
TerminalCommand=""
LogoutCommand=""
LogoutCancelCommand=""
# ShutdownCommand="/bin/sh -c "{ test -e /run/systemd/system && systemctl poweroff; } || sudo -n /sbin/halt""
# RebootCommand="/bin/sh -c "{ test -e /run/systemd/system && systemctl reboot; } || sudo -n /sbin/reboot""
CPUStatusCommand=""
CPUStatusClassHint=""
NetStatusCommand=""
NetStatusClassHint=""
AddressBarCommand=""
NetworkStatusDevice=""
TimeFormat=""
TimeFormatAlt=""
DateFormat=""
XRRPrimaryScreenName=""
AcpiIgnoreBatteries=""
MouseWinMove=""
MouseWinSize=""
MouseWinRaise=""
KeyWinRaise=""
KeyWinOccupyAll=""
KeyWinLower=""
KeyWinClose=""
KeyWinRestore=""
KeyWinPrev=""
KeyWinNext=""
KeyWinMove=""
KeyWinSize=""
KeyWinMinimize=""
KeyWinMaximize=""
KeyWinMaximizeVert=""
KeyWinMaximizeHoriz=""
KeyWinFullscreen=""
KeyWinHide=""
KeyWinRollup=""
KeyWinMenu=""
KeyWinArrangeN=""
KeyWinArrangeNE=""
KeyWinArrangeE=""
KeyWinArrangeSE=""
KeyWinArrangeS=""
KeyWinArrangeSW=""
KeyWinArrangeW=""
KeyWinArrangeNW=""
KeyWinArrangeC=""
KeySysSwitchNext=""
KeySysSwitchLast=""
KeySysWinNext=""
KeySysWinPrev=""
KeySysWinMenu=""
KeySysDialog=""
KeySysMenu=""
KeySysWindowList=""
KeySysWinListMenu=""
KeySysAddressBar=""
KeySysWorkspacePrev=""
KeySysWorkspaceNext=""
KeySysWorkspaceLast=""
KeySysWorkspacePrevTakeWin=""
KeySysWorkspaceNextTakeWin=""
KeySysWorkspaceLastTakeWin=""
KeySysWorkspace1=""
KeySysWorkspace2=""
KeySysWorkspace3=""
KeySysWorkspace4=""
KeySysWorkspace5=""
KeySysWorkspace6=""
KeySysWorkspace7=""
KeySysWorkspace8=""
KeySysWorkspace9=""
KeySysWorkspace10=""
KeySysWorkspace11=""
KeySysWorkspace12=""
KeySysWorkspace1TakeWin=""
KeySysWorkspace2TakeWin=""
KeySysWorkspace3TakeWin=""
KeySysWorkspace4TakeWin=""
KeySysWorkspace5TakeWin=""
KeySysWorkspace6TakeWin=""
KeySysWorkspace7TakeWin=""
KeySysWorkspace8TakeWin=""
KeySysWorkspace9TakeWin=""
KeySysWorkspace10TakeWin=""
KeySysWorkspace11TakeWin=""
KeySysWorkspace12TakeWin=""
KeySysTileVertical=""
KeySysTileHorizontal=""
KeySysCascade=""
KeySysArrange=""
KeySysArrangeIcons=""
KeySysMinimizeAll=""
KeySysHideAll=""
KeySysUndoArrange=""
KeySysShowDesktop=""
KeySysCollapseTaskBar=""
WorkspaceNames=" "
DesktopBackgroundCenter=0
SupportSemitransparency=1
DesktopBackgroundScaled=0
DesktopBackgroundColor=""
DesktopBackgroundImage=""
DesktopTransparencyColor=""
DesktopTransparencyImage=""
TitleFontNameXft="sans-serif:size=10:bold"
MenuFontNameXft="sans-serif:size=10"
StatusFontNameXft="sans-serif:size=12"
QuickSwitchFontNameXft="sans-serif:size=12"
NormalButtonFontNameXft="sans-serif:size=12"
NormalTaskBarFontNameXft="sans-serif:size=12"
ActiveTaskBarFontNameXft="sans-serif:size=12"
ListBoxFontNameXft="sans-serif:size=14"
ToolTipFontNameXft="sans-serif:size=10"
ClockFontNameXft="sans-serif:size=11"
ActiveButtonFontNameXft="sans-serif:size=11:bold"
ToolButtonFontNameXft="sans-serif:size=11"
NormalWorkspaceFontNameXft="sans-serif:size=11"
ActiveWorkspaceFontNameXft="sans-serif:size=11"
MinimizedWindowFontNameXft="sans-serif:size=11"
ApmFontNameXft="monospace:size=11"
InputFontNameXft="monospace:size=11"
LabelFontNameXft="sans-serif:size=11"
====== Ссылки ======
[[wpru>IceWM]]
[[http://www.opennet.ru/docs/RUS/icewm/|IceWM Документация на русском]]
[[http://www.icewm.org/FAQ/IceWM-FAQ.html#toc11|Tools for IceWM]]
[[http://www.opennet.ru/prog/info/39.shtml|Icewm ссылки]]
[[http://vlsu.blogspot.ru/2011/07/icewm.html|Оконный менеджер IceWM]]
[[http://www.pcweek.ru/foss/article/detail.php?ID=110882|Изучаем Linux: IceWM]]
[[http://habrahabr.ru/sandbox/46236/|IceWM — берём в руки напильник]]
[[http://box-look.org/index.php?xcontentmode=7311|IceWM Themes]]
[[http://forums.fedoraforum.org/archive/index.php/t-282433.html|fedoraforum.org: IceWM install and setup guide. Custom logout script]]
[[https://kmandla.wordpress.com/projects/lookalike-windows-xp-classic/|Lookalike Windows XP Classic]]
{{tag>Linux Debian X-Windows}}