HOWTO IceWM
From Gentoo Linux Wiki
| Installation • Kernel & Hardware • Networks • Portage • Software • System • X Server • Gaming • Non-x86 • Emulators • Misc |
|
Contents |
[edit] What is IceWM?
IceWM is a very light and highly configurable window manager for the X Window System.
IceWM Homepage: http://www.icewm.org/
[edit] USE Flags
| esd | Adds support for the Enlightened sound daemon |
| gnome | Adds support for Gnome applications |
| imlib | |
| minimal | |
| nls | Support for native languages (recommended) |
| spell | |
| truetype | Adds support for TrueType fonts (recommended) |
| xinerama | Adds support for multiple monitors |
[edit] Installation
To install IceWM simply emerge it using Portage:
# emerge icewm
[edit] Alternative 1 — Using a display manager
Use this method if you want X started on boot and present you a login window to initiate your IceWM session. You may use any display manager you wish. Here we assume xdm to be the display manager of choice:
# emerge --noreplace xdm
Once xdm is properly installed in your system, it needs to be configured to run an IceWM session. You can either set it up globally by editing the /etc/rc.conf file and adding/changing the XSESSION environment variable to icewm-session:
XSESSION="icewm-session"
Or set it up on a per-user basis by creating a file named .xsession in your user's home directory with the following contents:
| File: ~/.xsession |
exec icewm-session |
Icewm-session will run, apart from icewm itself, icewmbg (desktop background control) and icewmtray (docklet support) applications. Note that these may need to be emerged separately in addition to the main IceWM distribution.
[edit] Alternative 2 — Using startx
Use this method if you intend to start X and initiate your IceWM session manually by using the startx script. All you need to do is create or modify a file named .xinitrc in your user's home directory and put the following line (to the bottom of the file in case it had other contents):
| File: ~/.xinitrc |
exec icewm-session |
[edit] Configuration
IceWM stores its user-wise configuration files in the .icewm directory in the user's home directory. It does not exist by default, so you would normally start from modifying a default configuration:
$ mkdir ~/.icewm $ cp -R /usr/share/icewm/* ~/.icewm
NOTE: The above is only necessary if you wish to customize each file in the .icewm directory. It may also cause problems when certain default files get updated in /usr/share/icewm (this usually happens when a theme gets updated).
The above will also prevent you from receiving updates to your current themes as icewm will use your old /home/user/.icewm copy of the themes instead of the ones that will get updated at /usr/share/icewm/.
Icewm looks in 3 places for settings files:
{$HOME}/.icewm /etc/icewm/ (only on gentoo, for a regular icewm install it looks in /etc/X11/icewm) /usr/share/icewm
It prioritizes them in the above order. What this means is that the default settings are in /usr/share/icewm. The system wide custom settings should go in /etc/icewm (please note that the ebuild does not make this directory or copy any files there automatically). And the user's custom settings should go in {$HOME}/.icewm
Now what you usually want is a system wide customized start menu in a multiuser environment(you know what programs are on your system better than the icewm guys do). So you would
# mkdir /etc/icewm # cp /usr/share/icewm/menu /etc/icewm # nano /etc/icewm/menu
This way each user doesn't have a run a menu gen program or manually add all the programs to their own .icewm/menu! Each user can still over ride this by copying it to his or her HOME/.icewm dir and adjusting it there.
If you need to customize any other files copy them on file by file basis so the ones you don't need customized will fall back to the ones that get updated in /usr/share/icewm.
Of course NOW if you as a user and not an admin want to customize further (developing themes or what not)
$ mkdir ~/.icewm $ cp -R /usr/share/icewm/* /etc/icewm/* ~/.icewm
NOTE: with the above commands you will have manually update your .icewm by copying over the new theme file whenever the themes are updated. You'll have to do this for other files too but usually only the themes change.
[edit] Additional Packages
There are a number of tools to help configure IceWM through a graphical interface, rather then editing your files manually in the ~/.icewm/ directory. Even though the GUIs help to streamline changing a lot of settings, it is recommend to view the files manually simply to see the large array of options that are available.
icewm-tools is a meta-package that installs many common administration tools. You probably don't need all of them, but running emerge -pv icewm-tools will show you which individual packages are included.
List of emergable IceWM packages in alphabetical order.
| Package Name | Description |
| x11-misc / denu | A menu generation program for fluxbox, waimea, openbox, icewm, gnome and kde. |
| x11-misc / icebgset | IceWM background editor |
| x11-misc / icecc | IceWM Control Center (only main program, see icewm-tools for the rest) |
| x11-misc / icecursorscfg | IceWM cursor's configurator |
| x11-misc / iceiconcvt | IceWM icons' converter |
| x11-misc / iceked | IceWM keys editor |
| x11-misc / icemc | IceWM menu/toolbar editor |
| x11-misc / icemergeprefs | IceWM private/global preferences merger |
| x11-misc / icerrun | IceWM 'recently used programs' menu generator |
| x11-misc / icesndcfg | IceWM sound editor. |
| x11-misc / icets | IceWM Theme Editor |
| x11-misc / icewm-tools | Convenience package for IceWM control center and tools |
| x11-misc / icewmcp | A complete control panel for IceWM using gtk & python |
| x11-misc / icewoed | IceWM winoptions editor. |
| x11-themes / iceicons | IceWM Icons is a set of XPM 16x16, 32x32, and 48x48 XPM and PNG icons for IceWM |
| x11-themes / icewm-themes | Collection of IceWM themes |
| x11-wm / icewm | Ice Window Manager with Themes |
[edit] Other Packages you might want to emerge
[edit] Desktop File Managers
| Package Name | Description |
| gnome-base/nautilus | A filemanager for the Gnome2 desktop |
| x11-misc/idesk | Utility to put icons on the root window (Can't use this with Composite Enabled) |
[edit] Tips and Tricks
[edit] Putting XMMS in the system tray
One of the great things about IceWM is that unlike KDE and Gnome, you don't need to install "applets" to have your programs run or minimize in the sytem tray. IceWM's configuration files makes it simple not only to run programs in your system tray, but also to change the icons, tell it which window to load in, individual window settings, etc.
All your per-program window settings can be found in ~/.icewm/winoptions
To have XMMS run in the sytem tray, simply add this line:
| File: ~/.icewm/winoptions |
xmms.tray: Exclusive |
Anytime you make any changes to your IceWM settings that directly affect the main toolbar, you have to restart IceWM for the changes to take affect (the same is not true, however, if you add or edit programs in the sub-menus).
Fortunately, you can also restart IceWM without logging out. Just select "Restart IceWM" in the "Logout" menu. Open up XMMS and you should see it load in the system tray.
NOTE: There is a plugin for xmms that handles tray operations, just emerge xmms-status-plugin. You will get a nice tray icon of xmms with configurable mouse actions. Remember, only newer builds (>=1.2.10 r6) support 'minimize-to-tray' option.
[edit] Enabling "Run..."
As of IceWM 1.2.14, the default Gentoo installation does not include an option for the "Run..." command in the main menu, even if enabled in the preferences. A workaround is to use an external program to run the "Run..." commands, and modify your preferences to use that program.
A good one to use is BlackBox's bbrun, which is in portage. To install it, and avoid installing BlackBox WM, emerge the package with no dependencies:
# emerge --nodeps bbrun
Then, edit your ~/.icewm/preferences file and set bbrun up as the desired application for the "Run..." option:
| File: ~/.icewm/preferences |
ShowRun = 1 RunCommand="bbrun -w" |
Also, if you would like to bind a key to running the "Run" window, edit your ~/.icewm/keys file. This example uses Alt + F2 to open the run window (similar to KDE and GNOME).
| File: ~/.icewm/keys |
key "Alt+F2" bbrun -w |
(Note: Keystroke "Ctrl+Alt+Space" turns taskbar into "one-line shell" mode, which can be used as run app)
You can also use GTK2 based gmrun.
[edit] Quick Switch Between Windows
Press Win+Esc to bring up Window List, then type the first character of the window title you want to switch to.
