ICEWM: El Window Manager

ICEWM



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).
  • 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.

Aspecto de ICEWM



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.


<Volver a la sección de GNU/Linux>