Customizing GnuCash

Linas Vepstas linas@linas.org
Sun, 28 Oct 2001 10:53:22 -0600


On Fri, Oct 26, 2001 at 07:24:36PM -0500, Anthony W. Juckel was heard to remark:
>  From the get go, I've been told that GnuCash would be an extensible 
> financial system (which is very appealing to me, and is one of the main 
> reasons I prefer the Emacs editor for any serious text editing).  The 
> interface seems to be coming along quite nicely, and I have recently 
> decided to try to port all my financial information from Quicken into 
> GnuCash (with mixed results thus far), so now I would like to have more 
> information about how to customize GnuCash.  I think I have read that 
> both Guile and Perl are supported for extensibility.  Is one language 
> preferable to the other (with regards to GnuCash interoperability rather 
> than programmer preference)?  

scheme (guile) is used internally by gnucash and is well-integrated. 

The perl bindings are not integrated in this way: you can use perl to 
access the 'engine' library, but you can't use it to change the
behvaiour of a running copy of gnucash.

> Is there any information about the API's 
> that are supplied by the system?  

The src/doc directory contains documentation. Also, in the case of 
src/engine, the header files src/engine/*.h document most of the engine
API. The GUI apis are more poorly documented: some of tehse are not
meant to be 'public'.

> As a reference, two things I would 
> like to do are (from simple to complex):

word of caution: one fo the big changes in gnucash-1.7 is to make the 
source code more modular.  This affects how scheme is used to access the
API's. 

> 1)    Set up some default keybindings (so the Delete key deletes a 
> transaction, for instance), and
> 2)    Set up a system where, if a transaction is added to a specific 
> account, a percentage of that transaction is logged to a Gnumeric 
> spreadsheet (yet another Gnome program that preaches extensibility, yet 
> I have yet to find any documentation on it).

I am cc'ing gnucash-devel@gnucash.org  Maybe you'll get a better answer
there ...

> Basically, I'm wondering if the documentation on extensibility is really 
> as sparse as it seems, or is there some vast cache of info that I have 
> yet to find?
> 
> Anthony W. Juckel
> GnuCash 1.6.1

--linas

-- 
pub  1024D/01045933 2001-02-01 Linas Vepstas (Labas!) <linas@linas.org>
PGP Key fingerprint = 8305 2521 6000 0B5E 8984  3F54 64A9 9A82 0104 5933