Giter VIP home page Giter VIP logo

x11-fvwm's Introduction

X11::Fvwm version 1.0 (altus)

WHAT IS IT?

This is a Perl 5 extension to simplify writing Fvwm2 modules in Perl 5. Not
only in Perl 5, but with either the Tk extension or the Xforms library as
your GUI choices!

This requires fvwm 2.0.46 or better, and perl 5.003 or better. It is
very highly recommended that you also install the latest version of Tk
(which is Tk400.202 as of this writing) or X11::Xforms (0.7 or better),
also available from CPAN.

WHAT DOES IT DO?

Fvwm2 has a very well-defined module API, to allow the brunt of non-core
window-manager work be done by external modules. X11::Fvwm is a layer over
this interface, allowing you to use Perl rather than C as the language for
developing these modules.

When fvwm launches a module, it sets up file descriptors for two-way
communication, and proceeds to occassionally broadcast data packets to
those modules that have asked to receive the given data type. The modules,
in turn, can send commands back to fvwm, including requests for more (and
more specific) data, operation on windows managed by fvwm, etc.

INSTALLATION

The package should be uncompressed using the GNU zip utility. Once done and
you have cd'd down to the directory:

	gzcat X11-Fvwm-0.3.tar.gz | tar xf -
	cd X11/Fvwm

you will need to create the Makefile and verify that your package is
complete:

	perl Makefile.PL

This will verify the package contents against the manifest and create the
file Makefile. Now all that needs to be done is:

	make
	make test
	make install                  # Assuming all tests were passed

An important note here: this extension uses compiled C code to reference the
flags and constants used by fvwm in module communication. When you run make,
you will need to ensure that it knows the proper path to the fvwm source
base. The make macro and its default are:

	FVWMSRCDIR=/usr/local/src/fvwm

Note that the fvwm source tree has the actual C source code under another
directory called fvwm. Within the file Fvwm.xs (and the resultant Fvwm.c),
there are:

	#include "fvwm/fvwm.h"
	#include "fvwm/module.h"

So the value of FVWMSRCDIR has to be such that these includes do not fail. If
your fvwm source is not in /usr/local/src/fvwm, you can set that when you
create the Makefile:

	perl Makefile.PL FVWM_DIR=/your/path/to/fvwm

There is another option you may need, called FVWM_MOD_DIR. This sets the
directory to install the sample modules to, and defaults to the directory
/usr/local/lib/X11/fvwm2. You can adjust this with:

	perl Makefile.PL FVWM_MOD_DIR=/opt/fvwm/something

as appropriate. Both of these options can be used together.

CAVEATS

I think I've covered myself pretty well, but Caveat Emptor just in case.

EXAMPLES

There are some example scripts in the directory scripts/. Currently, these
are rather limited (two versions of window list utilities, a console, a
non-interactive debugger and a desktop spanner), but more will hopefully
get added. They also serve as examples of simple non-interactive modules,
and more complex modules with GUI and everything.

PROBLEMS/BUG REPORTS

Please send any reports of problems or bugs to [email protected]. I wouldn't
mind a short note to know that you're using this, just so I can justify its
continued development :-).

CREDITS AND LICENSES

This package is copyright (c) 1997 by Randy Ray ([email protected]) and may be
distributed under terms of the Artistic License used to cover Perl itself.
See the file Artistic in the distribution of Perl 5.003 or later for details
of copy and distribution terms. All rights reserved.

x11-fvwm's People

Contributors

rjray avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.