Herramientas de usuario

Herramientas del sitio


doc:freebsd:graficos001

Openbox en FreeBSD

Autor : rlazo

Fecha : 20/02/2004

INTRODUCCIÓN

Openbox es un gestor de ventanas basado en blackbox. El proyecto Openbox tiene como objetivo principal el cumplir estándares y, secundariamente, el aspecto visual, pero no por eso pienses que su aspecto es malo, todo lo contrario.

Entre las ventajas de este gestor tenemos que es ligero y veloz, puede utilizar combinaciones de teclas al estilo emacs, acciones del ratón configurables, puede ser utilizado stand-alone o como reemplazo de los gestores de ventana de KDE o GNOME. En este documento veremos cómo configurarlo como gestor principal, además de instalar feh, un visualizador de imágenes que utilizaremos para establecer el papel tapiz y fbpanel, para proveer una barra de tareas, paginador de escritorios y bandeja para íconos (tray).

INSTALANDO OPENBOX

Para instalar Openbox en nuestro sistema FreeBSD, no necesitamos más que ejecutar uno de estos comandos:

  • Instalando desde fuentes
HellFire# cd /usr/ports/x11-wm/openbox && make install clean clean-depends
  • Instalando desde binarios
HellFire# pkg_add -vr openbox

Si son tan desesperados como lo soy yo, querrán tener algo funcionando lo antes posible. Ahora modificaremos, o en caso de que no lo tengamos lo crearemos, el archivo .xinitrc de manera que quede así:

exec openbox

Para ver nuestro gestor de ventanas en acción simplemente ejecutamos:

startx

Si todo ha salido bien hasta ahora, lo único que veras es el puntero del ratón y… nada más!. El fondo es el plomo por defecto del servidor X. Si presionas con el botón derecho del ratón verás el menú de openbox. Quizás este aspecto no sea lo que esperabas, pero recién estamos empezando,así que paciencia.

CONFIGURANDO OPENBOX

Esta configuración es básica y sólo de referencia. Para una información más profunda referirse a la página de documentación de Openbox

Primero necesitamos copiar los archivos de configuración a nuestra carpeta home.

HellFire# cd /usr/X11R6/etc/openbox/xdg/openbox/
HellFire# cp * ~/.local/share/openbox/

Ahora comenzaremos a ajustar el comportamiento de Openbox a nuestro gusto Editando rc.xml

Dentro del archivo rc.xml tenemos la configuración del comportamiento de nuestro gestor de ventanas. Está escrito en xml así que no es difícil navegar a través de este. Aunque tiene varias secciones, de las que nos ocuparemos.

En esta sección modificamos el nombre y número de los escritorios. Un ejemplo sería:

DESKTOPS

<desktops> 
  <number>3</number> 
  <firstdesk>1</firstdesk>
  <names>
    <name>Main</name>
    <name>Chat</name>
    <name>Work</name>
  </names>
</desktops>

KEYBOARD

En esta sección modificamos las combinaciones de teclas que usaremos para realizar varias acciones en nuestro gestor.

La primera línea tiene el comando <chainQuitKey> y lo que especifica es las teclas necesarias para salir del modo de combinación de teclas estilo emacs, aunque también tiene un límite de tiempo luego del cual automáticamente se sale de este modo. Este modo es excelente para todos aquellos fanáticos de emacs. Para configurarlo simplemente se anidan las etiquetas, como veremos en el ejemplo siguiente. Antes de nada veremos cómo referirse a algunas teclas especiales:

A.- Alt 
C.- Control 
S.- Shift 
W.- Window key 

Ahora revisemos dos ejemplos, el primero modificando una acción ya predefinida y el segundo agregando una combinación de teclas estilo emacs para ejecutar una aplicación.

Para modificar una acción ya definida simplemente cambiamos las teclas que están configuradas para esta. En este caso haremos que la combinación de teclas para maximizar una ventana sea Alt-m (presionando simultáneamente Alt y la letra m) y no Alt-F10.

<keybind key=“A-m”>

 <action name="MaximizeFull"/>
</keybind> 

Ahora configuraremos una combinación te teclas para que podamos acceder al navegador firefox con una combinación estilo emacs Control-x f (presionando simultáneamente Control y la letra x; y luego de soltarlas presionar la tecla f) .

