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

Entornos GráficosAplicaciones

Administradores de SesionesAdministradores de VentanasEscritoriosUtilidades de Escritorio

Utilidades de Escritorio - WbarUtilidades de Escritorio - WMix

Utilidades de Escritorio - wmDrawer




Utilidades de Escritorio - wmDrawer




Copyright

Copyright © José Luis Lara Carrascal  2008-2023   http://manualinux.es



Sumario

Introducción
Características
Preliminares
Instalación
Opciones de línea de comandos
Configuración
Configurar el inicio de wmDrawer
Iniciamos wmDrawer
Paquetes binarios
Enlaces




Introducción

WmDrawer
es una aplicación dock (dockapp) que proporciona un cajón con un botón retráctil que, al ser presionado, despliega una barra de iconos de acceso rápido a la ejecución de aplicaciones. Muy útil para aquellos usuarios que reniegan de la posibilidad de tener iconos de acceso directo en el escritorio y sobre todo, muy configurable permitiendo adaptarlo a las diferentes características de cada administrador de ventanas. El hecho de poder configurar en la compilación el cargador de imágenes, nos permite mediante la opción de 'gdk-pixbuf-2.0' la posibilidad de utilizar imágenes en formato SVG para los iconos, con lo que conseguimos poder aprovechar el uso de este formato, muy extendido hoy en día en los temas e iconos que proporcionan las aplicaciones. La versión en español incluida en este manual está ya configurada para ser compilada con el soporte de iconos en formato SVG.



Características  

* El cajón es retráctil y animado.
* Pueden definirse varias columnas de botones en el cajón.
* El archivo de configuración es recargado automáticamente al ser modificado.
* Múltiples instancias del programa pueden ejecutarse al mismo tiempo.
* Los botones pueden resaltarse bajo el cursor del ratón.
* Puede definirse un globo de información para cada botón.
* El cajón puede ser transparente (se necesita la extensión SHAPE del servidor X).
* Puede lanzar varias aplicaciones al mismo tiempo desde el cajón, manteniendo presionada la tecla mayúscula o utilizando el botón central del ratón en lugar del izquierdo con lo que se mantendrá el cajón abierto.
* Soporte de iconos en formato SVG, y de todos los formatos que soporte GDK2+.
* Funciones ajustables:
  - Imagen del dock (logotipo).
  - Anchura y altura del dock (desde min=12 hasta max=128).
  - Abertura y cierre del cajón manual o automática.
  - Límite de tiempo en milisegundos para el cierre automático.
  - Velocidad de animación y dirección de la apertura del cajón.
  - Tipo de cursor del ratón en el cajón.
  - Pseudotransparencia en los cajones.
  - Imagen para el fondo de los iconos (sólo si la transparencia está activada).
  - Tamaño de los iconos (min=12, max=128).
  - Tipo de resaltado de los iconos (0:ninguno, 1:blanco, 2:sombreado).
  - Imagen a usar para el resaltado (sólo si 1:blanco está activado).
  - Color del sombreado para el resaltado (sólo si 2:sombreado está activado).
  - Tamaño del borde del cajón.
  - Globos de información y fuente para los botones.



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 wmDrawer para la elaboración de este documento.

* GCC - (13.2.0) o Clang - (16.0.6)
* Make - (4.4.1)

Librerías de Desarrollo

* Xorg - (7.7 / xorg-server 21.1.8)
   LibX11 - (1.8.6)
   LibXext - (1.3.5)
   LibXi - (1.8.1)
* Gdk-Pixbuf-Xlib - (2.42.10)



Descarga 

wmdrawer-0.10.5_es-ML.tar.xz

Firma Digital  Clave pública PGP

wmdrawer-0.10.5_es-ML.tar.xz.asc

Verificar la firma digital del paquete

$ gpg --import manualinux.asc
$ gpg --verify wmdrawer-0.10.5_es-ML.tar.xz.asc wmdrawer-0.10.5_es-ML.tar.xz

Optimizaciones

$ export {C,CXX}FLAGS='-O3 -march=znver3 -mtune=znver3'

Donde pone znver3 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla:
Nota informativa sobre las optimizaciones para GCC
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado. 

* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.

