Skip to content

VCTLabs/bruce

Repository files navigation

---------------------------
Bruce the Presentation Tool
---------------------------

Bruce, the Presentation Tool is for people who are tired of
fighting with presentation tools. Presentations are composed
(edited) in plain text files. It allows text, code, image,
interative Python sessions and video. It uses pyglet to render
in OpenGL.

Please REMOVE any previous installation of Bruce if you're upgrading
from prior to version 3.0!

Changes in this release:

- handle errors from pygments
- add optional use of smartypants curlify if installed (thanks Ned Batchelder)
- fix windows .pyw launcher script
- make layout parsing more robust
- raise specific warnigs about layout -> style sheet changes
- add missing option values to GUI launcher
- align tables so the header row rests on the baseline
- have window be invisible until all initialisation is complete


Bruce, the Presentation Tool Features
=====================================

- displays reStructuredText content with one page per section or transition
- has a "bullet mode" which displays one page per *bullet point*
- handles of *most* of reStructuredText, including:

  * inline markup for emphasis, strong and literal
  * literal and line blocks
  * tables (no row or column spanning yet)
  * block quotes
  * definition, bullet and enumerated lists (including nesting and
    optional gradual expose)
  * images - inline and stand-alone, including scaling
  * page titles (section headings)

- some extensions to reStructuredText:

  * embedded Python interative interpreter sessions
  * code blocks with syntax highlighting (requires optional Pygments install)
  * videos (embedded just like images) with optional looping
  * stylesheet and layout changes on the fly (eg. multiple fonts
    per page)
  * transitions between pages
  * plugins to create your own inline elements

- page layout and decorations
- scrolling of content larger than a screenful
- sensible resource location (images, video, sound from the same directory
  as the presentation file)
- recording of timing and screenshots
- playback of previous recording or a constant speed, with optional looping
- timer and page count display for practicing
- control which screen to open on in multihead
- run fullscreen at native resolution
- may switch to/from fullscreen quickly
- automatic typographic glyph generation if smartypants is installed


Installation
============

Bruce requires Python 2.5 or later to be installed on your system. Obtain
it from <http://www.python.org/>.

Please download the Bruce version for your operating system from
<http://code.google.com/p/bruce-tpt/downloads/list>:

- Linux "bruce-<version>-linux.zip" (eg. "bruce-3.2-linux.zip")
- Windows "bruce-<version>-windows.zip" (eg. "bruce-3.2-windows.zip")
- OS X "bruce-<version>-osx.zip" (eg. "bruce-3.2-osx.zip")

Unzip the application and double-click the "bruce" program in the created
folder. The program may be shown with a ".sh" or ".pyw" extension. Linux
users may choose to run the program in a terminal.

Bruce may optionally use the **smartypants** module's **curlify** to
automatically produce typograpically correct quotation marks (also known
as "smart quotes"), en- and em-dashes and ellipses. Get smartypants from:

   http://web.chad.org/projects/smartypants.py/

If the application does not work and you're on Linux you may need to
install an optional python tkinter package. This is usually achieved
by invoking something like::

   sudo apt-get install python-tk

If you are a *system package maintainer* then please read the INSTALL.txt
contained in the *source* distribution "bruce-<version>.tar.gz" or the
Subversion repository at <http://bruce-tpt.googlecode.com/svn/trunk>


How to use Bruce, the Presentation Tool
=======================================

On Windows you may just double-click the "run_bruce.py" file.

On other platforms run::

    % bruce [presentation source.txt]

If you've not installed Bruce then you may run from the source::

    % python run_bruce.py [presentation source.txt]

There's a number of command-line controls - use ``bruce -h`` to
learn what they do. With no command-line arguments Bruce will pop
up a simple GUI.


Controls
========

When running a presentation the following controls are active:

left, right arrows; left, right mouse button; space bar (forward)
  Move back and forward pages. If the page contains a list and list-expose
  has been enabled then each list item will be exposed in turn before the
  next page is displayed.
