epespad

Como configurar el gestor de ventanas IceWM como un campeón





-Intro
-Lo que hace falta
-Configurando
-Más configuraciones y terminando






Intro

Para los que llevan poco tiempo en Linux - GNU/Linux, IceWM es un gestor de ventanas bastante liviano y funcional, un gestor de ventanas es el software que se encarga de manipular las aplicaciones abiertas realizando las acciones de maximizar, minimizar, cerrar (y dejar sticky según el caso) "dibujando" el borde y botones de la ventana abierta.

ventanas

En los entornos conocidos (Kde, Gnome, Cinnamon entre otros) el gestor de ventanas va acompañado de otros programas que realizan diversas tareas, tales como proporcionar una barra de tareas (panel) colocar iconos en el escritorio, gestionar la energía, etc.

IceWM además de manipular las ventanas, también proporciona un panel, un menú de aplicaciones y una bandeja del sistema (system tray), todo en un ejecutable de 948 K





Lo que hace falta

Desde luego que si IceWM fuera completo y facilmente configurable (visto desde el usuario final) no estaría haciendo este post, así que si no le tenés miedo a lo nuevo, querés que tu máquina vaya más rápido, o por cualquier otro motivo, este es tu momento.

Los paquetes a instalar son:

icewm: obvio.
nitrogen: para establecer un fondo de pantalla en el arranque.
blueman: en caso de tener bluetooth.
numlockx: para encender el teclado numérico al arrancar (opcional).
menu: para que icewm encuentre el software instalado y evitar el pánico al no encontrar ningún programa en el menú programas (Debian y derivadas).
icewm-themes: paquete con temas adicionales para icewm (opcional).
algo de tiempo: no more.

Los primeros 6 items se pueden instalar desde Synaptic (Debian y derivadas), el gestor de software de tu distro o desde la linea de comandos si te gusta hacerte el banana (va con onda no se enojen) en tal caso deben escribir

apt-get -y install icewm icewm-themes nitrogen blueman numlockx menu

Desde luego que para instalar deben tener permisos de root.




Configurando

Esta es la parte más tediosa, ya que toda la configuración es a través de archivos de texto, pero trataré de hacerlo lo más simple posible en esta imagen:

configuracion de icewm


Los archivos se encuentran dentro de la carpeta .icewm del directorio HOME del usuario:

Como configurar el gestor de ventanas IceWM como un campeón


keys: sirve para mapear las teclas multimedia y atajos.
menu: para el menú de aplicaciones.
preferences: configuración general.
prefoverride: para modificar las tipografías.
startup: lo que se va a ejecutar al iniciarse icewm.
toolbar: para los atajos del panel (el viejo inicio rápido de Windows).
winoptions: para modificar el comportamiento de alguna aplicación en particular.
theme: archivo generado por icewm, sirve para cargar el último tema establecido.


Detallar todas las opciones posibles de cada uno de los archivos sería excesivo, así que iremos a los principales:

menu y toolbar

Gestor

Como se podrá notar cada entrada de menú tiene cuatro columnas:

prog "Texto que tendrá en el menú" icono_a_usar ejecutable

la primer columna indica que se trata de un programa (prog) también está disponible menu (para armar un submenú) y separator (para dibujar un separador).

En caso de armar un submenú en el panel deberían agregarle un ícono para encontrarlo rápido, por ej:

menu "juegos" joystick_48x48 
{
    prog  "Torus Trooper"  torus-trooper_32x32   torus-trooper
}



preferences

Tiene una enorme cantidad de opciones, pero la que la mayoría de los mortales utilizaría son:

Win95Keys Para indicar si se tiene las teclas de Windows (lo más probable).
UseMouseWheel Si el mouse tiene rueda (igual que arriba).
MenuMouseTracking Esto es para no tener que hacer click cada vez que se quiera activar un submenú (conviene activarla).
ShutdownCommand Comando que se usará para apagar el sistema, ej: "sudo halt"
RebootCommand Comando que se usará para reiniciar el sistema, ej: "sudo reboot"
TaskBarShowTray Indica si se debe mostrar o no la bandeja del sistema.
TaskBarDoubleHeight Para tener un panel con el doble de altura.
SubmenuMenuActivateDelay Cuanto va a tardar en milisegundos en activarse un submenú cuando el puntero del mouse esté
encima de este (solo tiene efecto si MenuMouseTracking está activado).
TaskBarShowWorkspaces Es para mostrar los escritorios virtuales (solo si la siguiente opción no está vacía).
WorkspaceNames Nombre y/o número de escritorios, el nombre de cada uno debe ir entre comillas y separados por comas.
OpaqueMove y OpaqueResize Indica se muestra el contenido de la ventana al moverse o cambiarse de tamaño (en todo caso
muestra un contorno).

