ICEWM: El Window Manager
Qué es ICEWM (Ice Window Manager)
ICEWM es un gestor de ventanas para X Window al igual que lo son KDE, GNOME, AfterStep o WindowMaker. La principal diferencia de ICEWM con los demás gestores de ventanas es que ofrece una gran cantidad de funcionalidades y posibilidades con un consumo de recursos y espacio en disco mínimos.
Usar ICEWM tiene una gran cantidad de beneficios para nosotros y nuestra máquina:
- Barra de menú (toolbar) totalmente configurable, incluyendo la posición de la misma, los iconos de acceso directo que queremos que aparezcan en ella, la forma en que aparecen las diferentes ventanas en la barra de tareas, reloj, notificador de nuevos mensajes de correo en el buzón, gráficas de uso de CPU y de la red y el modem en la misma barra, etc.
- Soporte de escritorios virtuales.
- Posibilidad de definir combinaciones de teclado para lanzar las aplicaciones más habituales.
- Posibilidad de indicar que determinadas aplicaciones se abran en determinados escritorios virtuales. Por ejemplo, si queremos que Netscape se abra siempre en el escritorio 2 cuando lo lancemos en cualquier otro escritorio y además cambiemos a él. Esto permite abrir cada aplicación en el lugar que más nos interese sin tener que ir moviéndola a otros escritorios.
- Posibilidad de que determinadas aplicaciones no aparezcan en la barra de tareas ni podamos cambiar a ellas con ALT+TAB. Esto es útil si por ejemplo ejecutamos habitualmente algún monitor del sistema como Xosview o GKRellM y no queremos que aparezca en la barra de tareas.
- Menúes totalmente configurables vía edición manual de ficheros o vía KIceMenu.
- Iconos modificables por cualquier otro set (formato xpm).
- Configuración de ICEWM editable desde ficheros de configuración o modificable mediante utilidad de configuración (IcePref o IceConf).
- Soporte para Themes (http://icewm.themes.org).
- Consumo de memoria mínimo: apenas de 1 a 2 MB de memoria frente a los cerca de 15MB necesitados por KDE. Esto lo convierte en un WM realmente ligero
- Consumo de disco mínimo: 700KB de espacio en disco una vez instalado.
- Estabilidad total: esto es lo más importante cuando uno trabaja con X Window. Disponer de un entorno estable y sin florituras gráficas y sonoras (pese a que ICEWM puede ser todo lo bonito que queramos que sea) es ideal para que nuestro equipo funcione siempre con seguridad y dando el máximo rendimiento posible. El consumo de recursos y su estabilidad es tal que Linus Torvalds en persona (en nombre de su empresa TRANSMETA, la compañía fabricante de chips para sistemas portátiles y embebidos) incluye ICEWM como Window Manager en su MIDORI LINUX, un Linux reducido especialmente creado para dispositivos portátiles y embebidos (móviles, PDAs, portátiles, etc.).
- Una versión de Icewm llamada icewm-gnome con soporte de los estándares de Gnome, trabajando con jpgs en lugar de xpms, etc.
Aspecto de ICEWM
El aspecto inicial de ICEWM es el que podéis ver en la primera captura de esta página (debajo del título de la misma), pero puede ser variado totalmente gracias al soporte de themas, fondos e iconos.
Dónde conseguir ICEWM
Tenemos diferentes maneras de conseguir ICEWM e instalarlo en nuestro equipo. La primera es, obviamente, la página Web de ICEWM en:
La dirección directa para su descarga es:
Bastará con descargar el paquete tar.gz, rpm o deb e instalarlo de la manera habitual en nuestra distribución:
DEB: dpkg -i icewm-version.deb RPM: rpm -i icewm-version.rpm TGZ: tar xvzf icewm-version.tar.gz cd icewm-version ./configure make make install
En la mayoría de los casos no será necesario acudir a la página Web de ICEWM ya que ICEwm está incluido en los CDs de la mayoría de distribuciones de Linux existentes, así como en repositorios de red:pasos
[root@compiler:~]# apt-cache search icewm | grep -i icewm icemc - Editor for IceWM menus icewm-gnome-support - GNOME support files for IceWM icewm-themes - Theme files for the Ice Window Manager icewm - Maravilloso gestor de ventanas parecido a Win95-OS/2-Motif icewm-common - Maravilloso gestor de ventanas parecido a Win95-OS/2-Motif icewm-experimental - Maravilloso gestor de ventanas parecido a Win95-OS/2-Motif icewm-lite - Maravilloso gestor de ventanas parecido a Win95-OS/2-Motif
Para usar ICEWM deberemos tener el paquete ICEWM ya instalado. Si el paquete nos pide alguna dependencia (es decir, si necesita otro paquete para funcionar, como libxpm4 y xlib6g) dejamos que Debian lo instale o lo instalamos desde el CD en el caso de otras distribuciones. Otro paquete interesante es icewm-themes, que contiene themes para modificar el aspecto de IceWM.
Cómo le digo a XWindow que use ICEWM
El siguiente paso es decirle a X Window que queremos utilizar Icewm cuando hacemos login con un determinado usuario. Para eso tan sólo hay que modificar un fichero de configuración al que añadiremos el comando "exec icewm".
Si nosotros entramos a XWindow con el comando startx, el fichero a modificar será el .xinitrc de nuestro directorio HOME, mientras que si nuestro sistema arranca directamente en X Window (por kdm, gdm o xdm) el fichero a modificar será el .xsession (si no existe alguno de los 2 ficheros bastará con crearlos y hacer un chmod +x nombrefichero). Además ambos ficheros tienen el mismo formato:
Ejemplo de fichero .xinitrc o .xsession:
export LANG=es_ES exec icewm
Si queremos lanzar alguna aplicación desde el mismo arranque de ICEWM lo podemos hacer en este fichero, antes de lanzar el Window Manager:
export LANG=es_ES exec gkrellm & exec icewm
En el anterior ejemplo cada vez que entremos en ICEWM se lanzará automáticamente el monitor de CPU/Red/Disco GKRELLM desde el inicio.
Configuración manual de ICEWM
La configuración de ICEWM se realiza principalmente de 2 maneras diferentes. Por una parte podemos editar a mano los sencillos ficheros de configuración que tiene Icewm para personalizarlo, y por la otra podemos usar las diferentes herramientas de configuración que algunos usuarios de ICEWM han programado para realizar esta tarea gráficamente bajo XWindow.
Para empezar trataremos la configuración manual, ya que es muy sencilla y muchas veces no hará falta utilizar una herramienta de configuración para realizar cambios en los sencillos ficheros que ICEWM utiliza.
Todos los ficheros de configuración se emplazan dentro del directorio .icewm en nuestro HOME de usuario. Los ficheros y directorios más habituales dentro de $HOME/.icewm son:
menu -> Fichero de configuración del menú desplegable. preferences -> Configuración general de ICEWM. toolbar -> Aplicaciones de la barra de tareas. winoptions -> Opciones para las ventanas de los programas. keys -> Atajos de teclados para lanzar aplicaciones. icons/ -> Directorio donde guardar los iconos para icewm. themes/ -> Directorio donde meter nuevos themes. wallpapers/ -> Directorio donde almacenar fondos de escritorio.
Podemos crear el directorio .icewm a mano y crear los ficheros de configuración desde cero, o (mucho más recomendable) crear el directorio y copiar los ficheros de configuración por defecto de ICEWM (en /usr/lib/X11/icewm/ o /usr/X11R6/lib/X11/icewm/, según usemos Debian u otra distribución diferente) a nuestro directorio, para contar con unas "plantillas" o ficheros por defecto:
cd mkdir .icewm cd .icewm cp /usr/lib/X11/icewm/* -R .
De esta manera podremos sencillamente editar y modificar los ficheros existentes. A continuación veremos qué hace y cómo se modifica cada uno de los ficheros de este directorio. Cabe destacar que ante cualquier cambio de alguno de estos ficheros de configuración no es necesario que salgamos y volvamos a entrar en las X para que surtan efecto, basta con ir al menú de ICEWM y seleccionar LogOut → Restart ICEWM para que los cambios se realicen. También podemos pulsar CTRL+ALT+SUPRIMIR (esto no reiniciará la máquina sino que aparecerá un menú especial de ICEWM) y seleccionar RESTART en el menú que aparece.
Fichero keys
El fichero keys dentro del directorio .icewm permite especificar accesos directos de teclado a aplicaciones de forma que podamos lanzar aquellas que más utilicemos directamente desde el teclado sin tener que buscarlas en el menú.
Veamos un ejemplo de fichero keys:
key "Alt+Ctrl+t" wterm -bg black -fg gray -sr -fn 7x13 -g 80x25 key "Alt+Ctrl+n" netscape -noraise -remote openBrowser key "Alt+Ctrl+m" wterm -g 84x40+135+40 -sr -bg black -fg gray -fn 9x15 -e mutt key "Alt+Ctrl+s" wterm -g 84x40+135+40 -sr -bg black -fg gray -fn 9x15 -e slrn -n key "Alt+Ctrl+x" xchat key "Alt+Ctrl+g" gkrellm key "Alt+Ctrl+l" lyx
Con el anterior fichero (y tras hacer un restart de ICEWM con la opción del menú Logout → Restart ICEWM si acabamos de modificarlo, para que lea los cambios del fichero sin tener que salir de X), cuando deseemos lanzar una terminal de texto bastará con pulsar CTRL+ALT+t, por ejemplo.
Fichero winoptions
El fichero winoptions es muy interesante, ya que con él podemos:
- Decirle a una determinada aplicación que arranque en un escritorio virtual determinado. Por ejemplo, que cuando lancemos netscape (ya sea con el teclado o con el menú, o mediante otro programa), se abra en el escritorio virtual 2 para no tapar nuestro trabajo en el 1.
- Decirle a ICEWM que no queremos que una determinada aplicación abierta salga en la barra de tareas, o que no podamos hacer alt+tab a ella (por ejemplo, para aplicaciones como players de CD que tenemos puestos en formato SIEMPRE ENCIMA, y que no nos sirve de nada que aparezcan en la barra de tareas).
- Definir las características de ciertas aplicaciones (maximizable o no, minimizable o no, etc.
Veamos un ejemplo de fichero winoptions:
xchat.workspace: 0 Netscape.workspace: 1 xterm.icon: xterm Gimp.toolbox.fMaximize: 0 Gimp.toolbox.dMaximize: 0 Gimp.toolbox.fResize: 0 Gimp.toolbox.dResize: 0 gkrellm.ignoreWinList: 1 gkrellm.ignoreTaskBar: 1 gkrellm.ignoreQuickSwitch: 1 gkrellm.workspace: 0 alarmd.ignoreWinList: 1 alarmd.ignoreTaskBar: 1 alarmd.ignoreQuickSwitch: 1 alarmd.workspace: 3 korganizer.workspace: 3 lyx.workspace: 2 soffice.workspace: 3
Con los anteriores comandos le decimos a ICEWM (entre otras cosas), que queremos que abra Netscape siempre en el workspace 1, Lyx en el 2, StarOffice en el 3, y que no queremos que gkrellm aparezca en la barra de tareas ni podamos cambiar a ella con alt+tab.
Fichero toolbar
El fichero toolbar indica los accesos directos a las aplicaciones que aparecerán en la barra de tareas de Icewm. Por ejemplo:
prog WTerm xterm wterm -fg gray -bg black -fn 7x13 -sr -g 80x25 prog KWrite kwrite kwrite prog Mutt kmail wterm -g 84x40+115+40 -bg black -fg gray -fn 9x15 -e mutt prog Slrn kmail wterm -g 84x40+115+40 -bg black -fg gray -fn 9x15 -e slrn -n prog Netscape netscape netscape prog XChat commandl xchat
El formato del fichero es:
prog NOMBRE fichero_icono comando
La primera línea de nuestro fichero de ejemplo anterior define el programa Wterm con el icono xterm (en .icewm/icons/ , en formato xpm, el fichero xterm_16x16.xpm), y cuyo comando asociado cuando hacemos click en él es todo el resto de la línea (es decir, lanza wterm con unas opciones concretas de colores y fuentes).
Fichero menu
El fichero menu describe las diferentes entradas de aplicaciones que encontraremos en la barra de tareas de ICEWM cuando pulsemos sobre el botón que aparece a la parte izquierda de la barra (al estilo del botón de Inicio de otros S.O.).
El formato de este fichero es similar al de toolbar, excepto que podemos añadir separadores, y crear nuevas entradas de menú. Por ejemplo:
prog WTerm xterm wterm -fg gray -bg black -fn 7x13 -sr -g 80x25 prog Netscape netscape netscape prog Xchat xisp xchat prog XNetload xterm xnetload -i ppp0 separator menu Aplicaciones folder { menu Editores folder { prog kwrite kwrite kwrite prog joe joe xterm -e joe prog StarOffice pdf /opt/Office52/program/soffice prog LyX lyx lyx } menu Graficos folder { prog Gimp gimp gimp prog XV xv xv prog XPaint xpaint xpaint } prog StarOffice pdf soffice prog "Acrobat Reader" pdf acroread prog "PDF Viewer" pdf xpdf prog "KGhostview" ghostview kghostview } menu Juegos folder { prog kmahjongg kmahjongg kmahjongg prog XBill xbill xbill } menu Internet folder { prog "Netscape Navigator" netscape netscape prog Lynx lynx xterm -e lynx prog KvIRC kvirc kvirc prog xchat xchat xchat prog "Netscape Messenger" netscape netscape -messenger } menu Sistema folder { prog "Control Panel" redhat control-panel prog xload xload xload prog xosview xosview xosview prog xnetload xnetload xnetload ppp0 } separator prog IcePref xterm icepref prog KIceMenu xterm kicemenu
Como puede verse, este fichero consta de líneas prog con el mismo formato que las de toolbar, y con algunas opciones Extra como separator (un separador entre opciones, que aparece como una barrita horizontal) y menu, que permite añadir una nueva entrada de menú (un submenú) introduciendo nuevos programas entre llaves { y }.
Nótese que podemos poner nombres de aplicaciones más largos de una palabra (poniéndolos entre comillas), y que si una de las aplicaciones que añadimos no está disponible en el sistema, la opción no aparecerá al entrar en el menú aunque la hayamos introducido en el fichero. Esto permite añadir montones de programas (aunque no los tengamos instalados) y que vayan apareciendo o no en el futuro conforme los vamos instalado o desinstalando.
Finalmente, destacar que existen aplicaciones que permiten editar los menues de Icewm de forma gráfica:
icemc - Editor for IceWM menus
Fichero preferences
El último de los ficheros a considerar es el más extenso y contiene TODAS las opciones generales de icewm, como por ejemplo el color o el gráfico de fondo, el comportamiento de las ventanas, el formato del reloj, el número de escritorios virtuales, si queremos que icewm nos avise del nuevo correo y nos diga cuántos mensajes nuevos hay en el buzón, si queremos o no un visualizador de CPU y de acceso a red o modem en la taskbar, el theme por defecto, etc.
Veamos algunas de las opciones de .icewm/preferences, sólo a título de ejemplo:
#--- El fichero empieza con opciones sobre las ventanas: --- # Focus windows by clicking ClickToFocus=1 # 0 / 1 # Raise windows when focused RaiseOnFocus=1 # 0 / 1 # Focus window when client area clicked FocusOnClickClient=1 # 0 / 1 # etc. etc. etc. #--- También hay opciones sobre la barra de tareas: --- #--- Hay decenas de opciones, veremos tan sólo alguna de ellas --- # Show task bar ShowTaskBar=1 # 0 / 1 # Task bar at top of the screen TaskBarAtTop=0 # 0 / 1 # Auto hide task bar after delay TaskBarAutoHide=0 # 0 / 1 #--- Otras opciones interesantes son las de los comandos: aqui --- #--- indicamos qué comandos hay que ejecutar cuando pulsamos sobre --- #--- shutdown o reboot en el menú de CTRL ALT SUPR, por ejemplo --- # Command to cancel logout LogoutCancelCommand="" # Command to shut down the system ShutdownCommand="sudo shutdown -h now" # Command to reboot the system RebootCommand="sudo shutdown -r now" # Command to run when CPU status monitor is clicked CPUStatusCommand="xosview"
Existe una mayor cantidad de opciones, y todas ellas están comentadas en el mismo fichero. Bastará con cambiar cualquiera de ellas y reiniciar ICEWM con su opción de RESTART para que se aplique el cambio.