page up, page down
  Move back and forward 5 pages.
mouse scroll wheel
  Scroll large page content. You may also drag the contents up or down
  by dragging a left mouse button press up and down the screen. If a
  page has an embedded Python Interpreter you may use the scroll-wheel
  to scroll its contents (when the mouse is over the interpreter).
  Clicking and dragging always scrolls the whole page.
control-F
  Switch between fullscreen and windowed mode
control-S
  Save a screenshot as "screenshot-<random number>.png" in the current
  directory.
escape
  Exit presentation
home, end
  Go to the first or last page


How to write presentations using Bruce, the Presentation Tool
=============================================================

Bruce presentations are written as plain-text files in the
reStructuredText format with some extensions. See the examples
folder \*.rst files for some samples, the simplest being
"simple.rst" which displays plain text sentences centered
on a white background (using the "big-centered" style)::

    .. load-style:: big-centered

    Text displayed centered on the default white background.

    ----

    A new page, separated from the previous using the four
    dashes.

    Ut enim ad minim veniam.

    A Page Title
    ------------

    Pages may optionally have titles which are displayed
    centered at the top by default.

and so on. For more information see the HOWTO__ (also available
online at the Bruce website) and the optional extra examples
download from <http://pypi.python.org/pypi/bruce>.

__ http://r1chardj0n3s.googlepages.com/howto


Automatic Playback
==================

Bruce has facilities for recording and playing back presentations.

The ``--record`` command-line option causes Bruce to write screenshots of each
page and timing information to the directory specified. For example if
you run::

   python run_bruce examples/test_images.rst --record=/tmp/test_images

then once you've run through the presentation you'll find Bruce has
populated ``/tmp/test_images`` with::

    /tmp/test_images/screenshot-0.png
    /tmp/test_images/screenshot-1.png
    /tmp/test_images/screenshot-2.png
    /tmp/test_images/screenshot-3.png
    /tmp/test_images/timing.txt

Where the contents of timing.txt are a timestamp (in seconds) and the
screenshot displayed at that time::

    1231803728.3 screenshot-0.png
    1231803731.9 screenshot-1.png
    1231803733.4 screenshot-2.png
    1231803738.9 screenshot-3.png

There's a few options for automatically playing a presentation:

**Playing back a recording**
  You may play back the recording captured by using the ``--playback``
  command-line option. Supply it the location of a ``timing.txt`` file as
  generated by ``--record``.

  The times in ``timing.txt`` could also start at 0 and that the
  screenshot filenames are ignored by ``--playback`` (it quite happily accepts a
  file with just times) so the following is equivalent to the timing.txt from
  above as far as playback is concerned::

    0
    2.9
    5.4
    10.9

**Constant-speed playback**
  If you just want to display each page in a presentation at a constant speed
  (like a slide show) then you may use the ``--playspeed`` command-line option.
  This gives a delay in seconds to pause bewteen each page.

  The playback speed will take page transitions into account - the delay starts
  from the start of the transition.

**Looping**
  If you wish for your automitically-played presentation to loop then use the
  ``--loop`` command-line option.

**Only play once**
  If you wish for your automitically-played presentation to quit after playing
  through once use the ``--autoquit`` command-line option.

**Automatically capture a screenshot of every page**
  You may combine ``--record`` and ``--playspeed`` to automatically page
  through the presentation and capture a screenshot of each page. Use
  something like::

    python run_bruce.py examples/test_image.rst --record=/tmp/test_images \
          --playspeed=.5

  You'll want to make sure the presentation has::

    .. style:: :transition.name: none

  at the top. Using a speed faster than .5 is discouraged until some
  fine-tuning of timing can be done.


License
=======

The original software comprising Bruce, the Presentation Tool is
copyright (c) 2005-2009 Richard Jones <richard@mechanicalcat.net>.

It is shipped with many contributing parts.

See LICENSE.txt for full licensing information.

About

Python docutils reStructuredText presentation tool (a bit on the old side)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages