Recent Changes - Search:



Deprecated

BuildBui

Prev Next Edit this page to change styles

--- Boxes and outlines ---

--- Headers beyond ordinary "!" level headers

--- Stegi specific stylings ---

--- Text warnings, notices, hilights ---

--- Directory paths ---

--- Calendar specific --- BUI (pronounced "Boo-ee") is the BeagleBox UI, an X11 based environment based originally on Matchbox. BUI was forked from the 0.9 release of Matchbox for two main reasons:

  1. Matchbox is for handhelds. BUI targets set top boxes.
  2. Matchbox development is dormant. There hasn't been meaningful activity on the project in 2 years.

The fork of Matchbox for BUI occurred in August, 2010.

This page is under development!

Overview

BUI's build system is modeled on the BeagleBox build because BUI is actually a collection of tools: a window manager, a panel, an on-screen keyboard and support libraries. The build system includes a help target that provides information on available targets. This page provides information on how to configure the build system.

The build system is based on GNU Make. It contains a Makefile that drives the build, a configuration include file called config.mk and a utility include file called util.mk. Additional components are configured and managed by their respective "*.cfg" and "*.mk" files under the configs directory. Any changes to the build configuration should be handled through the respective files under configs. References to new configurations should be appended to the appropriate sections of the top level config.mk file.

BUI builds on a host x86 platform and is intended to be tested from the build tree on the host platform using the Xephyr kdrive X server. You must have Xephyr installed to test on the host platform.

The build process

The source tree actually contains independent applications and libraries. These are released as independent packages for use by the BeagleBox build. However, for development and testing purposes, the complete set of tools are wrapped inside a metabuild allowing changes to be tested under a test X server.

For developers, the BUI source tree must be fully compiled once from the top level. This will install libraries, binaries and other files under the build directory. Once the full tree has been built once you can change into an appropriate source directory, make updates, compile and install. To test the changes, change back to the top level directory and run the xephyr target.

Getting Started with a Build

If you've saved your environment setup script properly, you're ready to start. The steps for the first build are as follows:

  1. Invoke the environment setup script
  2. Create the project home directory
  3. Grab the source
  4. Change into the project src directory
  5. Start your build!

The commands to use if you download a released source package are as follows. We assume you've named your environment setup script function bui as in the example above.

 > bui
 > mkdir -p $GM_HOME
 > cdh
 > (get the source code from SourceForge - is there a way to do this with wget?)
 > tar xvzf <file>
 > mv bui src
 > cdx
 > ls
COPYING  CVS   Makefile  README  config.mk  configs   docs   src   util.mk

The commands to use if you check the code out of CVS are as follows:

 > bui
 > mkdir -p $GM_HOME
 > cdh
 > cvs -d:pserver:anonymous@beaglebox.cvs.sourceforge.net:/cvsroot/beaglebox login
 > cvs -z3 -d:pserver:anonymous@beaglebox.cvs.sourceforge.net:/cvsroot/beaglebox co -P -d src bui
 > cdx
 > ls
COPYING  CVS   Makefile  README  config.mk  configs   docs   src   util.mk

At this point, in the future, you just need to open a terminal window, type the shell function name and start working.

 > bui
 > cdx
 > ls
COPYING  CVS   Makefile  README  config.mk  configs   docs   src   util.mk

Top level component: Makefile

The top level Makefile is used to drive the BUI build. It is very terse, intended only to provide the most common targets and to provide the base from which BUI application configurations and make targets can be included. It is highly unlikely you'll even need to edit the top level Makefile. At least, that's the goal.

Top level component: config.mk

The companion file to the top level Makefile is the top level config.mk. This include file provides common configuration as well is including configurations and make targets for all other components of BUI.

The current BUI components are as follows.

BUI Library

The BUI library provides support utilities common to all BUI applications. It is originally based on Matchbox's libMatchbox 0.9.

Fakekey Library

The fakekey library is used by the software keyboard to convert UTF-8 characters into fake keypresses. It is originally based on Matchbox's libfakekey 0.1.

On screen keyboard utility

The on screen keyboard provides a mechanism with which users, using just a pointing device, can input data into applications. It is originally based on Matchbox's keyboard 0.1.

Panel

The panel provides an integrated component for the window manager in which applets can be installed. There are numerous applets from Matchbox available for this panel, however BUI uses the panel with a single applet - a scrolling menu. This menu will be used to launch applications. Also, the BUI panel acts slightly differently from the Matchbox panel in that it slides further out and can exist only on East and West orientations. It is also semi-transparent (as is the menu applet). The window manager reacts differently with the BUI panel as well. In BUI, the window manager does not resize the work area when the panel is opened. The panel simply displays above open client windows.

The BUI panel is originally based on Matchbox's panel 0.9.3.

Window Manager

The window manager is a borderless, stacked pane manager that always runs its applications in full screen mode. The window manager does not resize the work area when the panel is displayed. Only one client at a time is ever visible using the BUI window manager and switching clients can only be done using the panel menu applet.

The window manager is based on Matchbox's window manager 1.2.

Top level component: util.mk

This include file provides utility targets and definitions. This includes targets for downloading files from a remote archive and definitions which can add color to your output based on xterm escape sequences.

There is nothing in this file that requires changes to make the build work though updates to it are welcome to extend the capabilities of download and archive management utilities.

Creating distribution packages

TBD

Edit - History - Print - Recent Changes - Search
Page last modified on November 06, 2012, at 09:32 PM