Todo Sobre FLUXBOX


Tabla de contenidos
1. Copyleft 2004 debianitas.net
2. Introdución y Objetivos
3. Instalación
3.1. Compilación
3.2. Instalando FLUXBOX precompilado.
4. ARRANCANDO FLUXBOX
5. MANEJANDO FLUXBOX
6. Como funcionan los ficheros de configuración de Fluxbox.
6.1. .fluxbox/menu
6.2. .fluxbox/keys
6.3. .fluxbox/apps
6.4. .fluxbox/init
7. Los Styles de Fluxbox
8. Aplicaciones de Configuración Gráfica
8.1. Fluxconf
8.2. Fluxkeys
8.3. Fluxmenu
9. Como Añadir Iconos, Definir Fondo de pantalla y algunas cosillas más.
10. Capturas de Pantalla
11. Sobre el autor

1. Copyleft 2004 debianitas.net

Jorge Salamero bencer@bencer.org

Emilio Guirado Hernandez geesecillo@debianitas.net

Se puede copiar , modificar o distribuir este manual bajo las condiciones de la licencia GNU General Public License ( GNU GPL )

Si se desea hacer una copia total o parcial del documento se deberá adjuntar debidamente la identidad del autor asi como la dirección www.debianitas.net en las partes superior e inferior del manual.

El autor no se hace responsable de los daños producidos por la utilización de la información del documento.

www.debianitas.net Copyleft 2004


2. Introdución y Objetivos


3. Instalación

Fluxbox, se puede instalar compilando las fuentes, o instalando el paquete precompilado.


3.1. Compilación

VERSIÓN en DESARROLLO

Si queremos compilar nosotros el código fuente nos bajamos la última versión desde http://fluxbox.sourceforge.net/version-0.9.php o coger el código fuente directamente del CVS, véase http://fluxbox.org/download.php#cvs.

Primero debemos instalar los siguientes paquetes de desarrollo: make, gcc, g++, cvs, libc6-dev, xlibs-dev.

  • Para descargar el código fuente del CVS:

Bash$ cvs -d:pserver:anonymous@cvs.fluxbox.sourceforge.net:/cvsroot/fluxbox login

Presionamos [ Enter ] donde ponga password:

Bash$ cvs -z3 -d:pserver:anonymous@cvs.fluxbox.sourceforge.net:/cvsroot/fluxbox

  • Bajando el código comprimido de la web.

Si habíamos bajado la última versión la descomprimimos mediante:

Bash$ tar jvxf fluxbox-0.9.x.tar.bz2

  • Configuración y Compilación

En caso de que la hayamos bajado del cvs no será necesario. A continuación compilamos:

Bash$ ./configure

Bash$ make

Bash# make install

Nota: Para mas informacion véase los README y INSTALL.


3.2. Instalando FLUXBOX precompilado.

  • Versión estable

La versión estable viene en muchas distribuciones, entre ellas Debian y en todas sus ramas.

En todas la versión disponible es la 0.1.14.

Para instalar la versión estable simplemente lo instalamos por APT-GET, de la sigiuente manera.

Bash# apt-get install fluxbox

En la página web de Fluxbox podemos encotrar paquetes para la mayoría de distribuciones de Linux y las versiones de BSD.

  • Versión en Desarrollo

Si deseamos instalar la versión en desarrollo por medio de un paquete precompilado, podemos descargarlo de http://screaming-fist.net/diary/fluxbox/ para la arquitectura x86.

O bien descargarlo por medio de APT-GET introduciendo

deb http://people.debian.org/~dopey/fluxbox ./

en /etc/apt/sources.list

Después de Salvar y salir, hacemos

Bash# apt-get update

Bash# apt-cache search fluxbox ( aqui nos saldrán todos los paquetes relacionados con fluxbox, nos fijamos en la versión del paquete que sea 0.9.x y instalamos ese paquete.)


4. ARRANCANDO FLUXBOX

Si usamos gdm deberemos crear un script como el siguiente:

# ------------- corta aquí --------------------
#!/bin/sh
#
# /etc/gdm/Sessions/fluxbox
#
# global fluxbox session file -- used by gdm