* En versiones de GCC 3.2 e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
Nota informativa sobre las optimizaciones para Clang
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.

* Los valores de color azul no son compatibles con Clang.

* Las filas con el fondo de color amarillo son valores exclusivos de Clang y, por lo tanto, no son aplicables con GCC.
Valores CPU
Genéricos
Intel
AMD

Optimizaciones adicionales

Optimizaciones adicionales
GCC
Graphite
$ export {C,CXX}FLAGS+=' -ftree-loop-linear -floop-strip-mine -floop-block'
IPA
$ export {C,CXX}FLAGS+=' -fipa-pta'
LTO
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=auto'
En versiones inferiores a GCC 10, sustituir auto por el número de núcleos que tenga nuestro procesador. Si sólo tiene uno, utilizar el parámetro -flto
Clang
Polly
$ export {C,CXX}FLAGS+=' -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine'
LTO
$ export {C,CXX}FLAGS+=' -flto'
ThinLTO
$ export {C,CXX}FLAGS+=' -flto=thin'
La aplicación de esta optimización es alternativa a la tradicional LTO, a partir de Clang 3.9 y, por lo tanto, no es combinable con la misma.

Parámetros adicionales

Parámetros adicionales de eliminación de avisos en el proceso de compilación
$ export {C,CXX}FLAGS+=' -w'

Establecer la ruta de búsqueda de directorios de librerías en sistemas de 64 bits multiarquitectura
$ export LDFLAGS+=" -L/usr/lib64 -L/usr/local/lib64 -L/opt/gcc13/lib64"
Cada usuario tendrá que establecer la ruta de búsqueda de directorios, en función de la distribución que utilice.

Establecer el uso de enlazador dinámico para Mold
$ export LDFLAGS+=' -fuse-ld=mold'

Establecer el uso de enlazador dinámico para LLD
Clang
$ export LDFLAGS+=' -fuse-ld=lld'
Optimizaciones complementarias LTO/ThinLTO de LLD
$ export LDFLAGS+=' -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt'
Optimizaciones complementarias LTO de LLD
$ export LDFLAGS+=" -Wl,--lto-partitions=$(nproc)"
Optimizaciones complementarias ThinLTO de LLD
$ export LDFLAGS+=" -Wl,--thinlto-jobs=$(nproc)"

Establecer la variable de entorno de uso de compilador para Clang
$ export CC=clang CXX=clang++

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

$ tar Jxvf wmdrawer-0.10.5_es-ML.tar.xz
$ cd wmdrawer-0.10.5_es-ML

Compilación

$ make

Parámetros de compilación opcionales

-j$(nproc) : Establece el número de procesos de compilación en paralelo, en función del número de núcleos e hilos que tenga nuestro procesador, tomando como referencia la información mostrada por el sistema con el comando correspondiente. Si nuestro procesador es mononúcleo de un solo hilo, no añadir esta opción.

Instalación como root

$ su -c "make install"

Instalación del archivo de configuración de ejemplo en nuestro home (requerido)

$ cp /usr/local/share/doc/wmdrawer/ejemplo.wmdrawerrc ~/.wmdrawerrc

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

Estadísticas de Compilación e Instalación de wmDrawer
CPU AMD Ryzen 5 5500
MHz 3593.250 (BoostMax=4457.000)
RAM 32 GB
Sistema de archivos XFS
Versión del Kernel 6.4.10-ml SMP PREEMPT_DYNAMIC x86_64
Modo de frecuencia de la CPU powersave (balance performance)
Versión de Glibc 2.38
Enlazador dinámico LLD 16.0.6
Compilador Clang 16.0.6
Parámetros de optimización -03 -march=znver3 -mtune=znver3 -mllvm -polly -mllvm -polly-vectorizer=stripmine -flto=thin -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt
Parámetros de compilación -j12
Tiempo de compilación 3"
Archivos instalados 10
Mostrar/Ocultar la lista de archivos instalados
Ocupación de espacio en disco 136 KB

Consumo inicial de CPU y RAM de wmDrawer

Consumo inicial de CPU y RAM de wmDrawer
Programa
CPU RAM
wmdrawer 0 % 3,9 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.

Archivo de configuración personal

