IceWM is a window and session manager that in a sense emulated old Windows look and feel.
Its features are that it's light and simple to use. It's particularly useful for very old computers.
Some lightweight display managers that can be used to keep system light are slim, lxdm and lightdm.
1) Installation
Code:
# yum install icewm icewm-xdgmenu icewm-clearlooks
2) Set-up
Code:
$ mkdir ~/.icewm
$ cd /usr/share/icewm/
$ cp keys menu preferences startup toolbar winoptions ~/.icewm/
Set-up is done through normal text files or bash scripts (for startup and shutdown).
2a) Menu (menu file)
The default menu comes with a couple of 'favourite' apps and, due to icewm-xdg-menu, a nested 'Programs' sub-menu.
First we'll fix the 'Programs' sub-menu.
icewm-xdg-menu (the python script that's installed by the package icewm-xdgmenu) uses /etc/xdg/menus/applications.menu to generate the 'Programs' sub-menu.
/etc/xdg/menus/applications.menu (from redhat-menus) isn't good enough for us because it leaves out the Settings/Preferences applications and (cosmetics; bug) refers to non-existing .directory files so the menu categories don't have icons. We fix that by having our own local applications.menu and .directory files.
Create ~/.config/menus/applications.menu like
http://pastebin.com/B6igWPFt (the file already excludes Xfce specific apps, if you use other desktop environments and see that the menu displays apps that aren't relevant to IceWM, just edit applications.menu accordingly).
Also extract
https://www.dropbox.com/s/pe3ddjzfpd...tories.tar.bz2 to ~/.local/share/
The sample 'favourite' apps are xterm and an entry for the web-browser, which is broken as it is. To fix it, replace
about:blank for
http://start.fedoraproject.org/ , for instance, or just use
firefox in place of
xdg-open ....
You can add other favourite apps by following a similar syntax to the samples.
The image below is my current menu, which has no favourites (they can go on the task bar) and uses the application menu directly (how-to plus other options to configure the menu script on the
Start-up section further down the page):
2b) Task bar (toolbar file)
The toolbar file, which defines the launchers on the task bar, has the same syntax as the menu file. The default file needs fixing for the web-browser entry (see
Menu section above). Below is mine:
Code:
prog Terminal /usr/share/icons/gnome/24x24/apps/utilities-terminal.png sakura
prog "File manager" /usr/share/icons/gnome/24x24/apps/system-file-manager.png pcmanfm
prog "Text editor" /usr/share/icons/gnome/24x24/apps/accessories-text-editor.png geany
prog "Web browser" /usr/share/icons/gnome/24x24/apps/web-browser.png firefox
The icons can either be in the png format, in which case the full path is needed, or in xpm format, in which case IceWM will look for them in the
icons folder for the IceWM theme used and if that doesn't exist, in ~/.icewm/icons and if that also doesn't exist, in /usr/share/icewm/icons. These xpm icons are named with <name>_<size>.xpm (for example:
xterm_16x16.xpm).
2c) "Hotkeys" (keys file)
The keys file, which defines keyboard shortcuts to launch applications, is self-explanatory.
In IceWM by default the "Super" or "Windows" key works as the "Alt+Ctrl" combo (this can be disabled in the preferences file - see
Preferences section further down the page).
The default keys file has entries for audio volume shifting that calls alsamixer. If you prefer to use pulseaudio directly, the script at
http://forums.debian.net/viewtopic.php?f=16&t=74762 can be useful.
Pnmixer 5.1 in Fedora 18 can set hotkeys for mute/unmute and raise/lower the volume.
It also has that misconfigured web-browser entry.
Below are examples based on my current file, which doesn't have the multimedia keys as my keyboard doesn't have them:
Code:
key "Alt+Ctrl+b" firefox
key "Alt+Ctrl+e" beesu - geany
key "Alt+Ctrl+f" pcmanfm
key "Alt+Ctrl+m" dmenu_run -fn '-*-terminus-*-*-*-*-14'
key "Alt+Ctrl+t" sakura
key "Alt+F2" xfce4-appfinder --collapsed
key "Alt+Ctrl+r" beesu - sakura
key "Alt+Ctrl+l" i3lock -c 000000
key "Alt+Ctrl+x" icewm-exit
key "Ctrl+Print" xfce4-screenshooter -r
key "Print" xfce4-screenshooter -fm
key "Super+Print" xfce4-screenshooter -wm
key "Super+KP_Add" pavol increase
key "Super+KP_Decimal" pavol toggle
key "Super+KP_Subtract" pavol decrease
Here I set "Alt+F2" for a run dialogue. IceWM also has a limited run box on its task bar (panel) that can be accessed with "Super+Space" (or "Alt+Ctrl+Space").
IceWM has several of its own keyboard shortcuts set in the preferences file (see
Preferences section further down the page).
One that's worth mentioning both because it can conflict with a custom keyboard shortcut and also because it's quite useful, is "Super+h" that hides the task bar (panel).
We can launch apps with "Alt+F2" or with dmenu, if installed, we can switch between open apps with "Alt+Tab" (and browse between all open windows with "Super+Esc"), there are shortcuts to switch between workspaces and we can even open the menu by right-clicking the desktop (or by simply pressing the "Super" key, which will also re-activate the task bar), so by hiding the task bar one gains that extra screen space that is ever so useful with low height screens.
2d) Start-up (startup shell script)
The startup file is a shell script for whatever must be run when icewm-session starts.
Below is my current file and then comments on it:
Code:
#!/bin/sh
[ ! -d ~/.icewm ] && mkdir ~/.icewm
icewm-xdg-menu --entire-menu --with-theme-paths --icon-size 16 --theme Fedora > ~/.icewm/menu
/usr/libexec/polkit-gnome-authentication-agent-1 &
/usr/lib/xfce4/notifyd/xfce4-notifyd &
numlockx &
pcmanfm -d &
xfce4-clipman &
pnmixer &
The first part is remnant from the default file. It checks if ~/.icewm exists and creates it in case it doesn't then generates the applications menu.
You can see that I use the
Fedora icon theme and direct the generated menu to the menu file itself (not to a 'Programs' sub-menu).
icewm-xdg-menu --help will give its options.
The menu file is thus generated at login but you should run that command after installing an application too. The easy way is to add to ~/.bashrc
Code:
alias update-icewm-menu='icewm-xdg-menu --entire-menu --with-theme-paths --icon-size 16 --theme Fedora > ~/.icewm/menu'
replacing that command with the one you use in your startup file.
Next comes
polkit-gnome-authentication-agent-1. It's needed for apps, like
yumex, that uses the polkit authentication dialogue.
After each command we append an
& so the next command doesn't need to wait to be started.
Then comes
xfce4-notifyd, which is a notification daemon and is used for desktop notifications, if you want them.
Then comes
numlockx, to set NumLock to on.
Then comes
pcmanfm -d which is the pcmanfm (file manager) daemon. It's useful because pcmanfm manages auto-mounting pretty well and by starting the daemon, auto-mounting works right away:
pcmanfm is a very light-weight (quick) file manager. It can manage desktop icons too. If you want those, replace
pcmanfm -d for
pcmanfm --desktop*
* Note that if you use this you will need a custom logout command as explained in section
2g) Custom logout script on the next post.
If using Thunar as the file manager instead of PCManFM, just install
thunar-volman and it can be set to auto-mount removable drives or to start chosen applications when inserting media.
Then comes
xfce4-clipman which is a clipboard manager.
And last in that sample comes
pnmixer which is the audio volume and mixer applet.
Note that we disabled all Xfce specific configuration apps from showing in the menu. xfce4-notifyd has a configuration app, so to make it show on the menu we modify its desktop (menu) file, removing the Xfce specific category:
Code:
$ cp /usr/share/applications/xfce4-notifyd-config.desktop ~/.local/share/applications/xfce4-notifyd-config-icewm.desktop
Then edit the latter, removing:
< OnlyShowIn=XFCE;
< Categories=X-XFCE;Settings;DesktopSettings;
< X-XfcePluggable=true
and adding in their place:
> NotShowIn=XFCE;
> Categories=Settings;DesktopSettings;
This can be done similarly with any other Xfce settings applications that you may use (like for Thunar or thunar-volman).
continues on the next post...