Manualinux
http://www.nvu.com http://www.gimp.org InicioPresentaciónActualizacionesManualesDescargasNoticiasZona WindowsEnlaces

Entornos GráficosAplicaciones

Administradores de SesionesAdministradores de VentanasEscritoriosUtilidades de Escritorio

Administradores de Ventanas - Fvwm-CrystalAdministradores de Ventanas - JWM

Administradores de Ventanas - Golem




Administradores de Ventanas - Golem




Copyright

Copyright © José Luis Lara Carrascal  2006-2011   http://manualinux.freehostia.com



Sumario

Introducción
Características
Preliminares
Instalación
Configuración
Configurar el inicio de Golem
Iniciamos Golem
Enlaces




Introducción

Golem es un administrador de ventanas muy similar a WindowMaker, incluso existe un script que permite convertir  los estilos del segundo al primero. Al estar en desarrollo hace que sea un poco más inestable que WindowMaker pero en mi opinión el soporte de Plugins lo convierte en un administrador de ventanas altamente personalizable. Quizá a los que no les guste tirar del editor de texto para configurar su entorno se les atragante un poco, pero para los que están acostumbrados a esa tarea, Golem se convierte en una perita en dulce.



Características  

* Bajo consumo de memoria
* Soporte de temas
* Soporte de atajos de teclado
* Múltiples escritorios virtuales
* Soporte de animaciones y sonido
* Soporte multipantalla Xinerama
* Plugins



Preliminares  

1) Comprobar que la ruta de instalación de los binarios del programa la tenemos en nuestro PATH


Abrimos una ventana de terminal y ejecutamos el siguiente comando,

[jose@Fedora-15 ~]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/jose/bin

Si no aparece entre las rutas mostradas el directorio /usr/local/bin, abrimos un editor de texto y añadimos lo siguiente,

#!/bin/sh

export PATH=/usr/local/bin:$PATH

Lo guardamos con el nombre variables.sh, y lo instalamos en /etc/profile.d.

$ su
# install -m755 variables.sh /etc/profile.d

Tenemos que cerrar el emulador de terminal y volverlo a abrir para que la variable de entorno aplicada sea efectiva. Es conveniente guardar una copia de este script para posteriores instalaciones de nuestro sistema, teniendo en cuenta que es el que se va a utilizar a partir de ahora en todos los manuales de esta web, para establecer variables de entorno globales, excepto en aquellas que sólo afectan al usuario, en las que se utilizará el archivo de configuración personal, ~/.bashrc.

La ventaja de utilizar el directorio /etc/profile.d es que es común a todas las distribuciones y nos evita tener que editar otros archivos del sistema como por ejemplo, /etc/profile.

2) Desinstalar versiones anteriores del programa ubicadas en el directorio /usr

Aún en el caso de que la versión a compilar la vayamos a instalar en el mismo directorio que la que proporciona la distribución, siempre se debe desinstalar previamente la versión antigua, para evitar conflictos innecesarios.



Instalación

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado Golem para la elaboración de este documento.

* GCC - (4.6.2)
* Make - (3.82)
* Automake - (1.11.1)
* Autoconf - (2.68)
* Bison - (2.5)
* Flex - (2.5.35)

Librerías de Desarrollo

* Xorg o XFree86 - (Xorg 7.6 / xorg-server 1.11.2)
   LibICE - (1.0.7)
   LibX11 - (1.4.4)
* ESD - (0.2.41)



Descarga

golem-0.0.6.tar.bz2

Optimizaciones

Golem no compila con las habituales optimizaciones que se aplican en los manuales de la web.

Extracción y Configuración  Bloc de Notas

$ tar jxvf golem-0.0.6.tar.bz2
$ cd golem-0.0.6
$ sed -i '104c/* #include <asm/system.h> */' complib/asm-i386/cl_atomic_asm.h
$ ./configure --disable-dependency-tracking --enable-sound

Explicación de los comandos