exec /etc/X11/Xsession /usr/bin/fluxbox

# ------------- corta aquí --------------------

en /etc/gdm/Sessions/fluxbox sustituyendo /usr/bin/fluxbox por el directorio donde resida el binario. Si hemos compilado Fluxbox, serguramente será /usr/local/bin/fluxbox.

Si por el contrario usamos kdm: editaremos nuestro kdmrc, probablemente /etc/kde3/kdm/kdmrc y en "SessionTypes=" añadiremos fluxbox a la lista. Si somos usuarios de Debian, además tendremos que eliminar la línea generate-sessiontypes de /etc/kde3/kdm/kdm.options para que no nos regenere el kdmrc.

Quien use xdm o no use un desktop manager puede crearse un .xsession o un .xinitrc en su home. Existe una pequeña diferencia entre ellos. El .xinitrc es leído por xinit cuando arranca las X, si usamos xdm lo ignorará, así que deberemos usar el .xsession. Un ejemplo es el siguiente:

# ------------- corta aquí --------------------
#!/bin/sh
# ~/.xsession
# bencer@bencer.org . 17.12.03

# definimos el fondo de pantalla
fbsetbg -c images/wallpapers/magnaflux.jpg

# definimos nuestro mapa del teclado
xmodmap /home/bencer/.xmodmap

# root-tail es un programa que nos muestra sobre el fondo del escritorio cualquier archivo, muy útil para ir vigilando los logs
root-tail -g 150x10+160+030 -i 1 /var/log/messages -font snap -color grey &

# lanzamos algunas aplicaciones
gkrellm &
xpmumon & 
xmms &

# window manager
exec fluxbox

# ------------- corta aquí --------------------


5. MANEJANDO FLUXBOX

El manejo de este window manager es muy sencillo. En un principio no existen los iconos, aunque como veremos más adelante, es posible añadirlos con programas auxiliares.  

Accedemos al menú de aplicaciones haciendo 'clack' (botón derecho) sobre el fondo, entonces emerge el menú de aplicaciones genérico del sistema. Si hacemos click con el botón central nos muestra el menú de escritorios, donde visualizamos los escritorios activos,  podiendo eliminar y agregar nuevos.

La barra inferior se llama 'toolbar', muestra el escritorio, las aplicaciones y un reloj. Haciendo 'clack' sobre el nombre del escritorio o el reloj accedemos a un menú de configuración de la 'toolbar'. Si lo hacemos sobre las aplicaciones obtenemos un menú contextual sobre el manejo de la ventana de la aplicación.

La 'slit' es una zona del escritorio donde residirán los dockapps. Los dockapps son unas pequeñas aplicaciones de funciones muy diversas como monitorizar información ... podemos encontrar una recopilación en http://www.dockapps.or g/ o http://www.houseware.org/dockapps/ [revisar esas urls].

A partir de la versión 0.9.x las pestañas (tabs) vienen integradas en el 'titlebar' de la ventana. Para agrupar dos ventanas, hacemos click con el botón del medio en el 'titlebar' de una ventana y la arrastramos hacia la que queremos agrupar. Para desagrupar, simplemente la operación inversa. Con un 'clack' sobre el 'titlebar' obtenemos el menú contextual de la aplicación.


6. Como funcionan los ficheros de configuración de Fluxbox.

En el home de nuestro usuarios encontraremos el directorio .fluxbox, el cual tiene en su interior los distintos archivos de configuración.

Comentamos cada uno de ellos para que tengamos una idea de hasta que punto es moldeable Fluxbox.


6.1. .fluxbox/menu

Este archivo, sirve para tener en el menu que nos aparece pulsando el botón derecho del ratón, nuestras aplicaciones favoritasy ordenarlas a nuestro gusto con seciones y subsecciones.

El archivo a editar es el .fluxbox/menu de la home de nuestro usuario.


begin (Fluxbox) 
     exec    (xterm) {xterm} 
     exec (Eterm) {Eterm -D 4 -T Sistema -x --buttonbar false -O --scrollbar false --shade 60 -f yellow} 
     exec (Sylpheed) {sylpheed} 
     exec (Run) {fbrun} 