Acá va un ejemplo (el que yo uso en este caso):

Win95Keys = 1
UseMouseWheel = 1
MenuMouseTracking = 1

ShutdownCommand="sudo halt"
RebootCommand="sudo reboot"

TaskBarShowTray = 1
TaskBarDoubleHeight = 0

DoubleBuffer=1

SubmenuMenuActivateDelay=1
MenuActivateDelay=1
ToolTipDelay = 200  

TaskBarShowWorkspaces = 1
WorkspaceNames = " Desk. 1 "," Desk. 2 "

OpaqueMove=0
OpaqueResize=0


startup

Aquí se define que programas/utilidades se cargarán al arrancar icewm, básicamente es un script, dejaré el que uso como referencia:

#!/bin/bash

nvidia-settings -l
#xcompmgr &
nitrogen --set-scaled Documentos/media/img/tech/Dreamcast-set-orange.png
numlockx on
setxkbmap es
hexchat --minimize=2 &
#pidgin &
nm-applet &
blueman-applet &
xset -dpms

exit


La linea que no se quiera ejecutar temporalmente puede ir forma de comentario (insertando el caracter numeral al principio) con respecto a algunos comandos:

setxkbmap es Sirve para establecer el idioma español en el teclado.
xset -dpms Sirve para quitar el ahorro de energía del monitor, para activarlo se usaría +dpms
nm-applet Carga el gestor de redes (asumiento que está instalado network-manager-gnome).
xcompmgr & Sirve para dotar a icewm de una composición de escritorio (en este caso no lo estoy usando).


prefoverride

Sirve para cambiar el tipo de letra de las distintas partes de IceWM, ignorando lo que establezca cada tema, su formato es:

componente="tipografía:tamaño:peso"  
Ej: ClockFontNameXft="Arial:size=16:bold"



winoptions

Modifica el comportamiento de alguna aplicación en particular (tamaño, ubicación...) su formato es:

ejecutable.TituloQueTieneEnLaVentana.propiedad: valor
Ej: hexchat.HexChat.allWorkspaces: 1 



keys

Uno de los más útiles y divertidos (para mi) donde se establecen los atajos del teclado, su formato es:

key  "tecla/combinacion de teclas"  programa a ejecutar 

Acá dejo el que estoy usando actualmente:

key  "Shift+F1"                    icehelp  /usr/share/doc/icewm-common/html/icewm.html
key  "F1"                          xman -geometry 200x200+5+5
key  "F5"                          sudo cpu_speed c
key  "F6"                          sudo cpu_speed o 
key  "F7"                          sudo cpu_speed p 
key  "F8"                          cpuinfo.sh

key  "XF86AudioPlay"               qasmixer -D hw:0
key  "Shift+XF86AudioPlay"         vlc
key  "Ctrl+XF86AudioPlay"          clementine

key  "XF86AudioRaiseVolume"        amixer set Master 2dB+
key  "Shift+XF86AudioRaiseVolume"  amixer set Line 2dB+
key  "XF86AudioLowerVolume"        amixer set Master 2dB-
key  "Shift+XF86AudioLowerVolume"  amixer set Line 2dB-
key  "XF86AudioMute"               amixer set Master 0%
key  "Shift+XF86AudioMute"         amixer set Line 0%

key  "XF86Mail"                    thunderbird
key  "XF86HomePage"                firefox
key  "XF86Favorites"               libreoffice
key  "XF86Search"                  gnome-terminal --hide-menubar -t "Gestion de procesos" --geometry=110x30+290+200 -e top

key  "Alt+Ctrl+t"                  gnome-terminal
key  "Super+e"                     nemo --no-desktop

key  "Print"                       gnome-screenshot
key  "Pause"                       xset dpms force off


Los asignados desde F5 a F8 son scripts que hice para modificar el modo de trabajo del micro
Si tienen alguna duda sobre un tecla en particular, pueden contar con el comando xev, les dirá con lujo de detalles que tecla presionaron:

Configuracion






Más configuraciones y terminando

Aunque ya tendremos IceWM instalado y funcionando, quedan detalles por pulir:


Apariencia de las aplicaciones:
En un entorno de escritorio moderno todo se verá con un aspecto homogeneo, aquí los seteos los tendremos que hacer a mano (si te gusta cambiar la apariencia de las aplicaciones frecuentemente lo lamentarás) como es sabido no hay una sola librería gráfica en el SO del pingüino, así que nos encontraremos con estas tres principalmente:

Qt: Aplicaciones Kde principalmente.
Gtk2: Aplicaciones usadas en Gnome 2
Gtk3: Aplicaciones de Gnome 3

Si bién esta fue una definición rápida, también hay que decir que es verdadera hasta cierto punto, ya que hay programas que están escritos en Qt y no son hechos explicitamente para Kde (cdcat por ejemplo) o que son de Gnome y cambiaron de Gtk2 a Gtk3 (gedit por ej) o que están escritas en Gtk2 y corren en Gnome 3 (Gimp por ej).

Para cambiar la apariencia de los programas tendremos a mano:
gtk-chtheme: Para cambiar la apariencia de aplicaciones Gtk2
qt-config: Para cambiar las aplicaciones Qt/Kde

en el caso de Gtk3 tendremos que editar o crear si no existe el archivo $HOME/.config/gtk-3.0/settings.ini (en el caso mío
/home/abel/.config/gtk-3.0/settings.ini )

gestor de ventanas
Modificando la apariencia de Gtk3 (izquierda) y Gtk2 (derecha)



Comandos que requieren permisos especiales

Es probable que se necesite ejecutar algunos comandos con permiso de root (controlar el micro, reiniciar o apagar por ej) y puede ser molesto escribir nuestra contraseña a cada rato, pero podremos editar (como root) el archivo /etc/sudoers.d/tu_login_de_usuario con el siguiente contenido:

[sudo] password for abel: 
Defaults  !root_sudo 
User_Alias    USERS = abel
Cmnd_Alias    SHT = /sbin/shutdown,/sbin/halt,/sbin/reboot,/usr/sbin/pm-hibernate 
Cmnd_Alias    ADM = /usr/sbin/synaptic,/usr/sbin/cpu_speed
USERS         ALL = NOPASSWD: SHT,ADM


SHT y ADM se pueden cambiar por el alias que quieras o usar un solo alias, y algo a tener en cuenta es establecer el permiso de lectura/escritura solo para el usuario root:
chmod 600 /etc/sudoers.d/tu_login_de_usuario

Ahora podrás ejecutar sudo tu_comando_de_root sin que te pida el password. Ojo, es sólo para algunos comandos, no abuses de esto!


La yapa

Si en tu máquina tenés la placa Encore ENLTV te dejo un par de tips para tener algunas cositas más funcionales

IceWM


El cambio de TV a radio / radio a TV: Con el software original se puede hacer desde el control remoto, pero en Linux también lo podremos hacer agregando este atajo al archivo keys de IceWM:
key  "F12"  tv-radio.sh

Aquí tenemos el atajo para hacer el cambio desde el teclado (mucho más rápido que con el software original) ahora nos queda mapear el control remoto, para esto nos usaremos (tal vez nuevamente) el programa xev y ver los keycodes que genera el control remoto.

Luego para el mapeo usaremos el programa xmodmap, que será llamado desde el archivo startup de icewm, agregando esta línea:
xmodmap /home/abel/.xmodmap 
Desde luego deben cambiar mi nombre de login por el que usen ustedes u.u

El archivo .xmodmap que estoy usando es el siguiente:

keycode 220 = s
keycode 150 = XF86Sleep
keycode 175 = F12
keycode 147 = q


Básicamente son las teclas del control remoto que no terminan de ser interpretadas, sólo queda un detalle:
de donde saco el script tv-radio.sh?
respuesta: lo dejaré para descargar más abajo
una vez que lo hayas descargado y descomprimido te queda copiarlo en la carpeta bin personal que sería /home/tu_usuario/bin (si no existe sólo hay que crearla) finalmente hay que darle los permisos de ejecución.

En mi caso estoy usando gnomeradio y tvtime para la radio y televisión respectivamente, en caso que estés usando otro programa deberás cambiarlo desde el script (no es dificil


Esto es todo por ahora, dejaré un link con la carpeta de configuración lista para ser usada, luego de descomprimirla en tu directorio HOME deben renombrarla de icewm a .icewm (deben agregar el punto al principio) y hacer los retoques que hagan falta antes de arrancar con IceWM, en el caso mío estoy usando Mint 17.2 y por lo tanto hay aplicaciones de Gnome instaladas por defecto, en caso de estar usando Kubuntu tendrán que cambiar/agregar entradas en el archivo menu y toolbar (por ej. cambiar gnome-screenshot por ksnapshot).

Carpeta de configuración: https://www.dropbox.com/s/hy3fvnas0046ppd/icewm4mint17.tar.bz2?dl=0

tv-radio.sh: https://www.dropbox.com/s/pzysvkcgg345r66/tv-radio.sh.tar.bz2?dl=0


4 comentarios - Como configurar el gestor de ventanas IceWM como un campeón

ozzylink +1
Hey yo tengo una placa de TV encore por alli, la voy a buscar definitivamente. Gracias y buen tuto
maverickmcl +1
tenia algunos problemas con las teclas multimedia ese detalle de "xev" me ha salvado el culo