~/.wmdrawerrc Es el archivo de configuración personal de wmDrawer en nuestro home.

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.

wmdrawer-0.10.5_es-ML-scripts.tar.gz

$ su
# tar zxvf wmdrawer-0.10.5_es-ML-scripts.tar.gz
# cd wmdrawer-0.10.5_es-ML-scripts
# ./Desinstalar_wmdrawer-0.10.5_es-ML

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 wmdrawer-0.10.5_es-ML-scripts.tar.gz
# cd wmdrawer-0.10.5_es-ML-scripts
# ./Respaldar_wmdrawer-0.10.5_es-ML

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_wmdrawer-0.10.5_es-ML



Opciones de línea de comandos de wmDrawer  

Para que el programa nos muestre las opciones de ejecución, ejecutamos el comando wmdrawer -h.

[jose@localhost ~]$ wmdrawer -h
Uso: wmdrawer [OPCIONES]

Las opciones válidas son:
  -c, --configfile=ARCHIVO     archivo config a usar (por defecto ~/.wmdrawerrc)
  -n, --instancename=NOMBRE   establece el nombre de la instancia del dock
  -w, --windowed            ejecuta la aplicación en modo ventana
  -v, --version             muestra la versión del programa y termina
  -h, --help                muestra este texto de ayuda y termina



Configuración de wmDrawer  Bloc de Notas  

El archivo de configuración del programa está traducido por completo al español, y es el mismo que el que pongo a continuación. Todas las opciones que aparecen con el signo # están deshabilitadas y en el caso de habilitarlas habrá que descomentarlas, quitando el signo # que les precede.

# Archivo de configuración de ejemplo para wmdrawer
[general]
# Icono del dock [opcional]
#dock_icon    panel-drawer.png

# Dirección de apertura de los cajones [requerido]
# De arriba a abajo = 0
# De derecha a izquierda = 1
# De abajo a arriba = 2
# De izquierda a derecha = 3
direction    2

# Imagen usada para el fondo de los iconos [opcional]
#icons_bg    defaultTile.xpm

# Permitir el redimensionado de los iconos para ajustarlos al tamaño de los botones [opcional, por defecto 1]
# 0 indica que los iconos nunca serán redimensionados más allá de su tamaño original.
#icons_expand    1

# Activa la pseudotransparencia de los cajones [opcional, por defecto 1]
# si usted elije transparencia, icons_bg será ignorado
#transparency    0

# anchura del dock: min=12, max=128 [opcional, por defecto=64]
#dock_width    64

# altura del dock: min=12, max=128 [opcional, por defecto=64]
#dock_height    64

# tamaño de los botones tamaño: min=12, max=128 [opcional]
# Útil para aquellos usuarios que quieren tener los iconos grandes y definir varias columnas, por ejemplo.
#btns_size    32

# Tipo de resaltado de los iconos: 0, 1 o 2 [opcional, por defecto 2]
# 0 : sin resaltado
# 1 : blanco (no disponible si la transparencia está activada)
# 2 : sombreado
#highlight    2

# Imagen usada como resaltado [opcional]
# sólo puede ser usada si el tipo de resaltado es 1 : blanco
#highlight_img    highlight.xpm

# Tintado de los iconos con un color indicado [opcional, por defecto #ffffff]
# sólo se puede usar si el tipo de resaltado es 2 : sombreado
#highlight_tint    #ffffff

# Sombreado de los iconos con un nivel indicado [opcional, por defecto 60]
# sólo se puede usar si el tipo de resaltado es 2 : sombreado
#highlight_sh    60

# Mostrar globos de información (tooltips) en los botones [opcional, por defecto 1]
#tooltips    1

# Fuentes de los Tooltips' font [opcional, por defecto fixed]
#tooltips_font    fixed

# Velocidad de animación de los cajones: 0, 1, 2, 3, 4 [opcional, por defecto 1]
#animation_speed    1

# Cursor del ratón en el cajón: 0, 1, ..., 76 [opcional, por defecto 30]
#cursor        30

# Apertura automática del cajón: 0, 1 [opcional, por defecto 0]
#show_on_hover    0

# Cierre automático del cajón: 0, 1 [opcional, por defecto 0]
#hide_on_out    0