sed -i '104c/* #include <asm/system.h> */' complib/asm-i386/cl_atomic_asm.h : Soluciona un error producido por la ausencia del archivo de cabecera, /usr/include/asm/system.h. El mensaje de error mostrado en la terminal es el siguiente:

In file included from /home/jose/descargas/golem-0.0.6/complib/cl_atomic_osd.h:87:0,
                 from /home/jose/descargas/golem-0.0.6/complib/cl_atomic.h:84,
                 from cl_threadpool.c:82:
/home/jose/descargas/golem-0.0.6/complib/asm-i386/cl_atomic_asm.h:104:24: error fatal: asm/system.h: No existe el fichero o el directorio
compilación terminada.
make[2]: *** [cl_threadpool.o] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2

--disable-dependency-tracking : Acelera el tiempo de compilación.
--enable-sound : Activa el soporte de eventos de sonido

Compilación

$ make

Instalación como root

$ su
# make install

Instalación de los archivos de configuración personal en nuestro home

$ golem.install

Este comando copiará los archivos de configuración a ~/.golem y nos preguntará, en caso de que tuvieramos un archivo ~/.xinitrc o un archivo ~/.xsession si lo queremos sobreescribir para que Golem se inicie al ejecutar startx o desde XDM, en el caso del segundo.

Directorio de configuración personal

~/.golem Es el directorio de configuración personal de Golem en nuestro home.
~/.golem/mythemes Los temas que nos bajemos de la red y los originales que hayamos editado, los copiamos a este subdirectorio.
~/.golem/themes@ Enlace simbólico que apunta al directorio del sistema donde están ubicados los temas que trae por defecto el programa.
~/.golem/plugins Es el subdirectorio que contiene todos los complementos de Golem.
~/.golem/golemrc Es el archivo de configuración principal del programa.

Desinstalación como root

1) MODO TRADICIONAL

En el directorio de compilación ejecutamos el siguiente comando como root:

$ su
# make uninstall

2) MODO MANUALINUX  

El principal inconveniente del comando anterior es que tenermos que tener el directorio de compilación en nuestro sistema para poder desinstalar el programa. En algunos casos esto supone muchos megas de espacio en disco. Con el paquete de scripts que pongo a continuación logramos evitar el único inconveniente que tiene la compilación de programas, y es el tema de la desinstalación de los mismos sin la necesidad de tener obligatoriamente una copia de las fuentes compiladas.

golem-0.0.6-scripts.tar.gz

$ su
# tar zxvf golem-0.0.6-scripts.tar.gz
# cd golem-0.0.6-scripts
# ./Desinstalar_golem-0.0.6

Copia de Seguridad como root

Con este otro script creamos una copia de seguridad de los binarios compilados, recreando la estructura de directorios de los mismos en un directorio de copias de seguridad (copibin) que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de los binarios podemos copiarlo como usuario a nuestro home y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos volver a restaurar la copia, tendremos que volver a copiarlo al lugar donde se ha creado.

$ su
# tar zxvf golem-0.0.6-scripts.tar.gz
# cd golem-0.0.6-scripts
# ./Respaldar_golem-0.0.6

Restaurar la Copia de Seguridad como root

Y con este otro script (que se copia de forma automática cuando creamos la copia de respaldo del programa) restauramos la copia de seguridad como root cuando resulte necesario.

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_golem-0.0.6



Configuración de Golem  Bloc de Notas

golemrc

Es el archivo de configuración principal de Golem, se encuentra en ~/.golem/golemrc,  y en el mismo se configura el tema que vamos a cargar, el número de escritorios virtuales que queremos usar, el tipo de enfoque de las ventanas, los atajos de teclado y por último los plugins que queremos que se carguen al inicio. Hay más opciones pero éstas son las más destacables, así que voy por partes.

a) Temas

Los temas que trae por defecto están en el directorio ~/.golem/themes que es un enlace al directorio principal donde se ha instalado Golem. Los temas de usuario se instalan en el directorio ~/.golem/mythemes y para cargarlos hay que editar la sección del archivo de configuración siguiente :