#Tambien se pueden hacer subsecciones 

submenu (Terminals) 
     exec (Eterm2) {Eterm -D 4 -T Sistema -x --buttonbar false -O --scrollbar false --shade 20 --tint blue -g x10+0+430 --no-cursor} 
     exec (Eterm3) {Eterm --buttonbar false --scrollbar false -O --shade 50 --tint green -x -g x25+160+160} 
     exec (xterm) {xterm} 
     exec (konsole) {konsole} 
end 

Para configurar el menú tenemos una aplicación llamada 'fluxmenu'.


6.2. .fluxbox/keys

Este archivo nos permite configurar combinaciones de teclas para realizar las más diversas acciones. Veámos un ejemplo comentado:

# ~/.fluxbox/keys . combinaciones de teclas para fluxbox

# la tecla Mod1 es el Alt

# cambio de escritorios
Mod1 F1 :Workspace 1
Mod1 F2 :Workspace 2
Mod1 F3 :Workspace 3
Mod1 F4 :Workspace 4
Mod1 F5 :Workspace 5

#movimientos entre las pestañas. muy útil para grupos de ventanas.
Control right :NextTab
Control left :PrevTab

# cerrar la ventana
Control F4 :Close

# maximizar la ventana
Mod1 m :MaximizeWindow

# eliminar las decoraciones de la ventana
Mod1 n :ToggleDecor

# diversas aplicaciones
Mod1 f :ExecCommand mozilla-firebird
Mod1 a :ExecCommand aumix
Mod1 c :ExecCommand aterm -fn sans -fg grey -tr -trsb -shading 40%
Mod1 x :ExecCommand fbrun
Mod1 s :ExecCommand sylpheed
Mod1 d :ExecCommand dillo

# tomar screenshots
Control s :ExecCommand import -window root -quality 85 screenshot.png

# si tenemos un teclado "multimedia" podemos usar opciones como:

# subir y bajar el volumen
None XF86AudioLowerVolume :ExecCommand aumix -v -10
None XF86AudioRaiseVolume :ExecCommand aumix -v +10

# control del xmms
None XF86AudioPlay :ExecCommand xmms -t
None XF86AudioStop :ExecCommand xmms -s

También podemos controlar infinitud de opciones insospechadas como el ratón con MouseMove [+|-]xx y MouseClick 0; mover las ventanas, Move [+|-]xx y redimensionarlas, Resize [+|-]xx y las de Fluxbox con los parámetros ShowDesktop, RootMenu, WorkspaceMenu, Reconfigure y Restart.

Como para el init y el menu teníamos unas pequeñas aplicaciones que nos permitían generar el archivo, para el keys también existe otra llamada 'fluxkeys'.


6.3. .fluxbox/apps

En este archivo podemos configurar como y donde se inicien determinadas aplicaciones, por ejemplo iniciar sin decoracion de ventana o en una posición determinada.

[app] (galeon-bin)
  [Workspace] {0}
[end]

[app] (xpmumon)             # Nombre comando de la aplicación
[Workspace]   {0}           # zona de trabajo por defecto 0
[Dimensions]  {125 125}     # Regulando las dimensiones de la ventana
[Position]    {17 31}       # Definimos la posición
[Deco]        {NONE}        # Se usa para quitar decoraciones de ventana 
[end]


6.4. .fluxbox/init

Este archivo determina la configuración general de Fluxbox. La mayoría de estas opciones son definidas mediante el menú de configuración de Fluxbox, veamos un ejemplo con algunos comentarios:

session.titlebar.left: Stick                           #botones a la izquierda de las ventanas
session.titlebar.right: Minimize Maximize Close        # botones a la derecha de las ventanas
session.screen0.toolbar.autoHide: false                # auto-ocultar la toolbar
session.screen0.toolbar.mode: None                     # modo de la toolbar
session.screen0.toolbar.onTop: false                   # mostrar siempre encima la toolbar
session.screen0.toolbar.maxOver: false                 # maximizar encima de la toolbar
session.screen0.toolbar.tools: workspacename, iconbar, systemtray, clock # herramientas mostradas en la toolbar
session.screen0.toolbar.visible: true                  # mostrar u ocultar la toolbar
session.screen0.toolbar.placement: BottomCenter        # posición de la toolbar
session.screen0.toolbar.height: 0                      # altura de la toolbar
session.screen0.toolbar.layer: Desktop                 # capa en la que reside la toolbar
session.screen0.toolbar.widthPercent: 70               # anchura de la toolbar
session.screen0.toolbar.onhead: 0
session.screen0.tab.width: 64                          # anchura de las pestañas
session.screen0.tab.placement: Top                     # posición respecto a la ventana de la pestaña
session.screen0.tab.rotatevertical: true
session.screen0.tab.height: 25                         # altura de la pestaña
session.screen0.tab.alignment: Left                    # alineación de la pestaña
session.screen0.slit.alpha: 100                        # transparencia del slit
session.screen0.slit.onTop: false                      # mostrar siempre encima el slit
session.screen0.slit.autoHide: false                   # auto-ocultar el slit
session.screen0.slit.maxOver: false                    # maximizar por encima del slit
session.screen0.slit.placement: CenterRight            # posición del slit
session.screen0.slit.direction: Vertical               # alineación del slit
session.screen0.slit.layer: Dock                       # capa del slit
session.screen0.slit.onHead: 0
session.screen0.slit.onhead: 0
session.screen0.iconbar.mode: Workspace
session.screen0.iconbar.alignment: Relative
session.screen0.iconbar.clientWidth: 70
session.screen0.iconbar.usePixmap: true
session.screen0.imageDither: false
session.screen0.colPlacementDirection: TopToBottom
session.screen0.windowPlacement: CascadePlacement
session.screen0.menuMode: Delay
session.screen0.fullMaximization: false                # maximizar ventana por encima de todas las zonas
session.screen0.clickRaises: true                      # eleva la ventana al clickearla
session.screen0.focusModel: SloppyFocus                # activar ventana al recibir enfoque
session.screen0.maxOverSlit: false                     # maximizar las ventanas por encima de la slit
session.screen0.sloppywindowgrouping: true
session.screen0.autoRaise: false                       # auto elevar las ventanas al recibir el enfoque
session.screen0.strftimeFormat: %R                     # formato de la hora de la toolbar. véase man date
session.screen0.showwindowposition: true               # mostrar la posición de una ventana al moverla
session.screen0.menuDelayClose: 0                      # retraso en el cierre del menú
session.screen0.workspaceNames: 1. system,2. surfing,3. comunication,4. network,5. download,	# nombres de los escritorios
session.screen0.menuDelay: 0                           # retraso en el cambio de una opción del menú a otra
session.screen0.antialias: true                        # antialiasing en la tipografía
session.screen0.resizeMode:
session.screen0.focusLastWindow: true                  # al cerrar la ventana activa, enfocar la última que tuvo el enfoque
session.screen0.edgeSnapThreshold: 0
session.screen0.rowPlacementDirection: LeftToRight     # dirección de despliegue de las ventanas
session.screen0.opaqueMove: false                      # mantener opaco el fondo de una ventana mientras se mueve
session.screen0.rootCommand:                           # comando ejecutado al inicio
session.screen0.menuAlpha: 125                         # transparencia del menú
session.screen0.workspacewarping: false                # cambiar de escritorio la ventana moviéndola al lateral
session.screen0.focusNewWindows: true                  # enfocar nuevas ventanas
session.screen0.desktopwheeling: true                  # cambio de escritorios con la rueda del ratón
session.screen0.workspaces: 5                          # número de escritorios
session.ignoreBorder: false
session.useMod1: true                                  # habilitar tecla Alt para combinaciones
session.styleFile: /home/bencer/.fluxbox/styles/cthulhain_v2 # style
session.iconbar: true                                  # habilitar iconos en la toolbar
session.groupFile: /home/bencer/.fluxbox/groups        # fichero con los autogroups
session.updateDelayTime: 5
session.cacheMax: 200l
session.menuFile: /home/bencer/.fluxbox/menu           # fichero con la configuración del menú
session.slitlistFile: /home/bencer/.fluxbox/slitlist   # fichero con la lista del slit
session.autoRaiseDelay: 0                              # retraso al mostrar un menú
session.cacheLife: 5l
session.doubleClickInterval: 250                       # intervalo doble click
session.numLayers: 13                                  # número de capas de posicionamiento de ventanas
session.opaqueMove: false                              # mantener la imagen de fondo mientras se mueve una ventana
session.keyFile: /home/bencer/.fluxbox/keys            # fichero de combinaciones de teclado
session.colorsPerChannel: 4
session.tabs: true                                     # habilitar pestañas 
el: 4

