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

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-2023   http://manualinux.es



Sumario

Introducción
Características
Preliminares
Instalación
Configuración de Golem
1) El archivo de configuración principal
2) Editar el menú de aplicaciones
3) Configurar la minimización de las ventanas
4) Configurar las opciones del paginador
5) Configurar el dock de Golem
6) Configurar el plugin setroot
7) Aplicaciones al inicio de Golem
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. El programa no soporta fuentes suavizadas ni codificación de caracteres UTF-8, lo que supone un inconveniente para los usuarios que tengan las locales establecidas en es_ES.UTF-8.

Desde el 22-11-2018, se incluye una versión personal, adaptada a un sistema de 64 bits multiarquitectura, incluyendo las cabeceras de un kernel de 32 bits, ya que el paquete no es compatible con las cabeceras de un kernel de 64 bits, a la hora de compilarlo. Necesitaremos las librerías de 32 bits de las dependencias requeridas para poder compilarlo. El soporte de ESD para los eventos de sonido, es posible, que los usuarios de 64 bits no deseen compilarlo, ya que su uso es opcional. Para que el programa se ejecute correctamente debe de haberse compilado la dependencia LibX11 sin optimizaciones.



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-18 ~]$ 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 -c "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 - (13.1.0)
* Make - (4.4.1)
* Automake - (1.16.5)
* Autoconf - (2.71)
* Bison - (3.8.2)
* Flex - (2.6.4)

Librerías de Desarrollo

* Xorg - (7.7 / xorg-server 21.1.8)
   LibICE - (1.1.1)
   LibX11 - (1.8.6)
* ESD - (0.2.41)



Descarga

golem-0.0.6.tar.xz

Firma Digital  Clave pública PGP

golem-0.0.6.tar.xz.asc

Verificar la firma digital del paquete

$ gpg --import manualinux.asc
$ gpg --verify golem-0.0.6.tar.xz.asc golem-0.0.6.tar.xz

Optimizaciones

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

Parámetros adicionales

Establecer la variable de entorno de uso de compilador en modo de 32 bits, en sistemas de 64 bits multiarquitectura
$ export CC="gcc -m32"

Parámetros adicionales de eliminación de errores específicos en el proceso de compilación
GCC 10 y superiores
$ export CC+=' -fcommon'

Extracción y Configuración  Bloc de Notas Información general sobre el uso de los comandos

$ tar Jxvf golem-0.0.6.tar.xz
$ cd golem-0.0.6
$ sed -i '104c/* #include <asm/system.h> */' complib/asm-i386/cl_atomic_asm.h
$ export CPPFLAGS=-I$PWD/include
$ ./configure --enable-sound --mandir=/usr/local/share/man --build=i686-pc-linux-gnu

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

export CPPFLAGS=-I$PWD/include : Establecemos la variable de entorno correspondiente en sistemas de 64 bits multiarquitectura, para que se utilicen en el proceso de compilación, las cabeceras de un kernel de 32 bits, incluidas en el paquete, en lugar, de las cabeceras del kernel de 64 bits proporcionadas por la distribución de turno, ubicadas en /usr/include.

--enable-sound : Activa el soporte de eventos de sonido (opcional).

--mandir=/usr/local/share/man : Instala la página de manual del programa en /usr/local/share/man, en lugar de /usr/local/man.

--build=i686-pc-linux-gnu : Requerido para la compilación en sistemas de 64 bits multiarquitectura.

Compilación

$ make

Instalación como root

$ su -c "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.

Estadísticas de Compilación e Instalación de Golem

Estadísticas de Compilación e Instalación de Golem
CPU AMD Ryzen 5 5500
MHz 3593.246 (BoostMax=4457.000)
RAM 32 GB
Sistema de archivos XFS
Versión del Kernel 6.4.1-ml SMP PREEMPT_DYNAMIC x86_64
Modo de frecuencia de la CPU powersave (balance performance)
Versión de Glibc 2.37
Enlazador dinámico GNU gold (Binutils 2.40) 1.16
Compilador GCC 13.1.0
Tiempo de compilación 4"
Archivos instalados 288
Mostrar/Ocultar la lista de archivos instalados
Ocupación de espacio en disco 2,8 MB

Consumo inicial de CPU y RAM de Golem

Consumo inicial de CPU y RAM de Golem
Programa
CPU RAM
golem 0 % 3,8 MB
Para medir el consumo de CPU se utiliza el programa top, y para medir el consumo de RAM se utiliza el script de Python, ps_mem.py, creado por Pádraig Brady, que podemos encontrar en este enlace.

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.
~/.golem/autostart Un ejemplo de script de inicio de aplicaciones, cuya configuración explico más abajo.

Desinstalación como root

1) MODO TRADICIONAL

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

$ su -c "make uninstall"

2) MODO MANUALINUX  

El principal inconveniente del comando anterior es que tenemos 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

1) El archivo de configuración principal  

1a) ~/.golem/golemrc


Es el archivo de configuración principal de Golemen 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.

#
# 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"

1b) 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.

1c) Los escritorios virtuales y el aspecto visual de la ventana al desplazarla

El número de escritorios virtuales y la opción de desplazamiento opaco de la ventana se configuran en esta sección:

    desktop_count        2;
    desktop_width        2;
    desktop_height        1;
    fullscreen_zoom        true;
    opaquemove        false;

    # use to change the color/width of the line used to draw
    # winboxes.
    #linewidth        3;
    #linefg            "green";

Definición de los elementos configurables relativos a los escritorios virtuales y el aspecto visual de la ventana al desplazarla
desktop_count      2; Define el número de escritorios virtuales a utilizar. 
desktop_width      2; Define el número de vistas (viewports) proporcionales a la resolución de la pantalla por las que se multiplicará el espacio disponible para un escritorio virtual, en horizontal.
desktop_height      1; Define el número de vistas (viewports) proporcionales a la resolución de la pantalla por las que se multiplicará el espacio disponible para un escritorio virtual, en vertical. 
fullscreen_zoom        true; Si lo establecemos en false, las ventanas no se podrán poner a pantalla completa.
opaquemove        false; Si lo establecemos en true, se mostrará el contenido de las ventanas al desplazarlas. Por defecto se muestra sólo el contorno de la figura geométrica de la ventana.
linewidth        3; Define la anchura en píxeles de la línea del borde de la figura geométrica de la ventana que es visible cuando la desplazamos y la opción "opaquemove" está establecida en false.
linefg             "green"; Define el color de la línea del borde de la figura geométrica de la ventana que es visible cuando la desplazamos y la opción "opaquemove" está establecida en false.

1d) El modelo de enfoque de las ventanas

Si no nos queremos volver locos con el tradicional "el enfoque sigue al ratón", dejamos este apartado bien claro, con la opción que no está comentada.

    # various focusing options
    #focus            focus_sloppy;
    #focus            focus_pointer;
    #focus_new        false;
    focus            focus_click;

1e) 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

1e) 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. El plugin mwm_hints lo comento porque no existe.

2) Editar el menú de aplicaciones  Bloc de Notas

2a) ~/.golem/plugins/simple_menus/rc


Es el menú de Golem y su edición no es nada complicada, pero para facilitar su edición, vamos a adaptar la funcionalidad de la utilidad de generación automática de menús compatibles con el estándar de freedesktop.org, Xdgmenumaker, al formato específico del menú de Golem. Abrimos con un editor de texto, el archivo de configuración del menú, y lo dejamos tal y como aparece a continuación, utilizando el mismo sistema de configuración que he empleado en el manual de Xdgmenumaker.

#
# rcfile for simple_menus plugin
#