#
# Include theme rcfile
#
#.include "themes/MudGolem/rc"
#.include "themes/eBlueSteel/rc"
#.include "themes/twm/rc"
#.include "themes/AbsoluteE/rc"
#.include "themes/microGUI/rc"
.include "mythemes/KristallGolem/rc"

El tema que deseemos cargar se descomenta, en este caso es el KristallGolem.

b) Escritorios Virtuales

El número de escritorios virtuales se establece de la siguiente forma:

#
# Define general options.
#
options {
    desktop_count        2;
    desktop_width        2;
    desktop_height        1;
    fullscreen_zoom        true;

    opaquemove        false;

Sólo hay que cambiar desktop_countdesktop_width para determinar el número de escritorios.

c) Atajos de teclado

Los atajos de teclado se configuran en la siguiente sección :

#
# Define hotkeys.
#
# these examples aren't mnemonic; rather they are placed to allow
# you to control all keyboard stuff from the left hand, so that
# you may leave the right hand on the mouse.  Needless to say,
# that leaves left-handers with a bit of a problem...  
#
# I have these using modifier keys that might not make sense
# depending on your system.  xmodmap(1) can be used to determine
# or modify modifier keys; on my machine Mod1 is the alt key,
# and Mod4 is my meta key (my Windows(tm) key is bound to Meta).
#
# another tip: if you're the sort who likes _lots_ of hotkeys,
# you may want to put your keys section in ~/.golem/keysrc and
# then just use a .include "keysrc" here.
#
keys {
    #
    # because key_command passes it's arg to /bin/sh, put an exec
    # in front of the program to prevent it from leaving an sh -c
    # process laying around
    #
    key_command        "q"    (Mod4Mask) "exec xterm";
    key_command          "j"    (Mod1Mask) "exec rox ~/";

(Mod4Mask) = Tecla "Windows"
(Mod1Mask) = Tecla "Alt"
(ControlMask) = Tecla "Ctrl"

Si por ejemplo queremos ejecutar Firefox con CONTR+ALT+F lo definimos de la siguiente manera :

key_command        "f"    (ControlMask) | (Mod1Mask) "exec firefox";

En Golem cuando pulsamos en el botón de maximizado de la ventana esta se maximiza al máximo eliminando los bordes de la misma, para volver al modo ventana pulsamos la combinación "windows" + z

d) Plugins

Es la última sección del archivo de configuración principal, y pongo por ejemplo el mío :

#
# Plugin loading, we include from rc files, so we don't
# make a huge mess here.  Note that plugins are operated
# on in the order that they were loaded; so, for instance,
# you should choose order of precedence by putting
# wmclass_defs after mwm_hints if you want it to override
# what mwmhints has set.
#
.include "plugins/setroot/rc"
.include "plugins/pier/rc"
.include "plugins/simple_menus/rc"
.include "plugins/pager/rc"
.include "plugins/box_iconify/rc"
.include "plugins/animations/rc"
.include "plugins/mwm_hints/rc"


# other plugins you may be interested in
#.include "plugins/sound/rc"
#.include "plugins/gnome/rc"
#.include "plugins/setroot/rc"
#.include "plugins/wmclass_defs/rc"
#.include "plugins/start_slide/rc"

Es recomendable colocar el plugin setroot en la primera línea de la lista de inicio de los plugins, para no tener problemas al cargar la imagen de fondo del tema que estemos usando.



Plugins

1) Pier


Es el equivalente al dock de Window Maker, podemos añadir lanzadores y las típicas "dockapp" o aplicaciones empotradas, un  ejemplo de archivo de configuración que es el que uso en las capturas de pantalla

#
# golem pier plugin, similar to windowmaker's dock
# or afterstep's wharf
#

