<< | Page list | >>
Python interface to the LyXServer
An easy to use interface for external scripts enhancing LyX
A Python package with functions and classes to connect to LyX via the LyXServer and make LyxFunctions available to python scripts.
start_lyx() start a LyX session in a separate process
lyxpipe() open a lyxpipe for nonblocking access
LyXServer basic class for communication with the LyXServer. (provides a file-type like object)
LyXClient more high level LyX client using the serverpipes
lfuns.py a module wrapping lyx functions (LFUNS) to python functions
And the example "end-user" scripts
lyx-remote: Open a file in a running LyX or start LyX with the file
lyx-Mx: LyX with an interactive lyxclient ('minibuffer-console')
lyx-python: LyX with an interactive Python client
bindings help on keybindings and lyxfunctions
Tested on Linux only!
uploads:/Tools/PyClient/pylyx0.1.tar.bz2 python LyX package
- Unpack to somewhere in your PYTHONPATH (will create the package directory
- Optionally copy/link the example scripts in
LyX/examples to somewhere in your PATH (e.g. /usr/local/bin)
- You can browse the embedded documentation with pydoc, e.g.:
pydoc -p 1200 &;
firefox http://localhost:1200 # or any browser of your choice
Set Edit>Preferences>Paths>Server-pipe to "~/.lyx/lyxpipe"
For a different path, change the global variable
- At import time, the LyX package looks for a file
~/.lyx/scripts/python/config.py that can be used to override the defaults in LyX.constants.py
- To use the new classes in a python script, do e.g.
from LyX.lyxclient import LyXClient
client = LyXClient()
- or run LyX via one of the scripts in
pyclient/examples/ to make use of enhancements.
Needs the `xclip` command line tool.
(This will connect to a runnign LyX session or open up a new one if there is no LyX running.)
- at the Python prompt write
- Read the word count in the statusbar or at the terminal.
See also the scripts in
2005-01-26 First public release (Python module),
2005-01-31 Bugfix release 0.2,
2005-05-06 First release of the LyX package.
- Testing is only partially done (and only on a Debian Linux system)
- For some strange reason, LyX closes and reopens the serverpipes with every read/save operation. Polling the pipes will therefore be fooled and the LyXclient.listen method breaks with every buffer-save or buffer-read.
Send bugreports, feature wishes and comments to one of the LyX lists.
Copyright (c) 2005 GŁnter Milde
Released under the terms of the GNU General Public License (ver. 2 or later)