# límite de tiempo en milisegundos de ocultado de los cajones [opcional, por defecto 1000]
#hide_timeout    1000

# Ejecutar wmDrawer en modo ventana: 0, 1 [opcional, por defecto 0]
# Indicado para los usuarios de AfterStep, Fvwm, Sawfish o KDE.
#windowed_mode   0

# Nombre de la instancia para que el administrador de ventanas distinga entre las múltiples copias en ejecución
#instance_name    distinguish_name

# Tamaño en píxeles del borde de los cajones [opcional, por defecto 1]
#border_size    1

# Directorios de las imágenes de los iconos y las utilizadas en las diferentes opciones definidas
# en este archivo de configuración. Si éstos contienen subdirectorios habrá que añadirlos también
# ya qué, wmDrawer no busca de forma recursiva las imágenes de los iconos.
[images_paths]
/usr/share/pixmaps
/usr/share/icons
/usr/local/share/icons
/usr/local/share/pixmaps
/usr/share/icons/hicolor/scalable/apps
/usr/local/share/icons/hicolor/scalable/apps
/usr/share/icons/hicolor/32x32/apps
/usr/local/share/icons/hicolor/32x32/apps


# Una primera columna con 5 botones
# Cada botón debe definirse con esta sintaxis:
# (tooltip)  (imagen)  (comando)
[column]
(Eterm)    (gnome-term.png)    (Eterm)
(Firefox)    (firefox.png)        (firefox)
(Home)    (gnome-home.png)        (rox ~)
(XChat)        (xchat.png)        (xchat)
(MPlayer)    (mplayer.xpm)    (gmplayer)


# Una segunda columna con 5 botones
[column]
(Xmms)        (xmms.xpm)    (xmms)
(Gimp)        (gimp.svg)    (gimp)
(GQview)    (gqview.png)        (gqview)
(Leafpad)        (leafpad.png)    (leafpad)
(gFTP)        (gftp.png)        (gftp)


Cada nueva columna que se quiera añadir debe ir siempre precedida del parámetro [column] como se ve de forma clara en el archivo de configuración de arriba.

Si tenemos pensado utilizar iconos de tamaño superior al predefinido (32x32) que no estén en formato SVG, además de editar y modificar el correspondiente parámetro btns_size, tendremos que editar las rutas de los directorios que apuntan a los de 32 píxeles, por ejemplo /usr/share/icons/hicolor/32x32/apps, y dejarlo en /usr/share/icons/hicolor/48x48/apps si vamos a utilizar el tamaño de 48 píxeles para los iconos que no están en formato SVG. Recordar que no todos los programas suelen traer diferentes tamaños para los iconos, y en el caso de que utilizemos iconos de 32x32 para una configuración de 48x48, éstos aparecerán en la pantalla redimensionados por lo tanto, se verán borrosos y muy poco nítidos.

También podemos crear directorios personalizados de iconos y añadir la ruta en el apartado anteriormente referenciado.

Otra opción a tener en cuenta es la posibilidad de crear diferentes archivos de configuración en función del administrador de ventanas que vayamos a utilizar (en el caso de que nos guste variar de vez en cuando), porque es posible que una sóla configuración no sirva para todos los administradores de ventanas que tengamos en nuestro sistema. Un ejemplo,

$ mv ~/.wmdrawerrc ~/.wmdrawerrc_openbox

Editamos el archivo ~/.wmdrawerrc_openbox, cambiamos lo que sea necesario y para cargarlo sólo tenemos que añadir el comando de ejecución al script de inicio de Openbox.

sleep 5 && pypanel &
xbindkeys &
Esetroot -scale ~/Fondos/2141.jpg
wmmdrawer -c ~/.wmdrawerrc_openbox &

Las posibilidades de configuración son enormes y el hecho de poder trabajar con iconos en formato SVG, una gran ventaja.



Configurar el inicio de wmDrawer  

WmDrawer se inicia siempre por defecto en la parte superior izquierda de la pantalla y no soporta funciones de posición en la pantalla a pasarle al comando de ejecución del mismo, la única opción posible de uso en aquellos administradores de ventanas que no tengan soporte de control sobre la posición de las dockapps es ejecutarlo en modo ventana con la opción -w.