load "pier" {
    param "singleclick"    "false"; # false is default
    param "nodragging"    "false"; # false is default

    param "pier" "vertical" {
        param "screen"    "0";
        param "x"    "-1";    # -1 means as far as possibile & fitting in screen
        param "y"    "0";
                        
                param "item" "launch" {
            param "cmd" "exec rox ~/";
            fileparam "pixmap" "home.xpm";
        }
                param "item" "launch" {
            param "cmd" "exec rox /mnt/win_c";
            fileparam "pixmap" "disco.xpm";
        }
                param "item" "launch" {
            param "cmd" "exec rox /mnt/win_d";
            fileparam "pixmap" "disco.xpm";
        }
                param "item" "launch" {
            param "cmd" "exec rox /mnt/cdrom";
            fileparam "pixmap" "cdrom.xpm";
        }
                param "item" "launch" {
            param "cmd" "exec rox /mnt/cd-rw";
            fileparam "pixmap" "cdrw.xpm";
        }
        param "item" "launch" {
            param "cmd" "exec mrxvt";
            fileparam "pixmap" "terminal.xpm";
        }
        param "item" "launch" {
            param "cmd" "exec firefox";
            fileparam "pixmap" "firefox.xpm";
        }

        # this is how to do wmaker-style dock apps
        #param "item" "dock" {
        #    param "cmd" "exec wmmixer -w";
        #    param "class" "wmmixer.WMMixer";
        #}
    }

    param "pier" "horizontal" {
        # default screen, x == 0
        param "y"    "-1";

        param "item" "swallow" {
            param "cmd" "exec xeyes -geometry 42x42";
            param "class" "xeyes.XEyes";
        }
        param "item" "swallow" {
            param "cmd" "exec xclock -fg black -bg darkgrey -hl red -geometry 40x40 -padding 0";
            param "class" "xclock.XClock";
        }
    }
}


Las imágenes tienen que estar en formato XPM y es recomendable colocarlas en el directorio del plugin.

2) Simple_menus

Es el menú de Golem y su edición no es nada complicado, de todas formas dejo mi menú para facilitar las cosas: rc

3) Setroot

Es el plugin encargado de seleccionar el programa que se usará para gestionar el fondo de escritorio, un ejemplo:

load "setroot" {
    #
    # here we specify how the plugin should launch an external
    # program to set the root background.  Here's how to do it
    # with wmsetbg, Esetroot, or xv.
    #

    #if you like wmsetbg
    #param "rootset_bin"        "wmsetbg";
    #param "rootset_tileflag"    "-t";
    #param "rootset_scaleflag"    "-s";

    # if you like Esetroot
    #param "rootset_bin"        "Esetroot";
    #param "rootset_scaleflag"    "-c";

    # if you use xv
    param "rootset_bin"        "fbsetbg -a";
    #param "rootset_scaleflag"    "-max";
}

En este caso he seleccionado fbsetbg, la imagen que se cargue la podemos cambiar en el directorio correspondiente del tema, de todas formas los usuarios más experimentados posiblemente elijan otras formas de cargar el fondo de pantalla. El grado de configuración al que podamos llegar con Golem dependerá de la experiencia que tengamos a la hora de trabajar con este tipo de administradores de ventanas.

En el ejemplo de las capturas de pantalla que se han hecho con el tema KristallGolem, la imagen del tema se ha cambiado por otra editando el archivo de la siguiente forma :

#
# our forplug to tell setroot what image we want on the background
#

plugdat {
    fileparam "imagefn" "1347.jpg";
}

Y colocando la misma en el directorio del tema : ~/.golem/mythemes/KristallGolem/forplug/setroot/



Configurar el inicio de Golem  

1) Para los que inician X desde terminal con el comando startx

Editamos el archivo ~/.xinitrc que se encuentra en nuestro home, si no existe lo creamos, y añadimos lo siguiente:

exec golem

Nota: Ejecutando el script golem.install no es necesario editar o crear este archivo.


2) XDM

Editamos el archivo ~/.xsession que se encuentra en nuestro home, si no existe lo creamos, y añadimos lo siguiente:

exec golem

