IceWM
IceWM — менеджер окон для X Window System в Unix-подобных операционных системах. Разработка IceWM началась с нуля в 1997 году, проект написан целиком на C++ и выпущен на условиях лицензии GNU LGPL. Цель проекта — создание рабочей среды с удобным и быстрым интуитивным интерфейсом с широкими возможностями для настройки пользователем. В частности, все функции графического интерфейса доступны при использовании только клавиатуры. В то же время в число задач входила максимальная «лёгкость» IceWM в плане потребляемых ресурсов компьютера — памяти и процессора.
IceWM полностью соответствует i18n и поддерживает работу с русским языком.
https://ice-wm.org/
http://sourceforge.net/projects/icewm
Неофициальный, но поддерживаемый проект
Высокая скорость работы и низкие требования к памяти позволяют успешно использовать этот продукт в решения на базе технологии Терминальный сервер.
Установка
При ручной установке предварительно нужно установить сервер 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
Компиляция
Установка необходимых пакетов:
apt install asciidoctor libxpm-dev
- icewm.sh
#!/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
Запуск
Настройки
Папки:
/usr/share/icewm | Общие настройки, темы и другие файлы |
/etc/X11/icewm | Настройки по умолчанию |
~/.icewm | Пользовательские настройки |
Файлы:
keys
logout
-
-
toolbar
-
winoptions
Иерархическая система меню
По умолчанию меню находится в файле /usr/share/icewm/menu
Также можно создать общее меню в этом файле: /etc/X11/icewm/menu
Для вставки пользовательской части меню можно использовать директиву include
, пример:
- menu
include /home/user/.icewm/menu
startup
Если существует пользовательский файл ~/.icewm/startup
то выполняется он, а не /etc/X11/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
Скрыть TaskBar
Завершение
Этот файл выполняется при выходе из IceWM (завершении работы).
Нужно создать файл:
- /usr/share/icewm/icewm-logout.sh
#!/bin/bash
pcmanfm --desktop-off > /dev/null 2>&1
pkill icewm-session
#pkill -u $(whoami)
Дать право на запуск всем пользователям:
chmod +x /usr/share/icewm/icewm-logout.sh
И указать его в настройках:
- /usr/share/icewm/preferences
LogoutCommand="/usr/share/icewm/icewm-logout.sh"
Шрифты "как в MS Windows"
-
Добавить в файл
/usr/share/icewm/preferences
следующие значения:
- /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"
Выключение и перезагрузка компьютера
Для этого используем возможности программы sudo.
Нужно разрешить пользователю выполнять команду /sbin/shutdown
без ввода пароля:
Выполняем следующую команду:
su -c visudo
Для каждого пользователя вводим:
ИМЯ_ПОЛЬЗОВАТЕЛЯ ALL = (ALL) NOPASSWD:/sbin/shutdown
В файл настроек icewm
нужно добавить:
- /usr/share/icewm/preferences
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
Запуск
Для всех
Для отдельного пользователя
Индикатор раскладки клавиатуры
Примеры использования
Киоск
Набор файлов для режима «киоск»
- menu
## Empty file for kiosk mode
## Пустой файл для режима "киоск"
- programs
## Empty file for kiosk mode
## Пустой файл для режима "киоск"
- preferences
## 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"
Ссылки