-- Copyright (c) 2002-2004 by Steve Cooper -- parts Copyright (c) 2001-2003 by Henrik Kinnunen -- parts Copyright (c) 1998-2000 by John Kennis -- parts Copyright (c) 1997,1998 by Brad Hughes.
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
--
-- (See the included file COPYING / GPL-2.0)
--
*** This is an experimental version of Fluxspace. ***
Please use it only if you are interested in testing, experimenting with new features, and reporting problems. It works fine for me on one machine and in both Fedora and Debian. Your mileage may vary. Please contact me with suggestions, problems and questions.
The documentation has not been updated. Please look at examples and source for enlightenment or email me your questions.
New features:
- Better build
- Works with static python library
- Supports slit meters similar to gkrellm. The sample configuration enables a couple.
- Supports timed events, allowing clocks, etc.
- Please check the ChangeLog for a better list of enhancements.
Thanks for trying Fluxspace!
Steve
email: stevencooper@isomedia.com
Fluxspace is a tool to provide workspace hooks for extending Fluxbox behaviors. It provides a Python API and a set of useful modules, but is also designed for easy module creation by other Python developers.
Author: Steve Cooper <stevencooper@isomedia.com>
http://fluxspace.sourceforge.net/
Thanks to:
Henrik Kinnunen
For fluxbox and the FbTk library used here for the slit meters.
John Kennis
For writing bbpager
Brad Hughes
For writing the Blackbox Window Manager (and with this a great deal
of the code for this application).
Nat Friedman with modifications by Gerald Britton
For the Esetroot code used for displaying wallpaper
Build Dependencies
python-dev >= 2.1
Tested with python 2.2 and 2.3.
http://www.python.org/download/
imlib2-dev
http://enlightenment.org/
GNU build tools (automake, autoconf, libtool, aclocal, etc.)
no known special version requirements
http://www.gnu.org/
Optional Build Dependencies
These are only needed if "make distclean" is used to start from "bare metal":
automake >= 1.5
autoconf >= 1.5
SWIG (for interfacing C++ to Python)
Runtime Dependencies
fluxbox or other blackbox derivative
Tested with fluxbox. Untested with others.
http://fluxbox.sourceforge.net/
python >= 2.1 (interpreter and core modules, with core XML support)
http://www.python.org/download/
imlib2 (for setting the root background)
http://enlightenment.org/
Optional Runtime Dependencies
rox (Rox Filer) - for the rox fluxlet. Not required otherwise. idesk (desktop icons) - for the idesk fluxlet. Not required otherwise.
Getting Started
- Verify that fluxbox, Imlib2, SWIG, Python, and whatever optional programs you need, such as Rox Filer, are installed and working.
Fluxbox: http://fluxbox.sourceforge.net/
Imlib2: http://enlightenment.org/
SWIG: http://www.swig.org/
Python: http://www.python.org/
Rox Filer: http://rox.sourceforge.net/
idesk: http://linuxhelp.hn.org/idesk.php
All or most of these should be available through the appropriate packaging mechanism provided by distributions, such as Debian, Gentoo, Mandrake, RedHat, etc.
You will also need the development packages for Imlib2 and Python in order to build.
2) Build and install fluxspace:
$ ./configure
$ make
$ su -c make install
It targets the /usr/local directory try by default. Run the following to check for options to change this directory, and other build parameters:
$ ./configure --help
To clean down to pretty "bare metal":
$ make distclean
To clean down to really "bare metal":
$ make maintainer-clean
Start from "bare metal" by running the bootstrap script:
$ ./bootstrap
Fluxspace is packaged with some pre-built components so that you shouldn't need to run the bootstrap script. If you start playing with the SWIG interfaces you may need to either manually delete fluxspace_wrap.cxx and fluxspace.py or run "make distclean" to force the SWIG code to get regenerated. Running "make distclean" will require the use of ./bootstrap to get going again.
3) Copy fluxspace.xml from the examples directory (e.g.
/usr/local/fluxspace/examples) to "~/.fluxbox".
4) Edit fluxspace.xml with a text editor to customize it to your
needs. The example has most features enabled or visible in the configuration. Almost everything should be changed for your environment, including paths to images, program lists, panel options, etc. Enable the modules you want by setting their "enable" attribute to "yes". See the Configuration reference below. The example has everything disabled.
5) Add fluxspace to your X startup script, e.g. .xinitrc, .xsession,
etc. You may wish to remove the starting of dockapps from that script and add them to the fluxspace runner module configuration.
You should be ready to go.
Configuration
The following assumes you understand XML syntax. In the future this will be edited graphically.
- The outer <fluxspace> element pair is mandatory.
- Each module has an element with the module name as the tag. The only attribute is "enable". Set "enable" to "yes" to load and use the module. Set "enable" to "no" to prevent it from loading.
Modules are fully documented in the Fluxspace manual. See fluxspace-manual.html for more information.
Troubleshooting
Please see the Fluxspace Manual (fluxspace-manual.html) for more information.
FbTk Note
Fluxspace uses the Fluxbox Toolkit (FbTk) found in the src/FbTk directory of a Fluxbox source distribution. The only necessary changes are the following two made to FbTk/Makefile.am in order to make the target binary a static library.
- The following line: noinst_LIBRARIES = libFbTk.a must change to: noinst_LTLIBRARIES = libFbTk.la
- The line beginning with: libFbTk_a_SOURCES = ... must change to: libFbTk_la_SOURCES = ...
That's it. You should be able to copy src/FbTk from a recent Fluxbox, make the above changes, and be ready to go.