Nota: Ejecutando el script golem.install no es necesario editar o crear este archivo.


3) GDM/KDM en Mandriva

Creamos un archivo y lo nombramos 42Golem, lo editamos y añadimos lo siguiente:

NAME:Golem
ICON=
EXEC=/usr/local/bin/golem
DESC=
SCRIPT:
exec /usr/local/bin/golem

Lo instalamos en el directorio /etc/X11/wmsession.d, y ejecutamos el comando fndSession para que genere los correspondientes archivos desktop que se crearán de forma automática en los respectivos directorios de ubicación de las sesiones de GDM y KDM.

$ su
# install -m644 42Golem /etc/X11/wmsession.d
# fndSession

Ubicación de los archivos desktop creados en Mandriva
GDM /etc/X11/dm/Sessions/42Golem.desktop
KDM /usr/share/apps/kdm/sessions/42Golem.desktop


4) GDM en Fedora

Abrimos un editor de texto y añadimos lo siguiente al mismo,

[Desktop Entry]
Encoding=UTF-8
Name=Golem
Comment=
Exec=/usr/local/bin/golem
Terminal=False
TryExec=/usr/local/bin/golem

Lo guardamos con el nombre golem.desktop, con la codificación de caracteres, UTF-8, y lo instalamos en /usr/share/xsessions.

$ su
# install -m644 golem.desktop /usr/share/xsessions

En el caso de KDM no es necesario crear ningún archivo, ya que éste se instala en Fedora con un número bastante amplio de archivos desktop configurados de los entornos gráficos más conocidos de GNU/Linux, entre los que se encuentra, Golem.

Ubicación de los archivos desktop creados y existentes (KDM) en Fedora
GDM /usr/share/xsessions/golem.desktop
KDM /usr/share/kde4/apps/kdm/sessions/golem.desktop


5) GDM en Slackware y derivados

Abrimos un editor de texto y añadimos lo siguiente al mismo,

#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
    xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap
fi

# Start the window manager:
exec /usr/local/bin/golem

          
Lo guardamos con el nombre xinitrc.golem, y lo instalamos en /etc/X11/xinit.

$ su
# install -m755 xinitrc.golem /etc/X11/xinit

En el mismo editor de texto que tenemos abierto, borramos lo anterior y añadimos lo siguiente,

[Desktop Entry]
Encoding=UTF-8
Name=Golem
Comment=
Exec=/etc/X11/xinit/xinitrc.golem
Icon=
Type=Application

Lo guardamos con el nombre golem.desktop, con la codificación de caracteres, UTF-8, y lo instalamos en /usr/share/xsessions.

$ su
# install -m644 golem.desktop /usr/share/xsessions

En el caso de KDM no es necesario crear ningún archivo, ya que éste se instala en Slackware y derivados con un número bastante amplio de archivos desktop configurados de los entornos gráficos más conocidos de GNU/Linux, entre los que se encuentra, Golem.

Ubicación de los archivos desktop creados y existentes (KDM) en Slackware y derivados
GDM /usr/share/xsessions/golem.desktop
KDM /usr/share/apps/kdm/sessions/golem.desktop


6) GDM en openSUSE

Abrimos un editor de texto y añadimos lo siguiente al mismo,

[Desktop Entry]
X-SuSE-translate=true
Encoding=UTF-8
Type=XSession
Exec=/usr/local/bin/golem
TryExec=/usr/local/bin/golem
Name=Golem
Comment=

Lo guardamos con el nombre golem.desktop, con la codificación de caracteres, UTF-8, y lo instalamos en /usr/share/xsessions.

$ su
# install -m644 golem.desktop /usr/share/xsessions

En el caso de KDM no es necesario crear ningún archivo, ya que éste se instala en openSUSE con un número bastante amplio de archivos desktop configurados de los entornos gráficos más conocidos de GNU/Linux, entre los que se encuentra, Golem.