<keybind key="C-x">
<keybind key="f">
 <action mame="Execute"><execute>firefox</execute></action>
</keybind>
</keybind>

MOUSE

En esta sección se configuran todos los comandos y acciones que se ejecutan cuando utilizas el ratón solo o junto con otras teclas. A diferencia de la configuración del teclado, las acciones del ratón dependen del contexto en el que se realicen, en la ventana, en el título, en el escritorio, etc.

Analicemos un ejemplo del archivo:

<context name="Frame">
 <mousebind button="A-Right" action="Press">
      <action name="ShowMenu"><menu>client-menu</menu></action>
 </mousebind>
</context>

En el ejemplo vemos que está en el contexto Frame, lo que quiere decir la ventana actual sin contar el título. Luego que la combinación es de Alt con el botón derecho del ratón.

La última sección es la que indica dónde almacenaremos el menú contextual que aparece cuando presionamos con el botón derecho del ratón sobre el escritorio. Para modificar este menú, cambiamos el archivo con ese nombre, editando menu.xml.

Cualquier archivo que contenga un menú para openbox debe empezar con las etiquetas <openbox_menu> con su respectiva etiqueta de cierre.

Ahora, los menús en sí son encerrados en las etiquetas <menu>; pero dentro de estas hay dos atributos que debemos indicarle que son muy importantes. El id, es el identificador único del menú y puede ser utilizado para poder invocarlo desde una ACTION de, por ejemplo, una combinación de teclas; y el título con el que aparecerá. Para separar menús tenemos la etiqueta <separator />. Para generar menús dentro de menús, simplemente anidamos las estructuras. Veamos un ejemplo de un ítem de un menú.

<item label="Xterm">
   <action name="Execute"><execute>xterm</execute</action>
</item>

Revisemos lo anterior para entenderlo bien. Como es un ítem y no un menú, utiliza las etiquetas <item>; el atributo label viene a se el nombre que va a tener el ítem. Luego, va el nombre de la acción que se va a realizar, estos nombres están predefinidos en OpenBox, así tenemos que Execute es para la ejecución de una aplicación o comando.

Para una lista completa de posibles acciones y su sintaxis exacta referirse a la página de documentación de Openbox

INSTALANDO FEH

En este punto ya tenemos configurado el comportamiento nuestro manejador de ventanas Openbox a nuestro completo gusto, pero aún se ve algo… mal. Es hora de adornar el escritorio con un papel tapiz, utilizando una herramienta para visualizar imágenes llamada feh.

  • Instalando desde fuentes
HellFire# cd /usr/ports/graphics/feh && make install clean clean-depends

Ahora, simplemente tenemos que modificar el .xinitrc para que ejecute el feh antes del openbox. En este ejemplo asumimos que el nombre de nuestro wallpaper es demonio.jpg

  • Contenido del .xinitrc
exec feh --bg-center demonio.jpg&
exec openbox

Para una lista más clara y detallada de las opciones de feh, leer el man. Recuerde que feh no es sólo para configurar el papel tapiz, es una herramienta mucho más útil.

INSTALANDO FBPANEL

Bueno, nos falta un solo paso para tener un entorno visual muy agradable, ajustado a nuestras necesidades y ligero.

  • Instalando desde fuentes
HellFire#cd /usr/ports/x11/fbpanel && make install clean clean-depends

Con esto ya tendremos listo el fbpanel, que viene a ser la barra de tareas, bandeja de íconos, paginador de escritorio. Además tiene un apariencia similar a la de gnome que es simple y atractiva. Modificamos por última vez nuestro archivo .xinitrc para que cargue fbpanel.

  • Contenido del .xinitrc
exec feh --bg-center demonio.jpg&
exec fbpanel&
exec openbox

CONFIGURANDO FBPANEL

La configuración siguiente es sólo de ejemplo y no explica, por ser demasiadas, todas alternativas de fbpanel. Para una documentación más extensa ir a la pagina de documentación fbpanel

Para editar la configuración de fbpanel necesitamos primero copiar los archivos de configuración a nuestra carpeta home. Para eso ejecutamos:

HellFire# mkdir ~/.fbpanel

HellFire# cd /usr/X11R6/share/fbpanel
HellFire# cp default ~/.fbpanel

