ICEWM(1)
๐ธ NAME ๐ธ
okay so bestie, gather round โ icewm is a lightweight X11 window manager ๐
that's literally the whole vibe. tiny, fast, iconic.
โจ SYNOPSIS โจ
icewm [OPTIONS]
๐ DESCRIPTION ๐
icewm is a small and fast window manager for the X11 window system โ like, small small, but it absolutely ate. ๐ซถ The best way to start it is through icewm-session(1), which also starts icewmbg(1) for you. main character energy, honestly.
icewm is what the girlies call re-parenting โ the way that it draws frames around application windows ๐ญ. You drag that frame with the mouse to move or resize a window. that's it. that's the move.
And because windows can overlap each other, icewm is also a stacking window manager. Many windows may exist at once, some hidden behind others. lowkey chaotic but it works ๐.
It supports a configurable number of virtual desktops โ these are called workspaces โจ. Related windows get grouped onto a dedicated workspace. By switching between workspaces, the user can attend to different tasks while keeping oversight. This is supported by a task bar and a pager. no cap, it's giving productivity queen ๐.
The installation comes with several themes ๐. Choose a theme via a menu. And you can install extra themes automatically with the --install option. slay.
icewm is compliant with the ICCCM and EWMH window manager specifications. it read the syllabus, it did the reading, it passed ๐
.
๐ฆ PROGRAMS ๐ฆ
The icewm package includes several programs, and they're all kind of a squad:
icewm(1)โ The actual window manager. It positions application windows on screen and decorates them with borders. It gives input focus to the current active application.icewmsupports different focus modes, which are explained below. It draws a small task bar at the bottom of the screen, that gives easy access to programs, to virtual desktops, to active applications, and to a small set of monitoring applets. the moment she walked in etc ๐icewmbg(1)โ The background setting application. It can assign plain background color or images in different formats to the X background. Each workspace can have its own background. It supports semitransparency. Semitransparent background image and colour can be configured. When the background image has changed thenicewmbg(1)can be notified to update the background. Multi-head monitor setups are fully supported. See theicewmbg(1). aesthetic goals fr ๐icewm-session(1)โicewm-session(1)is the preferred program to start the IceWM system. It first loads additional environment variables from the optionalenvfile. Then it startsicewmbg(1)andicewm. It also runs the startup script and implements basic session management. On termination the shutdown script will be run first, thenicewm-session(1)will terminateicewmandicewmbg(1).icewm-session(1)will also start the optionalicesound(1)if you give it the--soundoption. Seeicewm-session(1). she's the responsible friend ๐icesh(1)โ A powerful tool to control window properties and to interact with the window manager. It is typically used in shell scripts. Seeicesh(1). scripting girlie's bestie ๐ซถicehelp(1)โ A small document browser that is used byicewmto display the 'IceWM manual' and some man pages.icewmhint(1)โ A utility for passing IceWM-specific window options toicewm. The options are used to configure the first application that is started subsequently. Seeicewmhint(1).icesound(1)โ Plays audio files on GUI events that are raised byicewm. It supports ALSA, AO and OSS. See theicesound(1)man page. sound effects unlocked ๐ฅicewm-menu-fdo(1)โ Generate anicewmmenu with executable desktop applications according to XDG specifications. See theicewm-menu-fdo(1)man page.icewm-set-gnomewm(1)โ Configures GNOME to start IceWM instead of its own WM. respectfully, GNOME is getting replaced ๐
๐ OPTIONS ๐
โญ COMMON OPTIONS โญ
Each of the IceWM executables supports the following options โ universal icons, every one of them:
-c,--config=FILEโ Use FILE as the source of configuration options. By defaulticewmlooks for a file namedpreferences. This is a readable text file that can be modified with the help of a text editor. ๐-t,--theme=NAMEโ Use NAME as the name of theicewmtheme to use. A theme defines the look and feel oficewm, like colors, fonts and buttons. the outfit change ๐-d,--display=DISPLAYโ Connect to the X11 server on DISPLAY. By default the environment variable"DISPLAY"is used.-o,--output=FILEโ Redirect all output to FILE. A leading tilde or environment variable is expanded.--syncโ This option specifies to use a slower synchronous communication mode with the X11 server. This is irrelevant for normal use. ngl bestie you will not need this ๐-h,--helpโ Gives a complete list of all the available command-line options with some very brief explanation.-V,--versionโ Shows the software release version for this program.
๐ฅ ICEWM OPTIONS ๐ฅ
The icewm program supports some additional options, and these are the extra-spicy ones:
-a,--alphaโ Use a 32-bit visual for translucency. This can also be set in the preferences file as"Alpha=1". see-through era โจ--replaceโ Instructsicewmto replace an existing window manager. Provided that the window manager being replaced is ICCCM 2.0 compliant, once it notices that it is to be replaced it will cease operations and typically stop execution. This allowsicewmto establish itself as the only active window manager. there can only be one ๐-r,--restartโ Tellicewmto restart itself. This reloads the configuration from file. If no window manager is active, then it starts one. glow-up via reload ๐-s,--splash=IMAGEโ Briefly show IMAGE on startup in the center of the screen. This can also be set in the preferences file asSplash="image.jpg". a little entrance moment ๐--configuredโ Shows a list of configuration options that were enabled whenicewmwas compiled from source code. This can be helpful if one suspects some functionality may be missing.--directoriesโ Gives a list of directories whereicewmwill look for configuration data. This list is printed in the actual order in whichicewmuses it to search for configuration files.-l,--list-themesโicewmwill search all the configuration directories for theme files and print a list of all found themes. window shopping ๐๏ธ-i,--install=THEMEโ Install THEME fromicewm-extraand exit. When THEME islist, print a listing of available themes to install. This option requires the presence of thelzip,tarandwgetorcurlcommands. (yes, all of them, no skipping ๐ญ)-p,--postpreferencesโ This gives a long list of all the internalicewmoptions with their actual values aftericewmhas processed all of the configuration and theme files. In some advanced scenarios this can be helpful to inspect which configuration was chosen or whether option formatting was correct. detective mode ๐--rewrite-preferencesโ Overwrite an existingpreferencesfile with anicewmdefault preferences, but preserve all modifications insofar they deviate from the defaults. she respects your edits ๐ซถ--extensionsโ Give a list of the current X extensions, their versions and status.--trace=conf,font,icon,prog,systrayโ Enable tracing of the paths that are used to load configuration, fonts, icons, executed programs, and/or system tray applets. follow the breadcrumbs ๐
๐ง USAGE ๐ง
๐ TASKBAR ๐
On startup icewm launches the task bar at the bottom of the screen. The task bar consists from left to right of the following components โ a whole lineup, and every one of them serves ๐
:
- The Menu button in the lower left corner gives access to the
icewmroot menu. This menu has sub-menus to start applications, to controlicewmsettings, and theicewmLogout menu. the origin of everything โจ - The Show Desktop button unmaps all application windows to fully uncover the desktop. clean slate energy ๐งน
- The Window List Menu button gives access to a menu with a list of active windows for the current workspace and a list of workspaces with sub-menus for their active application windows.
- The Toolbar is a list of icons for applications that are defined in the
toolbarconfiguration file. - The Workspace Pane shows one button for each workspace. The current workspace is indicated by a pressed button. Clicking another workspace switches to that workspace. Press left mouse, then the Shift key, then release the left mouse, takes the current window to that workspace. Press left, then Alt, then release left, moves only the focused window to other workspace, without changing the current workspace. mouse girlies, this one's for you ๐ฑ๏ธ
The workspaces are defined in the preferences file. To change a name for only this session, double-click, edit the name and hit Enter. When "PagerShowPreview" is turned on, a small graphical window summary for each workspace is shown. They support drag-and-drop: dragging a Firefox tab to a workspace button changes the current workspace. Then releasing it moves that tab to a new window in that workspace. drag and drop ate, no crumbs ๐ญ๐ฅ
- The Task Pane consists of a list of wide buttons for each application that is running on the current workspace, or all workspaces if
"TaskBarShowAllWindows=1". Each task button shows the application icon and the application title. The active application is indicated by a pressed button. This is the application that has input focus. Clicking another button activates that application: it is brought to the foreground and receives input focus. Clicking the button of an active application minimizes it. To minimize an inactive application, click its button while"Ctrl"is down.
The window buttons can be dragged with the left mouse button to rearrange their order. A window can be closed with "Alt" + middle button, lowered with "Ctrl" + middle button, or brought to the current workspace with "Shift" + middle button when "TaskBarShowAllWindows=1". mouse shortcuts stay winning ๐
If there are not many application buttons then a stretch of plain task bar is visible. Clicking on it with the right mouse button gives the task bar menu. Even with a full task pane, this menu can be usually accessed by right-clicking the bottom right corner of the taskbar. sneaky little corner ๐
- The Tray Applet shows system tray objects.
- The APM Applet shows battery power status. ๐
- The Net Applet shows network activity. Network devices to monitor are given by the
"NetworkStatusDevice"option. ๐ - The Memory Applet monitors memory usage.
- The CPU Applet monitors processor utilization.
- The Mailbox Applet monitors mailbox status changes. See the section MAILBOX MONITORING below. ๐ฌ
- The Clock Applet shows the current time and date. It is configured by the
"TimeFormat"option. โฐ - The Task Bar Collapse button collapses the task bar and hides it.
okay important caveat bestie ๐ โ not allicewmapplets may show up on the task bar. They must have been enabled during configuration of theicewmsoftware. Their appearance is also controlled by options in thepreferencesfile. so if something's missing, it's not you, it's the build ๐
โจ INPUT FOCUS โจ
Okay bestie, so of all the visible windows, only one can be the active window. Thatโs the one with input focus โ the primary receiver of keyboard and mouse events, which means itโs the window you can actually interact with and the application that created it. A primary task of a window manager is letting you switch input focus between different windows. The primary means to do this is the mouse pointer: move the pointer over the screen to another window, and perhaps also click on a window, and input focus can be directed. ๐
The FocusMode option controls the way icewm gives input focus to applications. It is initialized by the focus_mode configuration file. The focus mode is set via the Focus menu. icewm supports six focus models:
- Click-to-focus โ The default focus mode. In this mode changing input focus requires to click a window with the left mouse button. The window is raised if needed. When an application requests focus its task pane button flashes. This gives the option to honor this request or to ignore it. When a new application window appears it automatically receives focus. Also when a hidden application raises to the front it receives focus.
- Sloppy-mouse-focus โ Sets input focus merely by moving the mouse pointer over a window. It is called sloppy, because if the mouse then leaves the window and moves to the desktop background the input focus remains with the last active window. When a window receives focus it is raised. When an application requests focus its task pane button flashes. A new application or an application that raises to the front automatically receives focus.
- Explicit-focus โ Focus is even more user-controlled than Click-to-focus. When a window receives focus it is not raised by default, unless the frame border is clicked. No flashing occurs when an application requests focus. When a new application window appears it does not receive focus. Only by explicit clicking on a window is focus directed.
- Strict-mouse-focus โ Like Sloppy but focus remains with the last window. New applications donโt receive focus and are mapped behind other windows. When an application raises to the front it still does not get focus.
- Quiet-sloppy-focus โ Like Sloppy but no disturbing flashing occurs on the task bar when an application requests focus.
- Custom-mode โ A focus mode that is defined by the following ten options:
ClickToFocus,FocusOnAppRaise,RequestFocusOnAppRaise,RaiseOnFocus,RaiseOnClickClient,FocusChangesWorkspace,FocusOnMap,FocusOnMapTransient,FocusOnMapTransientActive,MapInactiveOnTop.
All non-Custom focus modes override these ten options. ๐ซถ
Apart from the mouse, icewm supports changing input focus in two ways by keyboard. By pressing Alt+Esc or Alt+Shift+Esc, input focus is immediately changed to the next or previous window, which will be raised to make it fully visible. The other method involves the quick switch.
๐ฆ QUICK SWITCH ๐ฆ
The QuickSwitch is a means to quickly and interactively change the input focus to another window. It is activated by pressing the Alt+Tab or Alt+Shift+Tab key combination. A window pops up in the centre of the screen with a list of windows to choose from. A narrow band indicates a selection: the candidate window that will be activated to receive input focus when the Alt key is released. โจ
The selection can be changed by repeatedly pressing the Tab key, while keeping the Alt key down. If a Shift key is also down, the direction of traversal is reversed. Or use the scroll wheel of the mouse. Or use one of the digit keys to select the corresponding window from the list. By pressing the first letter of the application class name, the next such application is selected. All navigation keys are also supported.
To make a selected window the active window, just release the Alt key, or hit the Return key, or click on it. To cancel the QuickSwitch, press Escape or click outside of the QuickSwitch window.
A selected window can be closed by Delete, Alt+F4, or the middle mouse button. The right mouse button opens the system menu for the selected window. While the QuickSwitch window is up, one can still change workspace with the usual workspace hotkeys.
The QuickSwitch has three distinct modes: vertical, horizontal and preview. The window list can include all windows or be limited to the current workspace. There is an option to raise the selected candidate. See the many preferences available for the QuickSwitch. ๐
The preview mode shows a small preview window for every application window that has been shown earlier by icewm. When the preview quick switch is active, this preview is continuously updated. This mode works best with a desktop background manager that updates the "_XROOTPMAP_ID" property on the root window, such as icewmbg(1), nitrogen(1), hsetroot(1) or feh(1).
๐ WINDOW PLACEMENT ๐
A second important task of a window manager is to place new windows on the screen. By default icewm chooses a placement with minimal overlap, but this is determined by the SmartPlacement option in the preferences file. If SmartPlacement is turned off then windows are placed in sequence from left to right and top to bottom. One can also turn on ManualPlacement. Then new windows appear initially in the top left corner and the mouse cursor changes into a fist. By moving the fist cursor to a suitable location and clicking the new window will appear at the mouse click location. ๐ฏ
๐ WINDOW LAYERS ๐
Windows can overlap. Which window appears on top is determined by three features. Newer windows appear over older windows. By clicking on a window it is raised to the top. But both are overruled by the window layer. Windows can be placed in different layers via the Layers menu. Click with the right mouse button on the window frame and select Layer. From there choose one of seven window layers. These are ordered from higher to lower. Windows in higher layers appear over windows in lower layers.
There are 16 layers in total, but most are seldom or never used. They are numbered from zero for the lowest layer to fifteen for the topmost. Their names with their layer number are: Desktop (0), Below (2), Normal (4), OnTop (6), Dock (8), AboveDock (10), Menu (12), Fullscreen (14) and AboveAll (15). By default every window appears in the Normal layer. Then Below and OnTop are used frequently to position windows below or above most others. Icewm menus appear in the Menu layer and the Fullscreen layer is reserved for windows in the fullscreen mode. The default layer for each application can be set with a winoption.
Windows placed in the Dock layer can be set to be always visible by setting the LimitByDockLayer preference to 1. Then other windows are preferably not placed over such windows, unless they have explicit positioning information to do so. Maximized windows also donโt overlap with these DockLayer windows. The DoNotCover winoption is similar. ๐
๐ DOCKED APPLICATIONS ๐
Icewm has native support for Window Maker dockapps. It has a Dock container called DockApps, which appears automatically when dockapps are started. The position and layer of this container are controlled by the DockApps preference. It is a space separated list of keywords. The keywords right, left, center, down, high control the position, while above, dock, ontop, normal, below, desktop set the layer. When DockApps is set to the empty string, support for dockapps is disabled. The dockapps in the container can be controlled using the mouse when the Ctrl key is pressed down. Drag with the left mouse button, close with the middle mouse button, select a menu with the right mouse button and rotate with the scroll wheel. ๐ฑ๏ธ
If maximizing a window should not overlap the DockApps container, put it in the dock layer and set the preference LimitByDockLayer=1.
๐ง TABBED WINDOWS ๐ง
A window frame may contain multiple client windows. Only one client can be visible, while the others are hidden. This is called tabbing. This can be helpful to reduce the number of visible windows. To create a tab, drag the title bar with the middle mouse button, while holding down a shift key, onto the title bar of another frame. The two title bars will start to flash to indicate that they can merge. Release the mouse button to merge the client of the upper window to the lower frame. Now the lower frame will have multiple clients, called tabs. The title bar will show a vertical bar with triple dots to indicate this. To change the current tab either:
- Click on the triple dots next to the vertical bar.
- Use
"KeyWinNext=Alt+F6"to select the next tab. - Use
"KeyWinPrev=Alt+Shift+F6"for the previous tab. - Use the QuickSwitch.
- Use the window list window.
- Use a submenu in the window menu.
To change the mouse binding for creating tabs, modify MouseWinTabbing="Shift+Pointer_Button2". Another useful setting is MouseWinTabbing="Pointer_Button1".
"Alt+F4" closes all tabs. To close just the active tab add to "keys":
key "Ctrl+Shift+F4" icesh -f close
To move the active tab to its own window frame by key, add to "keys":
key "Alt+u" icesh -f untab
To open all chrome windows in the same frame add this to "winoptions":
google-chrome.frame: chrome
๐ WORKSPACES ๐
icewm supports multiple virtual desktops called workspaces. A workspace is like a screen where a subset of all application windows are mapped. Thanks to multiple workspaces we can more easily manage a large number of applications. The number of workspaces and their names are configurable in the preferences file through the WorkspaceNames option. By default four workspaces are created with the names 1, 2, 3 and 4 thus:
WorkspaceNames=" 1 ", " 2 ", " 3 ", " 4 "
This syntax is typical for icewm options that receive multiple values. It is a list of comma-separated values each of which can be quoted.
The workspaces are visible on the toolbar. One can switch to a different workspace by pressing the workspace button in the toolbar, but after becoming familiar with the โkeyboard shortcutsโ below one will want to use a hotkey to choose a workspace. If the EdgeSwitch options is enabled in the preferences file (with sub-options HorizontalEdgeSwitch and VerticalEdgeSwitch) then one can move to the next or previous workspace by moving the mouse to the edge of the screen. The ContinuousEdgeSwitch option enables continuous movement to subsequent workspaces. The EdgeSwitchDelay option says how long to wait before a change of workspace occurs. ๐
So to move an app window to a different workspace you can just hit a keyboard shortcut โ iconic. Another option is picking the Move To submenu in the window menu of that window's frame. Two paths, both valid, choose your fighter ๐
๐ซถ DRAG AND DROP ๐ซถ
The task bar is fully drag-and-drop literate, no cap. While a drag is in progress:
- you can activate the destination window by hovering the drag icon over that window's task button โจ
- alternatively, you can change the current workspace by hovering the drag icon over the workspace button you want ๐ฆ
- and when edge switching is enabled, you can also change the current workspace by bringing the drag icon all the way to the screen edge ๐
๐ ADDRESS BAR ๐
The task bar has a lil command-line prompt called the address bar, but only if EnableAddressBar=1. It's always shown when ShowAddressBar=1 โ otherwise you summon it with KeySysAddressBar="Alt+Ctrl+space". Type a shell command in there and:
- Enter โ it gets executed by
AddressBarCommand="/bin/sh"โก - Ctrl+Enter โ same command, but run in a new terminal as given by
TerminalCommand๐ฅ๏ธ - Escape โ nope, cancels editing the address bar command ๐
Commands run relative to the working directory of icewm. You can see it with "pwd". Change it with "cd":
- no argument โ
cddefaults to the home directory ๐ - one argument โ the directory changes to it, and the argument gets expanded when it starts with a dollar or tilde
- argument equal to
"-"โ reverts to the previous directory ๐
The address bar keeps a history you can walk with Up and Down. That history is saved in a file called ahistory in your icewm directory and restored when icewm starts. Obsessed with the persistence tbh ๐พ
Completion is supported using Tab or Ctrl+I. The leading command is completed from directories in your PATH, while file arguments are expanded from the location in the file system. Usernames and environment variables get expanded too โ for example, "echo $TMP" and Tab may expand to "echo $TMPDIR", and "echo ~ro" and Tab may expand to "echo ~root" ๐ง
The address bar implements cut/copy/paste and these editing operations โ screenshot this, bestie:
Ctrl+aโ select allCtrl+backslashโ deselect allCtrl+uโ delete selected or to line startCtrl+vโ paste selectedCtrl+wโ delete selected or previous wordCtrl+xโ cut selectionCtrl+cโ copy selectionCtrl+iโ completionCtrl+Leftโ back a wordCtrl+Rightโ forward a wordCtrl+Shift+Backspaceโ delete to beginningCtrl+Shift+Deleteโ delete to endCtrl+Deleteโ delete wordCtrl+Backspaceโ delete previous wordShift+Deleteโ cut selectionShift+Insertโ paste selectedTabโ completionLeftโ move cursor leftRightโ move cursor rightHomeโ move cursor to line startEndโ move cursor to line endDeleteโ delete next characterBackspaceโ delete previous character
๐ธ WINDOW LIST ๐ธ
The window list window shows a list of all workspaces. For each workspace it shows the window titles of the windows that are mapped on it. The bottom entry reads "All Workspaces" โ that one holds the sticky windows, and those windows are mapped in all workspaces. Main character behaviour, honestly ๐
The window list window is normally hidden. Choose one of the following four methods to make it visible:
- Select the bottom window list menu entry.
- Press the
"KeySysWindowList=Ctrl+Alt+Esc"key. - Press the right Windows key if
"Win95Keys=1". - Press the
"DesktopWinListButton=2"mouse button in the root window. - Press the middle mouse button in a workspace button on the task bar.
A single-click on a window entry selects it. A group of windows can be selected by "Shift+Pointer_Button1" or by dragging with the left mouse button. Use "Ctrl+Pointer_Button1" to individually select windows in a multi-selection. A right mouse click over a selection will popup the system menu for this selection. To close the selected windows, press "Delete". Press "Shift+Delete" to forcefully kill them ๐ Right mouse click below the sticky windows for a menu with window arranging actions.
Double-click on a workspace to switch to it. Double-click on a window to activate it. Or navigate by arrow keys and press Enter. The space bar toggles a selection of a window. "Ctrl+a" and "Ctrl+/" will select the entire list of windows. "Ctrl+\\" deselects everything. Press the first letter of a window title to navigate to it and select it โ and if titles of multiple windows start with the same letter, then repeatedly pressing that first letter cycles over those windows ๐ "Home" selects the first entry and "End" the last. "PageUp" and "PageDown" move up or down by ten entries โ combine this with the "Shift" key to extend a selection over the range of motion ๐ฆ
โญ SYSTEM DIALOG โญ
The system dialog offers quick access to a set of general controls. It can:
- lock the screen ๐
- suspend the system ๐ด
- logout โ or cancel a pending logout
- reboot the system
- shutdown the system
- show the window list
- restart icewm
- show the about dialog
- reload the winoptions file or the keys file
It's activated by KeySysDialog="Ctrl+Alt+Del". To cancel it, hit the Escape key ๐
๐ MAILBOX MONITORING ๐
The task bar can show one or more icons to reflect the status of a mailbox, and the mailbox can be a local file or a remote POP or IMAP account. For this a couple of options must be set:
TaskBarShowMailboxStatusmust be enabled โ which it is by default, slay โจ- Then the location of the mailbox must be set. Icewm first looks for
MailBoxPathin preferences. If this is unset, it looks at the environment variables"MAILPATH"and"MAIL".MailBoxPathmay contain a space-separated list of mailboxes, while"MAILPATH"may contain a colon-separated list of mailboxes. If a mailbox starts with a slash"/", then it is a local file, otherwise a URL.
These are six examples of possible mailboxes:
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
The POP3S and IMAPS schemes use "openssl" for TLS/SSL encryption. Note that for IceWM to access Gmail you must first configure your Gmail account to enable POP3 or IMAP access. Make sure you have secure file permissions on your IceWM preferences file and the directory that contains it ๐
Reserved characters in the password, like slash, at and colon, can be specified using escape sequences with a hexadecimal encoding like %2f for the slash or %40 for the at sign. For example, to hex-encode "!p@a%s&s~" use this Perl snippet:
perl -e 'foreach(split("", $ARGV[0])) { printf "%%%02x", ord($_); };
print "\n";' '!p@a%s&s~'
Which will print:
%21%40%23%24%25%5e%26%2a%7e
That's the hex-encoded password. However โ and listen bestie โ it is unwise to store a password in your preferences. Consider a wallet extension for IceWM ๐
IceWM will check a mailbox periodically. The period in seconds can be set by the MailCheckDelay option, which is 30 seconds by default โฑ๏ธ
Whenever new mail arrives, the mailbox icon will be highlighted. The color will indicate if the mail has been read or not. Hovering the mouse over the mailbox icon will show a tooltip with more details. A command can also be run on new mail โ set the NewMailCommand option. Its environment will have these variables set by IceWM:
ICEWM_MAILBOXโ the mailbox index number ofMailBoxPathstarting from 1ICEWM_COUNTโ the total number of messages in this mailboxICEWM_UNREADโ the number of unread messages in this mailbox
๐ฆ KEYBOARD LAYOUT SWITCHING ๐ฆ
To control keyboard layouts on the task bar, define in preferences the option KeyboardLayouts to a comma-separated list of your preferred keyboard layouts. For example:
KeyboardLayouts = "de", "fr", "jp"
A keyboard layout can simply be a name โ usually this is a two-letter country code. See the directory /usr/share/X11/xkb/symbols for a list of available keyboard layouts for your system. If it's enclosed in double quotes, it can also be a space-separated list of command-line arguments to an invocation of the "setxkbmap" program ๐บ๏ธ
The first layout is the default, and it'll be installed when icewm starts. The task bar will show the current keyboard layout. If an icon can be found for the first two letters of the layout, then that icon will be shown โ otherwise the first two letters of the name of the layout will be shown ๐
Click on the current keyboard layout to cycle through all the available keyboard layouts, or use the KeySysKeyboardNext key. Click with the right mouse button to open a menu of all available keyboard layouts ๐
It's also possible to configure a default keyboard layout for each program individually in the icewm-winoptions(5) file. Whenever such a program receives input focus, icewm will install this configured keyboard layout automatically, and the keyboard status on the task bar will be updated to reflect this โจ
Please note that for keyboard layout switching to work, the"setxkbmap"program must be installed. To see your current keyboard layout settings, dosetxkbmap -query.
๐ KEYBOARD SHORTCUTS ๐
icewm supports a large number of hotkeys to activate some behaviour with a single key combination, and they're all configurable in the preferences file. Here we give their preferences name, followed by their default value in double quotes, and a short description of their effect ๐ซถ
Note that all use one or more key modifiers. Icewm supports the following modifiers: Alt, AltGr, Ctrl, Hyper, Meta, Shift, Super. Setting ModSuperIsCtrlAlt=1 makes the Super modifier an alias for Ctrl+Alt.
KeyWinRaise="Alt+F1"โ raises the window that currently has input focus.KeyWinOccupyAll="Alt+F2"โ makes the active window occupy all workspaces.KeyWinLower="Alt+F3"โ lowers the window that currently has input focus.KeyWinClose="Alt+F4"โ closes the active window.KeyWinRestore="Alt+F5"โ restores the active window to its visible state.KeyWinNext="Alt+F6"โ switches focus to the next window.KeyWinPrev="Alt+Shift+F6"โ switches focus to the previous window.KeyWinMove="Alt+F7"โ starts movement of the active window.KeyWinSize="Alt+F8"โ starts resizing of the active window.KeyWinMinimize="Alt+F9"โ iconifies the active window.KeyWinMaximize="Alt+F10"โ maximizes the active window with borders.KeyWinMaximizeVert="Alt+Shift+F10"โ maximizes the active window vertically.KeyWinMaximizeHoriz="undefined"โ maximizes the active window horizontally.KeyWinFullscreen="Alt+F11"โ maximizes the active window without borders.KeyWinRollup="Alt+F12"โ rolls up the active window.KeyWinHide="Alt+Shift+F12"โ hides the active window.KeyWinMenu="Alt+space"โ posts the window menu.KeyWinArrangeNW="Ctrl+Alt+KP_7"โ moves the active window to the top left corner of the screen. ๐ฆKeyWinArrangeN="Ctrl+Alt+KP_8"โ moves the active window to the top middle of the screen. โจKeyWinArrangeNE="Ctrl+Alt+KP_9"โ moves the active window to the top right of the screen. ๐KeyWinArrangeE="Ctrl+Alt+KP_6"โ moves the active window to the middle right of the screen. ๐KeyWinArrangeSE="Ctrl+Alt+KP_3"โ moves the active window to the bottom right of the screen. ๐ธKeyWinArrangeS="Ctrl+Alt+KP_2"โ moves the active window to the bottom middle of the screen. ๐ซถKeyWinArrangeSW="Ctrl+Alt+KP_1"โ moves the active window to the bottom left of the screen. ๐ฆKeyWinArrangeW="Ctrl+Alt+KP_4"โ moves the active window to the middle left of the screen. โจKeyWinArrangeC="Ctrl+Alt+KP_5"โ moves the active window to the center of the screen. ๐KeyWinTileLeft=""โ lets the active window occupy the left half of the screen. ๐KeyWinTileRight=""โ lets the active window occupy the right half of the screen. ๐KeyWinTileTop=""โ lets the active window occupy the top half of the screen. ๐KeyWinTileBottom=""โ lets the active window occupy the bottom half of the screen. ๐KeyWinTileTopLeft=""โ lets the active window occupy the top left quarter of the screen. ๐KeyWinTileTopRight=""โ lets the active window occupy the top right quarter of the screen. ๐KeyWinTileBottomLeft=""โ lets the active window occupy the bottom left quarter of the screen. ๐KeyWinTileBottomRight=""โ lets the active window occupy the bottom right quarter of the screen. ๐KeyWinTileCenter=""โ lets the active window occupy the center quarter of the screen. ๐KeyWinSmartPlace="Ctrl+Alt+Shift+KP_5"โ smart place the active window. ๐งKeySysWinMenu="Shift+Esc"โ posts the system window menu. ๐ชKeySysWinNext="Alt+Esc"โ gives focus to the next window and raises it. โญKeySysWinPrev="Alt+Shift+Esc"โ gives focus to the previous window and raises it. โญKeySysDialog="Ctrl+Alt+Del"โ opens the IceWM system dialog in the center of the screen. ๐KeySysMenu="Ctrl+Esc"โ activates the IceWM root menu in the lower left corner. ๐KeySysWindowList="Alt+Ctrl+Esc"โ opens the IceWM system window list in the center of the screen. ๐ชKeySysAddressBar="Alt+Ctrl+space"โ opens the address bar in the task bar where a command can be typed. โจ๏ธKeySysWorkspacePrev="Alt+Ctrl+Left"โ goes one workspace to the left. โฌ ๏ธKeySysWorkspaceNext="Alt+Ctrl+Right"โ goes one workspace to the right. โก๏ธKeySysWorkspaceLast="Alt+Ctrl+Down"โ goes to the previous workspace. โฌ๏ธKeySysWorkspacePrevTakeWin="Alt+Ctrl+Shift+Left"โ takes the active window one workspace to the left. ๐ซถKeySysWorkspaceNextTakeWin="Alt+Ctrl+Shift+Right"โ takes the active window one workspace to the right. ๐ซถKeySysWorkspaceLastTakeWin="Alt+Ctrl+Shift+Down"โ takes the active window to the previous workspace. ๐ซถKeySysWorkspace1="Alt+Ctrl+1"โ goes to workspace 1. 1๏ธโฃKeySysWorkspace2="Alt+Ctrl+2"โ goes to workspace 2. 2๏ธโฃKeySysWorkspace3="Alt+Ctrl+3"โ goes to workspace 3. 3๏ธโฃKeySysWorkspace4="Alt+Ctrl+4"โ goes to workspace 4. 4๏ธโฃKeySysWorkspace5="Alt+Ctrl+5"โ goes to workspace 5. 5๏ธโฃKeySysWorkspace6="Alt+Ctrl+6"โ goes to workspace 6. 6๏ธโฃKeySysWorkspace7="Alt+Ctrl+7"โ goes to workspace 7. 7๏ธโฃKeySysWorkspace8="Alt+Ctrl+8"โ goes to workspace 8. 8๏ธโฃKeySysWorkspace9="Alt+Ctrl+9"โ goes to workspace 9. 9๏ธโฃKeySysWorkspace10="Alt+Ctrl+0"โ goes to workspace 10. ๐KeySysWorkspace11="Alt+Ctrl+minus"โ goes to workspace 11. โKeySysWorkspace12="Alt+Ctrl+equal"โ goes to workspace 12. ๐ฐKeySysWorkspace1TakeWin="Alt+Ctrl+Shift+1"โ takes the active window to workspace 1. 1๏ธโฃKeySysWorkspace2TakeWin="Alt+Ctrl+Shift+2"โ takes the active window to workspace 2. 2๏ธโฃKeySysWorkspace3TakeWin="Alt+Ctrl+Shift+3"โ takes the active window to workspace 3. 3๏ธโฃKeySysWorkspace4TakeWin="Alt+Ctrl+Shift+4"โ takes the active window to workspace 4. 4๏ธโฃKeySysWorkspace5TakeWin="Alt+Ctrl+Shift+5"โ takes the active window to workspace 5. 5๏ธโฃKeySysWorkspace6TakeWin="Alt+Ctrl+Shift+6"โ takes the active window to workspace 6. 6๏ธโฃKeySysWorkspace7TakeWin="Alt+Ctrl+Shift+7"โ takes the active window to workspace 7. 7๏ธโฃKeySysWorkspace8TakeWin="Alt+Ctrl+Shift+8"โ takes the active window to workspace 8. 8๏ธโฃKeySysWorkspace9TakeWin="Alt+Ctrl+Shift+9"โ takes the active window to workspace 9. 9๏ธโฃKeySysWorkspace10TakeWin="Alt+Ctrl+Shift+0"โ takes the active window to workspace 10. ๐KeySysWorkspace11TakeWin="Alt+Ctrl+Shift+minus"โ takes the active window to workspace 11. โKeySysWorkspace12TakeWin="Alt+Ctrl+Shift+equal"โ takes the active window to workspace 12. ๐ฐKeySysTileVertical="Alt+Shift+F2"โ tiles all windows from left to right maximized vertically. ๐ชKeySysTileHorizontal="Alt+Shift+F3"โ tiles all windows from top to bottom maximized horizontally. ๐ชKeySysCascade="Alt+Shift+F4"โ makes a horizontal cascade of all windows which are maximized vertically. ๐KeySysArrange="Alt+Shift+F5"โ rearranges the windows. ๐งนKeySysUndoArrange="Alt+Shift+F7"โ undoes arrangement. โฉ๏ธKeySysArrangeIcons="Alt+Shift+F8"โ rearranges icons. ๐๏ธKeySysMinimizeAll="Alt+Shift+F9"โ minimizes all windows. ๐ซฅKeySysHideAll="Alt+Shift+F11"โ hides all windows. ๐KeySysShowDesktop="Alt+Ctrl+d"โ unmaps all windows to show the desktop. ๐ฅ๏ธKeySysCollapseTaskBar="Alt+Ctrl+h"โ hides the task bar. ๐KeyTaskBarSwitchNext="undefined"โ switches to the next window in the task bar. โญ๏ธKeyTaskBarSwitchPrev="undefined"โ switches to the previous window in the task bar. โฎ๏ธKeyTaskBarMoveNext="undefined"โ moves the task bar button of the current window right. โก๏ธKeyTaskBarMovePrev="undefined"โ moves the task bar button of the current window left. โฌ ๏ธKeySysWinListMenu="undefined"โ shows the window list menu. ๐ชKeySysKeyboardNext="undefined"โ switch to the next keyboard layout in theKeyboardLayoutslist. โจ๏ธKeySysSwitchNext="Alt+Tab"โ opens the"QuickSwitch"popup (see"INPUT FOCUS") and/or moves the selector in the"QuickSwitch"popup. ๐KeySysSwitchLast="Alt+Shift+Tab"โ works likeKeySysSwitchNextbut moving in the opposite direction. ๐KeySysSwitchClass="Alt+grave"โ is likeKeySysSwitchNextbut only for windows with the sameWM_CLASSproperty as the currently focused window. ๐ฏ
๐ฑ๏ธ MOUSE BINDINGS ๐ฑ๏ธ
You can control windows by a modified mouse button press:
MouseWinMove="Alt+Pointer_Button1"โ moves the window under the mouse over the screen. ๐ฑ๏ธMouseWinSize="Alt+Pointer_Button3"โ resizes the window. Keep the key and button pressed. To enlarge the window move the mouse button away from the center. To shrink it move towards the centre. ๐MouseWinRaise="Ctrl+Alt+Pointer_Button1"โ raises the window under the mouse. โฌ๏ธMouseWinLower="Ctrl+Alt+Pointer_Button1"โ lowers the window under the mouse. If this is equal to"MouseWinRaise"and the window can be raised then"MouseWinRaise"takes preference over"MouseWinLower". โฌ๏ธMouseWinTabbing="Shift+Pointer_Button2"โ mouse binding to create tabs. Drag the title bar with this button over another title bar. When they start to flash, release the button to merge the frame tabs. ๐๏ธ
The title frame of a window also listens for mouse clicks. A left double-click maximizes the window (TitleBarMaximizeButton=1). When Shift is also pressed it only maximizes vertically. Press Alt+Shift to maximize horizontally. ๐
Middle double-clicking rolls up the window (TitleBarRollupButton=2). Also press Shift to maximize horizontally. If TitleBarRollupButton is either 4 or 5 then the scroll wheel controls rolling up or down. ๐
Press a mouse button on the title bar and drag it to move the window. To drag a maximized window, keep the Shift key down. An Alt+Pointer_Button1 click in the title bar lowers the window. ๐ซถ
When the mouse is on the window frame then a left click raises the window. Dragging with the left button down resizes the window. Clicking the right button pops up the context menu. Dragging with the right button moves the window. ๐ฑ๏ธ
Double-clicking on the frame border (or corner) maximizes just that side of the window. Another double-click restores that side. Double-clicking on the border can also undo a maximization in that dimension. โจ
Clicking on the desktop activates a menu. The middle button shows the window list (DesktopWinListButton=2). The right button shows the root menu (DesktopMenuButton=3). If you press Ctrl+Alt then the mouse wheel will focus all applications in turn. ๐ก
๐จ SIGNALS ๐จ
icewm supports the following signals:
SIGHUPโicewmwill restart itself. It is a way to reload the configuration. ๐SIGINT,SIGTERMโicewmwill cease to manage application windows and terminate. ๐SIGQUITโicewmwill initiate the logout procedure. If aLogoutCommandpreferences option was configured it will be executed. ๐ชSIGUSR2โ toggle the logging of X11 events, iflogeventswas configured. ๐
๐ฑ ENVIRONMENT VARIABLES ๐ฑ
ICEWM_PRIVCFGโ the directory for user private configuration files. When this environment variable is not specified, the default directory is$XDG_CONFIG_HOME/icewmwhen that directory exists, otherwise the default value is$HOME/.icewm. ๐๏ธDISPLAYโ the name of the X11 server. SeeXorg(1)orXserver(1). This value can be overridden by the--displayoption. ๐ฅ๏ธMAILPATH,MAILโ gives the location of your mailbox. If the schema is omitted the local"file"schema is assumed. This is used by the mailbox applet in the task bar to show the status of your mailbox. If the"MailBoxPath"option in the preferences file is set, then that one takes precedence. ๐ฌ
๐ FILES ๐
๐๏ธ CONFIGURATION DIRECTORIES ๐๏ธ
icewm looks for configuration files in the following directories, in the given order, until it finds one:
$ICEWM_PRIVCFG/โ contains user-specific configurations. WhenICEWM_PRIVCFGis specified, this directory takes precedence over$XDG_CONFIG_HOME/icewmand$HOME/.icewm. ๐$XDG_CONFIG_HOME/icewm/โ contains user-specific configurations. When this directory exists it take precedence over$HOME/.icewm. โจ$HOME/.icewm/โ contains user-specific configurations. This is the historical default directory. ๐/usr/etc/icewm/โ this one's the system-wide customized defaults folder ๐ and bestie, pls note your local install might've been configured to use a totally different system location. The output oficewm --directorieswill show you exactly where it landed, no guessing needed โจ/usr/share/icewm/โ the default local installation settings live here, iconic behavior honestly ๐
๐๏ธ CONFIGURATION FILES ๐๏ธ
envโ okay soicewm-session(1)loads extra environment variables from this file. Each line gets put through POSIX shell expansion bywordexp(3). Comment lines starting with a hash-sign (#) are ignored.icewm-session(1)will load those expanded lines that contain a name, followed by an equals sign, followed by the value (which may be empty). slay.
See icewm-env(5).
focus_modeโ sets the initial value forFocusMode. Default is"FocusMode=1"(Click-to-focus). You can change it via the menu, and icewm will save the Focus menu choice in this file. So it literally remembers your vibe ๐ซถ
See icewm-focus_mode(5).
keysโ global keybindings to launch applications, and these don't even need to be window manager related, we love a versatile icon ๐ Each non-empty line starts with the wordkey. After one or more spaces follows a double-quoted string of the bound X11 key combination like"Alt+Ctrl+Shift+X". Then after at least one space follows a shell command-line that will be executed by icewm whenever this key combination is pressed. For example, the following line creates a hotkey to reload the icewm configuration:
key "Ctrl+Shift+r" icesh restart
See icewm-keys(5).
menuโ a menu of applications, usually customized by the user. icewm provides theicewm-menu-fdo(1)program to generate a default menu. Similar programs arexdg_menu(1),mmaker(1)(MenuMaker),xde-menu(1),xdgmenumaker(1). so many options, pick your fighter ๐ญ
See icewm-menu(5).
preferencesโ contains general settings like paths, colors and fonts, but also options to control the icewm focus behaviour and the applets that are started in the task bar. The icewm installation will provide a default preferences file, which can be copied to the icewm user configuration directory and modified. go off, customize ๐
See icewm-preferences(5).
prefoverrideโ settings which override the settings from a theme. Some of the icewm configuration options from the preferences file that control the look-and-feel may be overridden by the theme, if the theme designer thinks this is desirable. However, this prefoverride file will again override this for a few specific options of your choosing. It is safe to leave this file empty initially โ fr fr, no pressure bestie ๐
programsโ an automatically generated menu of applications. This could be used bywmconfig(1),menuor similar programs to give easy access to all the desktop applications that are installed on the system. auto-generated and effortless, we stan ๐ธ
See icewm-programs(5).
themeโ this file contains the name of the default theme. On startup icewm reads this file to obtain the theme name, unless icewm was started with the--themeoption. Whenever a different theme is selected from the icewm Menu then the theme file is overwritten with the name of the selected theme. This theme file contains the keyword"Theme", followed by an equals sign, followed by a double-quoted string with the theme name. The theme name is the name of the theme directory, followed by a slash, followed by the theme file. Usually the theme file is justdefault.theme, but a theme may have alternatives. Alternatives are small tweaks of a theme. These are specified in their own.themefile, which replacesdefault.theme. If no theme file exists then icewm will use as default"Theme="icedesert/default.theme"". ok the double-double-quotes are sending me but that's literally what it says ๐ฅ
See icewm-theme(5).
toolbarโ contains names of quick to launch applications with icons for the task bar. Each non-empty non-comment line starts with the keywordprog. After one or more spaces follows a name, which is displayed in a tool tip whenever the mouse cursor hovers over the toolbar icon. This name may be a double quoted string. Then follows the bare name of the icon to use without extensions. This icon will be shown in the toolbar. The last component is a shell command-line that will be executed whenever the user presses the icon in the toolbar. For example, the following line in toolbar will create a button with tool tip"Mozilla Firefox"with the firefox icon that launchesfirefox(1)when clicked:
prog "Mozilla Firefox" firefox /usr/bin/firefox --private-window
See icewm-toolbar(5).
winoptionsโ contains settings to control window appearance and behaviour that are specific to applications or groups of applications. Options can control the border, whether it appears on the task bar, the window list, the system tray and the workspaces. Also its layer, geometry, whether it can be moved, resized and closed. literally every little detail about a window, main character energy ๐
See icewm-winoptions(5).
startupโ contains commands to be executed on icewm startup. This is an executable script with commands to tweak X11 settings and launch some applications that need to be active whenever icewm is started. It is run byicewm-session(1)when icewm starts. the first-day-of-school outfit of scripts basically ๐ฆ
See icewm-startup(5).
shutdownโ contains commands to be executed on icewm shutdown. This is an executable script with commands to be executed in the last stage of icewm termination. Typically they may undo some of the effects of the startup script. It is run byicewm-session(1)when icewm terminates. cleanup era ๐งนโจ
See icewm-shutdown(5).
๐ CONFIGURATION SUBDIRECTORIES ๐
cursorsโ may contain cursor icons in the XPM image format. These overrule cursors provided by a theme. There are 3 direction cursors:left.xpm,right.xpm,move.xpm, 8 resize cursors:sizeR.xpm,sizeTR.xpm,sizeT.xpm,sizeTL.xpm,sizeL.xpm,sizeBL.xpm,sizeB.xpm,sizeBR.xpm, and 4 scroll cursors:scrollL.xpm,scrollR.xpm,scrollU.xpm, andscrollD.xpm. that's a whole cursor squad ๐
By default an XPM header defines four dimensions: width, height, colors and chars-per-pixel. For cursors this must be extended to six. The last two are the x-hotspot and the y-hotspot. These define which point in the XPM image is the sensitive point for the mouse pointer. so like, where the click actually clicks, iykyk ๐ฏ
Instead of XPM images, a theme may use Xcursor files instead. These then don't have a filename extension.
When a theme doesn't define a cursor, icewm falls back to the system cursor themes for Xcursor, if they are installed. This is configurable by the following environment variables:
XCURSOR_PATHโ where to look for themed cursors.XCURSOR_SIZEโ the cursor size in pixels.XCURSOR_THEMEโ the name of the cursor theme.
The last two can also be set as an X-resource:
Xcursor.size: 24
Xcursor.theme: whiteglass
Otherwise core X11 cursors are used. retro fallback, we respect it ๐
iconsโ contains icons for applications and keyboard layouts. These can be in XPM, PNG or SVG format. The filename of an application icon may follow a specific naming pattern, likeapp_32x32.xpm. They start with a base name, which usually is just a single word. Then follows an underscore, followed by a size specification, as in"SIZExSIZE". This is followed by a dot and the file extension, where the extension denotes the icon image format. Common sizes are 16, 32 and 48. This depends on the respective"IconSize"preferences options. the naming convention is lowkey iconic ๐ledclockโ pictures of digits for the LED clock which is displayed in the bottom-right corner of the task bar. These can be seen when the"TaskBarShowClock"and"TaskBarClockLeds"options are both set to 1. both of them, no cap โญmailboxโ icons that are used to display different states of the mailbox applet in the task bar. There are five states and each has its own icon:mail.xpm,newmail.xpm,unreadmail.xpm,nomail.xpm,errmail.xpm. five moods, all valid ๐soundsโ audio files that are played byicesound(1)on GUI events. These are:startup.wav,shutdown.wav,restart.wav,launchApp.wav,workspaceChange.wav,windowOpen.wav,windowClose.wav,dialogOpen.wav,dialogClose.wav,windowMax.wav,windowRestore.wav,windowMin.wav,windowHide.wav,windowRollup.wav,windowMoved.wav,windowSized.wav,windowLower.wav. a whole soundtrack for your desktop, obsessed ๐๐ฅtaskbarโ pictures to customize the look of the task bar. These include:taskbarbg.xpm,taskbuttonactive.xpm,taskbuttonbg.xpm,taskbuttonminimized.xpm,toolbuttonbg.xpm,workspacebuttonactive.xpm,workspacebuttonbg.xpm. dress up your taskbar bestie ๐ซถthemesโ a directory to store themes. Each theme is stored in its own sub-directory in the themes directory. A theme contains at least adefault.themefile, and optionally theme alternatives which are additional files that have a.themefile name extension and that contain tweaks of thedefault.themefile. How to create a theme is explained in the IceWM Theme Creation Howto. go make something gorgeous โจworkspaceโ if"PagerShowPreview"is disabled, icewm looks in the"workspace"directory for images to draw on a workspace button. The image filename should have the name of the workspace. The image extension is optional. flexible queen ๐
๐ซ๏ธ OPACITY ๐ซ๏ธ
IceWM supports window opacity and transparency in connection with an external compositor like compton(1) or picom(1). If a client window sets the "_NET_WM_WINDOW_OPACITY" property on its window, then icewm will copy this to the outer frame window, where the compositor will read it and adjust the opacity accordingly. see-through but make it fashion ๐
The opacity can also be set in the icewm-winoptions(5) file. icesh(1) can control the opacity level of running applications.
The _NET_WM_WINDOW_TYPE properties that icewm sets on its windows are DIALOG, NOTIFICATION, POPUP_MENU and TOOLTIP. The output of "icesh windows" shows their WM_CLASS values. These can be helpful to configure compton. receipts for days ๐
๐ EXAMPLES ๐
Examples of the above configuration files can be found in the default installation path or in the system-wide defaults. See the output of "icewm --directories" for their locations. go look, they're literally right there ๐
๐ CONFORMING TO ๐
ICCCM 2.0: partial. NetWM/EWMH: extensive. See the file COMPLIANCE in the distribution for full details. partial slay, extensive slay, read the file for the full tea ๐ฆ
โจ SEE ALSO โจ
okay bestie, if you're done here and you still want more icewm lore (and honestly, same), go read these ๐ literally all of them, no skips:
icehelp(1)icesh(1)icesound(1)icewm-env(5)icewm-focus_mode(5)icewm-keys(5)icewm-menu(5)icewm-menu-fdo(1)icewm-menu-xrandr(1)icewm-preferences(5)icewm-prefoverride(5)icewm-programs(5)icewm-session(1)icewm-set-gnomewm(1)icewm-shutdown(5)icewm-startup(5)icewm-theme(5)icewm-toolbar(5)icewm-winoptions(5)icewmbg(1)icewmhint(1)setxkbmap(1)Xorg(1)Xserver(1)xinit(1)xprop(1)xwininfo(1)wmctrl(1)
๐ BUGS ๐
found a bug? a little gremlin in the code? please report it at <https://github.com/ice-wm/icewm/issues> ๐ซถ the maintainers literally want to know, fr fr.
๐ AUTHOR ๐
Brian Bidulock <mailto:bidulock@openss7.org>. main character energy, honestly ๐
also: peep --copying for the full copyright notice and copying permissions, iykyk.
๐ LICENSE ๐
IceWM is licensed under the GNU Library General Public License. the whole thing lives in the COPYING file in the distribution, or you can just run the --copying flag and it'll display the copying permissions for you โจ
bestie reminder: that license bit is not a vibe, it's a real legal thing โ read it, don't just scroll past it ๐
and that's the whole page, babe ๐ you made it to the end โ iconic behavior. this was icewm version 4.1.0, dated 2026-08-06, page ICEWM(1). go forth and slay your window manager ๐๐
๐ฆ where this page comes from
- arch rolling: icewm 4.1.0-1 ยท LGPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms