icewm executable must be on $PATH for restart function to work
First make sure that there is no $HOME/.xinitrc or $HOME/.Xsession file or that any of those correctly starts $HOME/.Xclients.
The recommended way to start is from $HOME/.Xclients shell script (must be executable). Mine looks something like this:
# run profile to set $PATH and other env vars correctly . $HOME/.bash_profile # setup background xsetroot -solid '#056' # setup mouse acceleration xset m 7 2 # run initial programs xterm & # start icewm, and run xterm if it crashes (just to be safe) exec icewm || exec xterm -fg red
The xterm on the last line is there simply to make sure that your X session doesn't crash if icewm does (should never happen). You can restart icewm from there or start some other window manager. The session will close if you close the xterm.
The above should work for most Linux systems. On commercial unices you should use $HOME/.dtprofile if you have CDE or $HOME/.vueprofile for HP-UX with HP VUE. If you are running xdm or some other login program check it's manpage for the correct place to start the window manager (usually /.Xsession).