my own version of xournal, with several features and patches not in the official version
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
debian Update debian directory which was out of date (Daniel German) Jun 27, 2013
html-doc Bump version number for bugfix release Jul 20, 2017
maemo Adding desktop and service files required in maemo Mar 24, 2006
pixmaps smoother icons for eraser and shapes buttons (by Colin Macdonald) Dec 3, 2013
po add Russian translation (Igor Nedoboy) Nov 20, 2017
src fix_stroke_origin option: redraw pressure-sensitive strokes when init… Sep 21, 2017
.gitignore Add .gitignore Aug 17, 2016
AUTHORS option to auto-save documents and recover auto-saves Jun 28, 2014
BUILD-NOTES.win32 Added windows instructions + bugfix for windows pen input May 29, 2014
COPYING Fix FSF address Mar 3, 2015
ChangeLog add Russian translation (Igor Nedoboy) Nov 20, 2017
INSTALL Bump version number ahead of release 0.4.8 Jun 29, 2014 Fix to install xoj document icon properly. Jun 30, 2014
NEWS Bump version number for bugfix release Jul 20, 2017
PKG-README.win32 Show dialog to notify user about fontconfig cache generation (win32) Jun 26, 2014
README Bump version number for bugfix release Jul 20, 2017 update Jan 9, 2018 Start CVS repository with release version 0.2 Dec 2, 2005 Fix "1.#J" bug; release 0.4.6. May 22, 2012 Bump version number for bugfix release Jul 20, 2017
depcomp Bump version number ahead of release 0.4.8 Jun 29, 2014
install-sh Bump version number ahead of release 0.4.8 Jun 29, 2014
missing Bump version number ahead of release 0.4.8 Jun 29, 2014
mkinstalldirs Fix "1.#J" bug; release 0.4.6. May 22, 2012
x-xoj.desktop Add internationalization support. Sep 4, 2009
xournal.desktop Add internationalization support. Sep 4, 2009 option to export successive layers to separate PDF pages Jul 6, 2015
xournal.gladep Add internationalization support. Sep 4, 2009
xournal.xml Release 0.4.1 Sep 16, 2007

This is a testing repository for new features of Xournal

This is a mirror of the git repository of Xournal ( and contains experimental code that is not yet in the official repo. Its purpose is to help in the development of new features

It should not be used for code intended for further distribution.


Xournal is hosted in sourceforge at with a mailing list located at sourceforge too

The latest official version of xournal can always be found at

Where to find the code

Official Repository

The official repository of xournal is managed under git. It can be found in sourceforge at: git:// xournal-code

For compatibility reasons a CVS repo is still maintained and it mirrors the git repository, but its use is deprecated.

Experimental repository

The Xournal development team has an experimental repository where new features of Xournal are tested before they are incorporated into the official version. These features are not considered to be stable enough for wider distributions and should be considered as unstable and prone to crash.

The experimental repository is hosted at github in the following repository

Currently this repository contains the following branches:

  1. Master. DO NOT use this branch as the basis of your code.
  2. upstream. Its purpose is to mirror the official repository. Use this branch as the basis to develop your new features.
  3. for-denis. This branch is expected to be merged into the official repository. It contains features that are ready to be included in his repository.
  4. next. This branch is for integration of several features that have been considered solid, but not yet incorporated into the official repository.
  5. gtk3. It is an advanced effort towards porting xournal to gtk3+. Currently Xournal uses gtk2+
  6. Other experimental branches. They will contain features that are being tested before they are deployed to a wider audience.

The repository is likely to contain other branches with other experimental features.

Summary of experimental branches

These branches are reliable and do not break compatibility with Xournal:

NamePurposeRebased to headIntegrated into next
MasterIdentical to upstream except for this file<2016-04-20 Wed>yes
UpstreamIdentical to Denis repo<2016-04-20 Wed>yes
fix-update-widthFixes annoyance: when rest the width of selected strokes, keep their variable width<2016-04-20 Wed>yes
gladeUses XML glade interface for configuration files<2016-04-20 Wed>yes
horizontal-scroll-lockOption to Lock the scroll horizontally<2016-04-20 Wed>yes
layersOption to see layers above the current one<2016-04-20 Wed>yes
messageAdd a pop up warning that you are using my code (used by next, useless stand alone)<2016-04-20 Wed>yes
mruUpdate the Most-Recently-Used list with the currently opened page<2016-04-20 Wed>yes
popupmenuAdd a menu to right click on next/prev page to improve stylus navigation<2016-04-20 Wed>yes
snap-to-gridDefines a grid to which any annotation is snapped to.<2016-04-20 Wed>yes
quick-zoomQuickly zoom-in/zoom-out to a predefined zoom factor<2016-04-20 Wed>yes
nextThis branch integrates all the branches above plus current xournal code<2016-04-20 Wed>
cl-optionsCommand line options management<2016-04-20 Wed>NO
snap-to-gridAny annotation snaps to grid<2016-04-20 Wed>NO

Some experimental branches, they are incomplete or break compatibility:

bookmarksTries to implement bookmarksCode is a bit outdated
cmakeReplaces autogen/automake with cmakeProblems detecting glade
dot-paper-styleImplements dotted paper style, breaks XOJ compatibilityFully implemented
gtk3Attempts to replace gtk2 with gtk3Performance issues

How to contribute

One of the features that characterizes Xournal is its robustness. Features that make it to the official repository should be rock-solid and error-free (to the extent that this is feasible). In order to guarantee this we propose the following workflow:

  1. New ideas should be posted as a short proposal to the mailing list (, you can subscribe here Xournal developers will be able to comment whether the idea fits within the vision of xournal. They might also provide valuable comments and advice, and direct to existing code (such as experimental branches).
  2. Make a clone of the upstream branch of the github repo
  3. Develop your feature, test it.
  4. When it is ready, submit a pull-request to Daniel (github user dmgerman). Make sure your commits are rebased to the upstream branch to facilitate integration. Submit only one feature per request.
  5. If the feature aligns with the short and long term goals of Xournal, Daniel will incorporate your changes as a branch, where they will be tested by others. At this point it becomes an experimental feature. The name of the branch will reflect the feature. Ideally each independent feature should be incorporated into a separate branch. That will facilitate testing and code review. Daniel will make sure the feature is continuously rebased to the front of official.
  6. Daniel will evaluate the feature for inclusion into next, where it can be used along many other features not yet in official (and further tested).
  7. Simultaneously, Denis will evaluate the feature for inclusion in official. If he accepts the feature, it will be submitted to him via the for-denis branch.
  8. Once the feature is merged into official (and hence into next) the branch is removed.