load "simple_menus" {
    param "menu_stacklayer"    "top";    # where menus go in the stacking layer
    param "menu_button"    "3";    # button to open root menu

    param "rootmenu" "Title" {
        param "command" "Urxvt"    { param "dat" "exec urxvt"; }
        param "command" "Firefox"    { param "dat" "exec firefox"; }
        #
        # a submenu of remote host terms.
        # alternativly this may be done with:
        #.exec "menu-ssh-hosts"
        # menu-ssh-hosts is a script included with golem's distro
        # in the util directory that outputs a simple_menus param
        # subtree from your ~/.ssh/known_hosts and known_hosts2 files.
        # you need to copy it to somewhere on your PATH to use it here
        #
#XDGSTART
        param "submenu" "Remote Terminal" {
            param "command" "Bifur"        { param "dat" "exec xterm -e ssh bifur"; }
            param "command" "Bofur"        { param "dat" "exec xterm -e ssh bofur"; }
            param "command" "Bombur"    { param "dat" "exec xterm -e ssh bombur"; }
            param "command" "Fili"        { param "dat" "exec xterm -e ssh fili"; }
            param "command" "Kili"        { param "dat" "exec xterm -e ssh kili"; }
            param "command" "Thorin"    { param "dat" "exec xterm -e ssh thorin"; }
        }
        param "command" "Netscape"        { param "dat" "exec netscape"; }
        param "command" "GQmpeg"        { param "dat" "exec gqmpeg"; }
        param "command" "BitchX"        { param "dat" "exec xterm -name BitchX -e BitchX"; }
#XDGEND
        param "submenu" "Menú Golem" {
        param "command" "Regenerar el menú" { param "dat" "exec /home/jose/.golem/xdgmenu.sh "; }
            param "restart" "Reiniciar";
            param "submenu" "Otros" {
                param "restart" "Iniciar WindowMaker"    { param "dat" "wmaker"; }
                param "restart" "Iniciar BlackBox"    { param "dat" "startblackbox"; }
                param "restart" "iniciar Fluxbox"    { param "dat" "startfluxbox"; }
                param "restart" "Iniciar Afterstep"    { param "dat" "afterstep"; }
            }
            param "abort" "Cancelar";
            param "exit" "Salir";
        }
    }
}


Sustituir jose por el nombre de usuario de cada uno. Lo guardamos en la ruta ~/.golem/plugins/simple_menus/rc , limpiamos el contenido del editor y añadimos lo siguiente:

#!/bin/sh

xdgmenumaker -nf pekwm | iconv -f UTF-8 -t ISO-8859-15 > /tmp/menuxdg.txt
sed -i 's:Submenu =:param "submenu":g' /tmp/menuxdg.txt
sed -i 's:Entry =:param "command":g' /tmp/menuxdg.txt
sed -i 's:Actions = "Exec:param "dat" "exec:g' /tmp/menuxdg.txt
sed -i 's:&":";:g' /tmp/menuxdg.txt
ed -s ~/.golem/plugins/simple_menus/rc <<EOF
/#XDGSTART/+,/#XDGEND/-d
/#XDGSTART/ r /tmp/menuxdg.txt
w
q
EOF

Lo guardamos con el nombre xdgmenu.sh, le damos permisos de ejecución y lo copiamos al directorio de configuración personal de Golem en nuestro home.

$ chmod +x xdgmenu.sh
$ cp xdgmenu.sh ~/.golem/xdgmenu.sh

Haciendo clic en la entrada Menú Golem >> Regenerar el menú y posteriormente en Reiniciar, se actualizarán las entradas del menú de aplicaciones insertado.

Es muy recomendable que la configuración de la fuente de texto del menú, esté incluida en este archivo de configuración, para evitar que ésta sea sobrescrita por las que vienen con los temas. De esta forma podemos ir probando temas, sin que el tamaño de la fuente de texto del menú, sea modificado. Muy útil para los usuarios de monitores de alta resolución. Basta añadir la entrada correspondiente al mismo:

#
# rcfile for simple_menus plugin
#

load "simple_menus" {
    param "menu_stacklayer"    "top";    # where menus go in the stacking layer
    param "menu_button"    "3";    # button to open root menu
    param "menu_font"    "-*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-*";

    param "rootmenu" "Title" {

3) Configurar la minimización de las ventanas  Bloc de Notas

3a) ~/.golem/plugins/box_iconify/rc