Por otra parte en administradores de ventanas como AfterStep o Golem al hacer clic en el cajón, el menú de los iconos no se muestra al lado de wmDrawer, por eso he ignorado su configuración en estos entornos. Aunque, al usuario que no le importe el tener que ubicar la posición del dockapp cada vez que se inicie, puede ejecutarlo en modo ventana en cualquier administrador o incluso entorno de escritorio donde lo quiera probar.

1) Blackbox


Siguiendo el método que se utiliza en el manual de Blackbox lo añadimos al script ~/.blackbox/autostart de la siguiente forma:

#!/bin/sh

(sleep 2; bbkeys &) &
bsetbg -f ~/Fotos/40.jpg
wmdrawer &

2) Fluxbox


Añadimos el comando de ejecución en la sección correspondiente del script de inicio ~/.fluxbox/startup, si estamos usando otros dockapps es recomendable cambiar la dirección de apertura de wmDrawer, para que lo haga (si los tenemos a la derecha de la pantalla) de derecha a izquierda y no, como viene por defecto, de abajo a arriba. También podemos abrir el menú del Slit y en el apartado de Clientes mover arriba o abajo la posición de wmDrawer dentro del grupo de dockapps que estemos ejecutando, si queremos que el dockapp quede por encima del resto o por debajo.

# Applications you want to run with fluxbox.
# MAKE SURE THAT APPS THAT KEEP RUNNING HAVE AN ''&'' AT THE END.
#
# unclutter -idle 2 &
# wmnd &
# wmsmixer -w &
wmdrawer &

3) Openbox

Añadimos el comando de ejecución al script de inicio ~/.config/openbox/autostart, autostart.sh en versiones inferiores a la 3.5.

sleep 5 && pypanel &
xbindkeys &
Esetroot -scale ~/Fondos/2141.jpg
wmdrawer &

4) Pekwm

Añadimos el comando de ejecución en la sección correspondiente del script de inicio ~/.pekwm/start.

# There's probably a few other good uses for it, too. I mainly pushed for it
# because when I was doing fluxbox's docs, people used to complain that there
# wasn't one, and I wanted to avoid that for pekwm. ;) --eyez

numlockx &
fbpanel &
#idesk &
wmdrawer &
hsetroot -fill /home/jose/Fotos/Natasha_Henstridge.jpg -gamma 1.5 -sharpen 1.5 -blur 1.0

Para más información sobre la configuración de la posición de las dockapps en Pekwm, la correspondiente sección de su manual disponible en la web.

5) Window Maker

En Window Maker lo podemos añadir desde el mismo administrador de ventanas sin necesidad de editar ningún script de inicio. Desde el menú hacemos clic sobre Ejecutar... (Run... en inglés), escribimos el comando wmdrawer y lo lanzamos. Nos aparecerá en la parte inferior izquierda de la pantalla. Ahora cogemos y lo arrastramos al dock que por defecto lo tenemos en la parte derecha de la pantalla y lo ubicamos en el mismo. Cuando lo soltemos, nos saldrá una ventana de diálogo donde nos preguntará el comando a ejecutar, escribimos wmdrawer.

Para que se ejecute al inicio de Window Maker, hacemos clic con el botón derecho del ratón sobre el borde superior del dockapp, se desplegará un menú y hacemos clic sobre Settings .... Se desplegará una ventana de diálogo de opciones, donde tenemos que marcar Start when Window Maker is started.

Si queremos quitarlo, en el mismo menú abierto antes, elegimos kill, lo matamos y arrastramos el cajón hacia la parte inferior derecha de la pantalla, y éste desaparecerá.



Iniciamos wmDrawer  


Captura wmDrawer + Blackbox
wmDrawer + Blackbox


Captura wmDrawer + Fluxbox - 1
wmDrawer + Fluxbox


Captura wmdrawer + Window Maker - 1
wmDrawer + Window Maker




Enlaces  


La web de wmDrawer.


Foro Galería Blog


Actualizado el 12-08-2023

Utilidades de Escritorio - wmDrawer

Utilidades de Escritorio - WbarUtilidades de Escritorio - WMix