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
Fluxbox http://fluxbox.sourceforge.net/ es un window manager, básicamente un programa que corre sobre las XFree86 (o sus alternativas compatibles) permitiendo manejar las ventanas de las aplicaciones. Fluxbox está basado en Blackbox 0.6.1 http://blackboxwm.sf.net/ y aunque tiene muchas similitudes con él, también son muchas las diferencias. Como podemos leer en su página web algunas de sus más importantes características son:
- pestañas configurables - barra de iconos (para minimizar/iconificar ventanas) - movimiento por los escritorios con la rueda del ratón - títulos de las ventanas configurables - soporte para gnome y kde - combinaciones de teclas configurables - maximizar sobre el slit - configuración del orden de las dockapps del slit - Disponibilidad de canal alpha (transparencias) en la versión en desarrollo
El objetivo seria que el usuario de Linux, se familiarice con fluxbox y conociese este gran Window Manager tan desconocido para algunos y tan fascinante para otros conocedores del mismo.
Fluxbox, se puede instalar compilando las fuentes, o instalando el paquete precompilado.
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.
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.)
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í --------------------
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.
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.
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'.
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'.
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]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.
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
Hay una serie de aplicaciones para la fácil configuración de Fluxbox.
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.
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.
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.
Añadiendo iconos al escritorio
Existen varios programas que nos permiten colocar iconos en el escritorio, comentemos algunos.
- idesk - fbdesk - rox - coolicon - dfm - tkdesk - tkworld - desklaunch
Como definir el fondo de pantalla
Fluxbox incorpora una aplicación llamada fbsetbg para configurar el fondo de pantalla.
Este programa es un wrapper, más o menos un programa que basa sus funcionalidades en otros programas.
Lo que hace fbsetbg es elegir entre todas las aplicaciones instaladas en tu sistema que permiten definir el fondo de pantalla, cúal es la mejor.
Aplicación Paquete Transparencia Obervaciones feh feh yes Esetroot Eterm yes wmsetbg WindowMaker yes xsri xsri yes Sólo en RedHat chbg chbg yes No devuelve 1 cuando hay un error display ImageMagick no qiv qiv no xv xv no Enorme y lento xsetroot xli no xli xli no xsetbg xli no
Lo primero que tenemos que hacer es asegurarnos que tenemos instalado alguno de esos paquetes, y para definir la imagen de fondo no tenemos que hacer más que:
Bash$ fbsetbg -c /ruta/a/la/imagen.png
Esta línea la podemos poner en varios sistios: en nuestro .xsession o .xinitrc, en el archivo init en session.screen0.rootCommand:, en el style, e incluso podemos definir la imagen desde el propio menú de Fluxbox, creamos el directorio ~/.fluxbox/background o un enlace a nuestra carpeta de imágenes y generamos el menú mediante
Bash$ fluxbox-generate_menu -B
Para hacer esto permanente en el archivo de configuración de este programa en ~/.fluxbox/menuconfig, descomentamos BACKGROUNDMENUITEM=yes. Para regenerar la lista de fondos, vamos a fluxbox-menu > tools > regen menu.
Poner Transparente el menu en fluxbox CVS 0.9.x
Solo tenemos que darle al boton derecho y en el apartado Fluxbox menu > Configure > Menu alpha
Introducimos el valor 150 para una transparencia aceptable
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.
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.
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.
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.