Este plugin tiene funciones similares a la caja de iconos de Enlightenment - E16 y la opción de iconificación de las ventanas de ROX Desktop. Es lo que tradicionalmente llamamos "minimización de las ventanas", y que al no haber barra de tareas, éstas se muestran como iconos en un espacio de la pantalla o en un contenedor específico. En el caso de Golem, puede mostrar una captura de pantalla proporcional en miniatura de la ventana minimizada, opción no activada por defecto.

Los iconos minimizados de las ventanas los podemos desplazar libremente por toda la pantalla con el clic izquierdo del ratón presionado, pero por defecto se ubican siempre en la parte inferior izquierda de la misma, justamente encima de los ojos que siguen al movimiento de las ventanas y acumulándose de izquierda a derecha a medida que vamos minimizando ventanas. Se puede cambiar el emplazamiento predefinido, pero es el más recomendable, por lo menos en mi caso.

#
# load plugin
#

load "box_iconify" {
   # Pixmap used to draw the window. This pixmap is used if
   # ``take_screenshots'' has been set to ``false'' (default) or if
   # no screenshot could be taken.
   fileparam    "pixmap"        "tile.xpm";

   # Determines if the pixmap should be scaled when the icon size is greater
   # than the pixmap
   param    "scale_pixmaps"  "true";

   # Sets if screenshots should be taken or not. Default is not to
   # take screenshots.
   param        "take_screenshots"    "true";

   # Sets if icons should be scaled to match the proportion of their
   # client window.
   param        "proportional_icons"    "true";

   # Sets the size of the icon windows. Hardly any range-checking is
   # performed, so you can screw up here. You have been warned.. The
   # default is 64 (yes, pixels) which seems reasonable..
   param        "icon_size"        "64";

   # Determines what is done with a window that is smaller than the
   # screenshot icon size. if false, the icon is bigger than the src
   # window and things are scaled "up". If true, the default pixmap
   # is substituted
   param    "icon_must_be_smaller_than_src" "false";

   # Determines whether a moved icon will remember it's position for the
   # next iconification
   param    "icon_stays_when_moved" "true";

   # Determines how icons are arranged on screen. options are:
   #  "icon_follows_window", the icon will be placed under the client window
   #  "icon_on_edge", icons will be placed along the edge of the screen in a
   #                  "icon_size" grid.
   param    "icon_placement_type" "icon_on_edge";

   # Only valid if "icon_placement_type" is "icon_on_edge". Determines which edge
   # will hold the icons. options are: "top" "bottom" "left" "right"
   param    "icon_edge" "bottom";

   # Only valid if "icon_placement_type" is "icon_on_edge". Determines which edge
   # which direction the icons will be added.
   # options are: "left_to_right", "right_to_left", "top_to_bottom", "bottom_to_top"
   param    "icon_flow" "left_to_right";
}


Definición de los elementos del archivo de configuración del plugin box_iconify
fileparam  "pixmap"  "tile.xpm"; Define el archivo de imagen en formato XPM utilizado que se utilizará cuando la opción de captura de ventana está establecida en false, o la misma no se ha podido realizar.
param "scale_pixmaps" "true"; Si lo establecemos en false, la imagen anterior no será escalada al tamaño del icono de la ventana minimizada.
param "take_screenshots"  "true"; Si lo establecemos en true, se mostrará una miniatura proporcional en tamaño de la ventana minimizada. Es recomendable que esto lo pongamos en true.
param "proportional_icons" "true"; Si lo establecemos en false, el icono de la ventana minimizada no se escalará de forma proporcionada al tamaño de la misma. 
param  "icon_size"  "64"; Define el tamaño en píxeles del icono de la ventana minimizada. El tamaño por defecto es el mismo que suelen utilizar las dockapps por defecto: 64 píxeles.
param "icon_must_be_smaller_than_src" "false"; Define qué hacer cuando el tamaño real de la ventana minimizada es menor que el tamaño del icono. Escalar la ventana al tamaño del icono es el valor por defecto. 
param "icon_stays_when_moved" "true"; Define si podemos mover o no, el icono de la ventana minimizada. Por defecto sí lo podemos mover por la pantalla.
param  "icon_placement_type" "icon_on_edge"; Define el tipo de ubicación del icono de la ventana minimizada. Por defecto se ubica siempre en el borde de la pantalla en una rejilla definida por el tamaño del icono. Si utilizamos la opción icon_follows_window, el icono se mostrará justo debajo de la ventana minimizada.
param  "icon_edge" "bottom"; Define el borde de la pantalla en el que se ubicarán los iconos de las ventanas minimizadas. Los valores posibles son: top (arriba), bottom (abajo), left (a la izquierda) y right (a la derecha). 
param  "icon_flow" "left_to_right"; Define el orden de ubicación de los iconos de las ventanas minimizadas en el borde de la pantalla. Los valores posibles son: left_to_right (de izquierda a derecha), right_to_left (de derecha a izquierda), top_to_bottom (de arriba hacia abajo) y  bottom_to_top (de abajo hacia arriba)