Existe una aplicación llamada 'fluxconf' que nos permite configurar estos parámetros gráficamente.


7. Los Styles de Fluxbox

Los estilos de fluxbox estan ubicados en /usr/local/share/fluxbox/styles/ o bien en nuestro home en .fluxbox/styles/

Ejemplo de Style.

!Miscellaneous settings... 
style.name: GS 
style.author: GeeSeCillo 
style.date: 20/10/03 
style.credits: aLEczapKA, based upon ONE theme by <christel at geekgirl dot bz> 
style.comments: Requests or questions; <aleczapka at gmx dot net> 
 


rootCommand: bsetroot -gradient flatcrossdiagonalgradient -to \#294563 -from \#6173aa 
menu.RoundCorners: BottomLeft BottomRight TopRight TopLeft 
window.RoundCorners: TopRight TopLeft BottomLeft BottomRight 

!Toolbar settings... o Barra de minimizar ventenas

toolbar.button: Flat Solid Horizontal 
toolbar.button.color: #294563 
toolbar.button.colorTo: #28455a 
toolbar.button.picColor: #5a7494 

toolbar.button.pressed: Flat Solid Horizontal 
toolbar.button.pressed.color: #c5d3d6 
toolbar.button.pressed.colorTo: #294563 

toolbar.label: Flat Solid Horizontal 
toolbar.label.color: #294563 
toolbar.label.colorTo: #28455a 
toolbar.label.textColor: #5a7494 

toolbar.windowLabel: Flat Solid Horizontal 
toolbar.windowLabel.color: #294563 
toolbar.windowLabel.colorTo: #28455a 
toolbar.windowLabel.textColor: #5a7494 

toolbar.clock: Flat Solid Horizontal 
toolbar.clock.color: #294563 
toolbar.clock.colorTo: #28455a 
toolbar.clock.textColor: #5a7494 

toolbar: Flat Solid Horizontal 
toolbar.color: #294563 
toolbar.colorTo: #28455a 
toolbar.textColor: #5a7494 
toolbar.font: snap 
toolbar.justify: Center 
toolbar.bevelWidth: 0 
toolbar.button.borderWidth: 0 
toolbar.borderWidth: 0 
toolbar.shaped: 0 
toolbar.borderColor: #000000 


!Menu settings... Opciones del menú

menu.frame: Flat Gradient Vertical 
menu.frame.color: #294563 
menu.frame.colorTo: #385588 
menu.frame.textColor: #ffffff 
menu.frame.font: snap 
menu.frame.justify: Right 
menu.frame.disableColor: #000000 

menu.title: Flat Solid Vertical 
menu.title.color: #c5d3d6 
menu.title.textColor: #294563 
menu.title.font: snap 
menu.title.justify: Center 

menu.hilite: Flat Solid 
menu.hilite.color: #8eaabc 
menu.hilite.textColor: #000000 

menu.bullet: Triangle 
menu.bullet.position: Right 


!Window settings... Opciones de ventana

window.button.focus: Flat Solid PipeCross
window.button.focus.color: #294563 
window.button.focus.picColor: #5a7494 

window.button.unfocus: parentrelative 
window.button.unfocus.color: #28455a 
window.button.unfocus.picColor: #687071 

window.grip.focus: Flat Gradient Vertical 
window.grip.focus.color: #385588 
window.grip.focus.colorTo: #294563 

window.grip.unfocus: Flat Solid Horizontal 
window.grip.unfocus.color: #000000 

window.handle.focus: Flat Solid Vertical 
window.handle.focus.color: #294563 