Ubicación de los archivos desktop creados y existentes (KDM) en openSUSE
GDM /usr/share/xsessions/golem.desktop
KDM /usr/share/kde4/apps/kdm/sessions/golem.desktop


7) GDM en Debian y derivados

Abrimos un editor de texto y añadimos lo siguiente al mismo,

[Desktop Entry]
Encoding=UTF-8
Type=XSession
Exec=/usr/local/bin/golem
TryExec=/usr/local/bin/golem
Name=Golem

Lo guardamos con el nombre golem.desktop, con la codificación de caracteres, UTF-8, y lo instalamos en /usr/share/xsessions.

$ su
# install -m644 golem.desktop /usr/share/xsessions

En el caso de KDM no es necesario crear ningún archivo, ya que éste se instala en Debian y derivados con un número bastante amplio de archivos desktop configurados de los entornos gráficos más conocidos de GNU/Linux, entre los que se encuentra, Golem.

Ubicación de los archivos desktop creados y existentes (KDM) en Debian y derivados
GDM /usr/share/xsessions/golem.desktop
KDM /usr/share/kde4/apps/kdm/sessions/golem.desktop


8) Qingy

Abrimos un editor de texto y añadimos lo siguiente al mismo,

/usr/local/bin/golem

Lo guardamos con el nombre Golem, y lo instalamos en /etc/qingy/Xsessions.

$ su
# install -m755 Golem /etc/qingy/Xsessions


9) SLiM

Primero editamos el archivo /etc/slim.conf y añadimos el nombre del entorno a la lista de los que tengamos en el sistema instalados, si queremos que sea el entorno que se inicie por defecto hay que colocarlo en el primer lugar de la lista.

# Sesiones disponibles (la primera es la predefinida).
# El actual nombre de sesión es reemplazado en el login_cmd
# anterior, para que su comando de acceso pueda manejar diferentes sesiones.
# vea el archivo xinitrc.ejemplo proporcionado con el código fuente de slim.
sessions            Fluxbox,WindowMaker,Blackbox,XFce4,E17,Golem,IceWM,Openbox,ROX,Pekwm,AfterStep

Para finalizar editamos el archivo .xinitrc de nuestro home y añadimos la configuración del mismo, la variable DEFAULT_SESSION sobreescribe el entorno gráfico de inicio predefinido que pueda existir en el archivo /etc/slim.conf, permitiendo añadir el ejecutable de otro entorno que no esté configurado en el apartado anterior para ser iniciado por defecto, si queremos que sea Golem, añadimos su script de ejecución, aunque si lo tenemos configurado el primero de la lista, esto no es necesario.

# La siguiente variable define la sesión que será iniciada si el usuario
# no elige de forma explícita una sesión
DEFAULT_SESSION=golem

case $1 in
XFce4)
    exec startxfce4
    ;;
IceWM)
    exec icewm-session
    ;;
WindowMaker)
    exec wmaker
    ;;
Blackbox)
    exec startblackbox
    ;;
Fluxbox)
    exec startfluxbox
    ;;
E17)
    exec enlightenment_start
    ;;
Golem)
    exec golem
    ;;

Openbox)
    exec openbox-session
    ;;
Pekwm)
    exec pekwm
    ;;
ROX)
    exec rox-session
    ;;
AfterStep)
    exec afterstep
    ;;
*)
    exec $DEFAULT_SESSION
    ;;
esac

Con pulsar F1 ya podremos seleccionarlo de la lista e iniciarlo, si es el predefinido no es necesario seleccionarlo de la lista, se iniciará por defecto.



Iniciamos Golem  

Captura Golem-1


Captura Golem-2




Enlaces  


http://golem.sourceforge.net >> La web de Golem

http://golem.sourceforge.net/themes.html >>Temas

wm2golem-0.8.tar.gz >> Script que permite convertir temas de WindowMaker a Golem


Foro Galería Blog


Actualizado el 10-11-2011

Administradores de Ventanas - Golem

Administradores de Ventanas - Fvwm-CrystalAdministradores de Ventanas - JWM