4) Configurar las opciones del paginador  Bloc de Notas

4a) ~/.golem/plugins/pager/rc


Un administrador de ventanas con paginador incluido no deja ser nunca una opción muy interesante, y Golem nos lo proporciona. Como la información existente es inexistente, los parámetros que no entiendo los omito por defecto.

#
# load the pager plugin
#

load "pager" {
    #
    # the ratio of the size of a pager's screen to a real screen.
    # the default value is 0.04, which is appropriate for most
    # resolutions/tastes.  You can play with the value here: be
    # warned against using values that are too large, heh heh.
    #
    param "size_ratio"        "0.04";

    # this will cause the pager bgpixmap to be
    # ParentRelative.
    #param "parentrelative"    "true";

    param "nomove"            "true";

    # stacking layer (bottom, below, normal, above, top, or tiptop)
    param "pager_stacklayer"    "below";

    param "drag_button"        "2";
    param "wspace_button"        "1";

   param "focwin_pixmap_from_screenshot"  "true";
   # does nothing currently.. param "win_pixmap_from_screenshot"  "false";

    # this is how to specify pager positioning; leave it
    # out and the pager windows get stacked from 0,0 down
    #param "positions" "nop" {
    #    #this is screen,desktop x,y
    #    param "0,0" "100,20";
    #    param "0,1" "-100, -50";    # neg values wrap the screen
    #}
}

Definición de los elementos activos del archivo de configuración del plugin pager
param  "size_ratio"  "0.04"; Define el tamaño proporcional del paginador respecto a la resolución de la pantalla. El valor establecido por defecto es bastante adecuado para la mayoría de resoluciones.
param "nomove" "true"; Si lo establecemos en false, podremos desplazar el paginador por la pantalla.
param "pager_stacklayer"  "below"; Define la jerarquía de ubicación en la pantalla de la ventana del paginador respecto a las otras ventanas. Los valores posibles son: below (debajo), normal, above (encima), top y tiptop.
param "drag_button" "2"; Define el botón del ratón que será utilizado para arrastrar las ventanas por el paginador. Por defecto es el central.
param  "wspace_buttion"  "1"; Define el botón del ratón que será utilizado para cambiar de escritorio o vista en el paginador. Por defecto es el izquierdo.

5) Configurar el dock de Golem  Bloc de Notas

5a) ~/.golem/plugins/pier/rc


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 gai-bgswitcher";   
            param "class" "gai-bgswitcher.gai-bgswitcher";       
        }
        param "item" "dock" {
            param "cmd" "exec wmix";   
            param "class" "wmix.wmix";       
        }
        param "item" "dock" {
            param "cmd" "exec asmail -withdrawn";   
            param "class" "asmail.ASMAIL";       
        }
        param "item" "dock" {
            param "cmd" "exec asclock -withdrawn";   
            param "class" "asclock.ASClock";       
        }
         param "item" "dock" {
            param "cmd" "exec wmsystemtray";   
            param "class" "wmsystemtray0.wmsystemtray";       
        }
    }

    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. El modelo de configuración para los lanzadores de aplicaciones es el siguiente:

        param "item" "launch" {
            param "cmd" "exec mrxvt";
            fileparam "pixmap" "terminal.xpm";
        }