Dentro de este archivo encontraremos muchos comentarios que nos guiarán en las variables de configuración que posee fbpanel. Aquí veremos muy someramente algunas opciones.

Lo primero que hay que notar es que fbpanel trabaja en base a perfiles. Si al ejecutar la aplicación no especificamos ninguno, tomará el default, pero podemos pasarle como parámetro el nombre de nuestra configuración; así podríamos tener varias configuraciones paralelas y sólo cambiar el parámetro que le pasamos a fbpanel para utilizar distintas. Para pasarle el nombre de nuestro archivo de configuración utilizamos el siguiente comando, donde profile2 es el nombre de la configuración:

# fbpanel -p profile2 

La primera parte del documento es la sección global que determina el aspecto global de la aplicación. Estas opciones pueden ser cambiadas desde una interfaz gráfica que incluye el mismo Openbox en el menú por defecto que trae en la barra de íconos.

A partir de ahí viene la configuración específica de la barra, es decir, que cosas tiene, como el reloj, o la bandeja para los íconos. Esta distribución está en orden y se dividen por plugins. Los plugins son de varios tipos:

  • separator.- Simplemente sirve para dibujar una linea horizontal de separación
  • wincmd.- Es un ícono que sirve para mostrar el escritorio
  • taskbar.- Lista todas las ventanas abiertas como pequeños íconos
  • launchbar.- Una barra con íconos para iniciar programas
  • image.- Simplemente muestra una imagen
  • tray.- Es un espacio para que se ubiquen los íconos de algunos programas, como el gaim o el amsn por ejemplo
  • dclock.- El reloj
  • menu.- Su nombre lo dice todo
  • space.- Separa espacio
  • icons.- Íconos personalizados

Veremos como ejemplo la configuración de una barra con un menú, un ícono de acceso a el terminal xterm, el paginador de escritorios y la barra de tareas.

# este plugin funciona para mostrar el escritorio
Plugin {
   type = wincmd
   config {
# puedes poner cualquier imagen que desees
       image = /usr/X11R6/share/fbpanel/images/Desktop2.png
       tooltip = Haz click con el botón derecho para mostrar el escritorio.
   }
}
# este plugin es para el menú
Plugin {
   type = menu
   config {
# esta imagen es la del menú en la barra
       image = /usr/X11R6/share/fbpanel/images/Menu.png
# el orden es descendente, es decir, este menú será el primero empezando por arriba
       menu {
           name = Networking
           image = /usr/X11R6/share/fbpanel/images/Networking.png
# lo siguiente son la lista de items dentro del menu Networking del menú principal
           item {
               name = mozilla
               action = mozilla
           }
           item {
               name = gaim
# la imagen es opcional
               image = /usr/share/pixmaps/gaim.png
               action = gaim
            }
        }
# una linea horizontal de separación
        separator {
        }
        item {
            name = Configure
            image = /usr/X11R6/share/fbpanel/images/settings.png
            command = configure
        }
        separator {
        }
        item {
            name = terminal
            image = /usr/X11R6/share/fbpanel/images/GNOME-Terminal.png
            action = xterm
         }
        item {
            name = emacs
            image = /usr/X11R6/share/fbpanel/images/Emacs.png
            action = emacs
        }
    } 
}
# un separador vertical en la barra
Plugin {
    type = separator
}
# el plugin para los íconos de acceso directo
Plugin {
    type = launchbar
    config {
        button {
            image = /usr/X11R6/share/fbpanel/images/GNOME-Terminal.png
# tooltip es el mensaje que aparece al colocar el puntero del ratón sobre el botón
            tooltip = Terminal
            action = xterm
        }
        button {
            image = /usr/X11R6/share/fbpanel/images/Emacs.png
            tooltip = Emacs
            action = emacs
        }
    }
}
# El paginador de escritorios
Plugin {
    type = pager
}
# un separador vertical en la barra
Plugin {
    type = separator
}
# la barra de tareas
Plugin {
    type = taskbar
    expand = true
    config {
        ShowIconified = true
        ShowMapped = true
        ShowAllDesks = false
        tooltips = true
        IconsOnly = false
        MaxTaskWidth = 150
    }
}
doc/freebsd/graficos001.txt · Última modificación: 2022/03/02 08:18 (editor externo)