window.handle.unfocus: Flat Solid Horizontal 
window.handle.unfocus.color: #28455a 

window.label.focus: Flat Gradient Vertical 
window.label.focus.color: #385588 
window.label.focus.colorTo: #28455a 
window.label.focus.textColor: #c5d3d6 
window.label.focus.font: snap 
window.label.focus.justify: Center 

window.font: snap 
window.justify: Center 
window.label.unfocus: Flat Solid CrossDiagonal
window.label.unfocus.color: #294563 
window.label.unfocus.textColor: #9aa5a7 

window.title.focus: Raised Bevel1 Gradient Horizontal 
window.title.focus.color: #294563 
window.title.focus.colorTo: #28455a 

window.title.unfocus: Flat Solid Horizontal 
window.title.unfocus.color: #294563 

window.button.pressed: Raised Bevel1 Solid Horizontal 
window.button.pressed.color: #28455a 


!doesn't work yet anyways, but good to have 

window.tab.justify: Center 
window.tab.label.unfocus: Flat Solid 
window.tab.label.unfocus.color: #294563 
window.tab.label.unfocus.textColor: #294563 
window.tab.label.focus: Flat Solid 
window.tab.label.focus.color: #385588 
window.tab.label.focus.textColor: #c5d3d6 
window.tab.borderWidth: 1 
window.tab.borderColor: rgb:10/10/10 
window.tab.font: nu 

! Opciones del Slit ( o barra de aplicaciones )

slit: flat gradient vertical 
slit.color: #385588 
slit.colorTo: SlateGrey 
slit.borderWidth: 0 
slit.bevelWidth: 0 
slit.borderColor: #000000 

window.frame.focusColor: #c5d3d6 
window.frame.unfocusColor: #28455a 
handleWidth: 3 
frameWidth: 1 
bevelWidth: 0 
borderWidth: 0 
borderColor: #28455a 

! Opciones de redondeo de esquinas

menu.roundCorners: TopRight TopLeft 
window.roundCorners: TopRight TopLeft BottomLeft BottomRight


8. Aplicaciones de Configuración Gráfica

Hay una serie de aplicaciones para la fácil configuración de Fluxbox.


8.1. Fluxconf

En este aplicación podremos definir el estilo por defecto, la ruta de los ficheros de configuración, el tamaño de la tollbar, el número de escritorios, entre otras cosas.

Aquí teneis una captura para que lo veais.

Figura 1. Fluxconf


8.2. Fluxkeys

Fluxkeys es una aplicación para poder definir atajos de teclado facilmente en modo gráfico, muy util para ahorrar tiempo y uso de ratón.

Aquí se puede ver la aplicación.

Figura 2. fluxkeys


8.3. Fluxmenu

Fluxmenu es una aplicacion grñafica de FLux Configuration tools para poder retocar nuestro menú de aplicaciones de Fluxbox

Podeis ver como es en la siguiente captura.

Figura 3. Fluxmenu


9. Como Añadir Iconos, Definir Fondo de pantalla y algunas cosillas más.

En la página http://fluxbox.sourceforge.net/docs/en/faq-dev.php , podemos leer ayuda sobre Fluxbox, muy buena aunque sea en Inglés.


10. Capturas de Pantalla

Bueno ahora vamos a hacer una comparación entre la versión en desarrollo y la versión estable simplemente con un par de capturas una de cada versión.

Figura 4. Versión Estable

Figura 5. Versión Desarrollo

A simple vista podemos apreciar las transparencias del menu y decoración de ventana , asi como la del slit en la parte superior.

También las esquinas redondeadas son apreciables en la versión de Desarrollo.


11. Sobre el autor

http://www.debianitas.net

Emilio Guirado Hernández.

Jorge Salamero

Documento bajo Licencia GNU | GPL

geesecillo@debianitas.net

bencer@bencer.org

Este documento esta siempre en revisión, si ves algun error, tienes algun consejo o quieres darnos tu opinión, escribeme.

Agradecimientos especiales a Dedocrata.

Gracias a los Debianitas por la ayuda en la elaboración de este manual.