Y para las dockapps el siguiente:

        param "item" "dock" {
            param "cmd" "exec asmail -withdrawn";   
                        param "class" "asmail.ASMAIL";       

Necesitaremos la utilidad xprop para poder identificar el parámetro WM_CLASS (STRING) de las dockapps que queramos insertar en Pier, ejecutamos por ejemplo en una ventana de terminal,  asmail, abrimos otra ventana de terminal o pestaña y ejecutamos en la misma el comando 'xprop | grep WM_CLASS', el puntero del ratón se convertirá en una cruceta y con la misma hacemos clic sobre la ventana de asmail, de la información que se muestre en la ventana de terminal, cogemos los valores mostrados sin las comillas, lo que está en rojo.

[jose@localhost ~]$ xprop | grep WM_CLASS
WM_CLASS(STRING) = "asmail", "ASMAIL"

Que es exactamente lo mismo que tenemos que poner en el archivo de configuración de Pier, unidos por un punto, como se muestra en el ejemplo.

        param "item" "dock" {
            param "cmd" "exec asmail -withdrawn";   
                        param "class" "asmail.ASMAIL";       

6) Configurar setroot  Bloc de Notas

6a) ~/.golem/plugins/setroot/rc


Es el plugin encargado de seleccionar el programa que se usará para establecer la imagen de fondo que contenga el tema que vayamos a utilizar, 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. Si no queremos establecer la imagen de fondo a través del tema, tendremos que editar las correspondientes entradas referentes a la misma, y comentarlas, editando como se muestra en el ejemplo con el tema KristallGolem, el archivo de configuración ubicado en la ruta ~/.golem/mythemes/KristallGolem/forplug/setroot/rc

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

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

7) Aplicaciones al inicio de Golem  

A diferencia de Fluxbox, Golem no tiene script de inicio personal para añadir las aplicaciones que queremos que se inicien al mismo tiempo que el programa. Para este cometido crearemos un script con el nombre startgolem y lo copiaremos a /usr/local/bin, posteriormente crearemos un script de inicio personal con el nombre de autostart en el directorio de configuración personal de Golem, para evitar tener que editar como root, el script de inicio del programa, cada vez que queramos añadir o quitar una aplicación para que se inicie junto a Golem.

La desinstalación y respaldo del script startgolem viene incluida en los scripts correspondientes publicados con este manual. No olvidar que la última línea del script siempre tiene que estar ocupada por el comando de ejecución del administrador de ventanas.

Abrimos un editor de texto y añadimos lo siguiente:

$HOME/.golem/autostart
exec /usr/local/bin/golem

Lo guardamos como startgolem, y lo instalamos en /usr/local/bin

$ su -c "install -m755 startgolem /usr/local/bin"

Luego, en el mismo editor de texto borramos lo antes escrito y añadimos por ejemplo lo siguiente:

#!/bin/sh

cwallpaper -l
sleep 3; adesklets &


Lo guardamos como autostart, lo copiamos a ~/.golem y le damos permisos de ejecución.

$ mkdir -p ~/.golem
$ cp autostart ~/.golem
$ chmod +x ~/.golem/autostart



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 startgolem


2) XDM

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

exec startgolem


3) GDM/LightDM/SDDM

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

[Desktop Entry]
Name=Golem
Comment=
Exec=/usr/local/bin/startgolem
Terminal=False
TryExec=/usr/local/bin/startgolem

Lo guardamos con el nombre golem.desktop y lo instalamos en /usr/share/xsessions.

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


4) Qingy

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

/usr/local/bin/startgolem

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

$ su -c "install -m755 Golem /etc/qingy/Xsessions"


5) 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=startgolem

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 startgolem
    ;;

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 05-07-2023

Administradores de Ventanas - Golem

Administradores de Ventanas - Fvwm-CrystalAdministradores de Ventanas - JWM