Fluxbox en Debian

1. ¿Qué es FluxBox?

2. Características

3. Instalación "sin entorno gráfico"

3.1. Sources.List

3.1.1. Actualizando

3.1.2. Instalando FluxBox

4. Algunos Ejemplos de Configuración

4.1. Menú

4.1.1. Atajos de Teclado

4.1.2. Menú de Inicio

4.1.3. Agregando Botón de Reiniciar-Apagar

6. Referencias


1. ¿Qué es FluxBox?

Fluxbox es un gestor de ventanas para el Sistema X Window basado en Blackbox 0.61.1. Su objetivo es ser ligero y altamente personalizable, con sólo un soporte mínimo para iconos, gráficos, y sólo capacidades básicas de estilo para la interfaz. Se utilizan atajos de teclado, tabs, y menús simples como interfaces, los cuales pueden ser editados. Algunos usuarios prefieren Fluxbox sobre otros gestores de ventanas debido a su velocidad y simplicidad.

La apariencia visual de las decoraciones de las ventanas en Fluxbox es personalizable mediante la edición de archivos de textos. Los temas de Fluxbox son compatibles con los de Blackbox los cuales se pueden editar. Se pueden especificar colores, gradientes, bordes, y otros atributos básicos de apariencia; versiones recientes de Fluxbox soportan esquinas redondeadas y elementos gráficos.


2. Características

- 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


3. Instalación desde "sin entorno gráfico"

Finalizada la instalación de Debian ya sea por Netinst u otro método personal lo primero que haremos será preparar nuestro sources.list. Al no tener entorno gráfico utilizaremos nano

# nano /etc/apt/sources.list

3.1. Sources.List

deb http://ftp.us.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.us.debian.org/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib
deb-src http://security.debian.org/ lenny/updates main contrib

#deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib
#deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib

3.1.1. Actualizando

# apt-get update

3.1.2. Instalando FluxBox

Cita: Instalamos FluxBox 1.0.0 Versión Estable de Debian

# apt-get install fluxbox fluxconf

Cita: Instalamos el Xorg

# apt-get install x-window-system-core xserver-xorg

Cita: Necesitaremos un Navegador de ejemplo Iceweasel (Puede ser el que gustes)

# apt-get install iceweasel iceweasel-l10n-es-es

Cita: Este es un Manejador de Ventanas ultra liviano

# apt-get install rox-filer

Cita: Pero podemos instalar si gustamos Thunar el manejador de Xfce

# apt-get install thunar thunar-volman

Cita: Si gustamos un compresor - descompresor de archivos gráfico

# apt-get install file-roller

Cita: Notese que uso $ es decir entramos como Usuario Normal

$ startx

Nota: En algunos casos puedes utilizar una ventana de Entrada. Dependiendo para ello podemos utilizar Gdm o Xdm Recuerda que solo puedes instalar uno para ello puedes utilizar el siguiente comando:

Cita: Ventana de Entrada Gnome

# apt-get install gdm

Cita: Ventana de entrada Ultraliviana. Ideal para equipos con pocos recursos

# apt-get install xdm

4. Algunos Ejemplos de Configuración

4.1. Menu

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

Menú FluxBox por default

[begin] (Fluxbox) {}                           **Nombre personal del menu
[separator] () {}                              **Separador 
[submenu] (Sistema) {}                         **Submenu
[include] (/etc/X11/fluxbox/fluxbox-menu)      **Menu del Sistema
[end]

Menú personalizado

[begin] (DEBIAN) {}                             **Nombre
[exec] (HOME Thunar) { thunar $HOME} <>         **Manejador de Archivos
[separator] () {}                               **Separador
[exec] (Mozilla Firefox) {firefox} <>           **Navegador Web
[exec] (Skype) {skype} <>                       **Skype
[exec] (Messenger) {emesene} <>                 **Emesene
[exec] (Brasero) {brasero} <>                   **Brasero
[exec] (Screenshot) {gnome-screenshot} <>       **Capturador de Imágenes
[separator] () {}                               **Separador
[submenu] (Sistema) {}                          **Submenu
[include] (/etc/X11/fluxbox/fluxbox-menu)       **Menú del Sistema 
[end]

4.1.1. Atajos de Teclado

Este archivo nos permite configurar combinaciones de teclas para realizar las más diversas acciones. El archivo a editar es el .fluxbox/keys de la home de nuestro usuario.

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

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

4.1.2. Menú de Inicio

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. El archivo a editar es el .fluxbox/init de la home de nuestro usuario.

Ejemplo

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

4.1.3. Agregando Botón de Reiniciar-Apagar

Esto se logra modificando el archivo sudoers.

# nano  /etc/sudoers

En el archivo a editar (sudoers), se encontraran con una linea como esta:

# User privilege specification
  root ALL=(ALL) ALL

Agregamos una nueva linea bajo root ALL=(ALL) ALL:

Usuari@ NombreMaquina=NOPASSWD: /sbin/reboot, /sbin/halt

Con su nombre de usuario, y el nombre de la maquina (hostname). Esta linea hace que al “Usuario” en el host “NombreMaquina” no se le pida password para ejecutar los comandos listados luego del NOPASSWD, en este caso halt (para apagar) y reboot (reiniciar).

Una vez hecho esto nos toca modificar el menú de nuestro fluxbox, en el archivo “menu” que se encuentra en la carpeta .fluxbox en nuestro home

$ nano .fluxbox/menu

Y en el agregamos (donde nos parezca mejor):

[exec] (Apagar) {if zenity --question --text "Apagar: Seguro?" 6 30; then sudo halt; fi} <>
[exec] (Reiniciar) {if zenity --question --text "Reiniciar: Seguro?" 6 30; then sudo reboot; fi} <>

Si no tienen zenity (de GNOME) pueden hacer el mismo dialogo usando “Xdialog“

Primero deben instalar xdialog

# apt-get install xdialog

Luego en el menú de fluxbox la instrucción seria la siguiente:

[exec] (Apagar) {if Xdialog --yesno "Apagar: Seguro?" 6 30; then sudo halt; fi} <>
[exec] (Reiniciar) {if Xdialog --yesno "Reiniciar: Seguro?" 6 30; then sudo reboot; fi} <>

Menú de Ejemplo:

[begin] (fluxbox)
[include] (/etc/X11/fluxbox/fluxbox-menu)
[exec] (Apagar) {if zenity --question --text "Apagar: Seguro?"; then sudo halt; fi} <>
[exec] (Reiniciar) {if zenity --question --text "Reiniciar: Seguro?"; then sudo reboot; fi} <>
[end]

Nota: En ambos casos los numero (6 30) son el ancho y el largo de la ventana, los cuales pueden modificar a su gusto como también el texto, que se encuentra entre comillas.


5. Referencias

http://anarkosam.wordpress.com/2009/05/19/apagar-reiniciar-menu-fluxbox-...
http://es.wikipedia.org/wiki/Fluxbox
http://fluxbox-wiki.org/index.php?title=Fluxbox-wiki