Skip to content
Go to file
This branch is 120 commits ahead, 179 commits behind dmgerman:master.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Project information

This is a fork of Xournal, the inking / PDF markup application written by Denis Aroux. It is based on D. M. German’s github branch and builds on Xournal 0.4.5, adding several features. These include image pasting and embedding, lasso selection tool, and autosave. Xournal provides subpixel resolution, PDF annotation and export, and runs on both Linux and Windows.

This branch uses patched 64-bit font tool components. When building on a 32-bit system, remove this patch via patch -p1 -R < xournal-64bit.patch

Installation: see INSTALL or INSTALL.win32

User’s manual: see html-doc/manual.html

Original project page:


  • master: the main branch with my code and many extra features
  • upstream: original code maintained on Sourceforge
  • debian: ubuntu xournal packages

The latter two branches are inherited from dmgerman’s repository.

Changes by Leo Alekseyev:

New features

  • resize selection improvements:
    • fixed aspect ratio when resizing selection by dragging corner
    • larger margin for grabbing a corner handle
    • (cosmetic) added small selection box padding
  • pressing stylus button-2 and dragging duplicates selection
  • autosave patch ported to Windows (see below)
  • image support (combination of my code and Simon Guest’s code; see below)
  • copy/paste/duplicate page

Patches applied

Autosave (Timo Kluck)
Part of enhance image (Simon Guest)
Lasso (Ian-Woo Kim)

Image functionality

Images can be pasted from the clipboard; image copy/paste works between Xournal instances. Images are embedded inside the XOJ files with Base64 encoding. They are currently stored at the original resolution, and are resized as needed for display.

The code is a combination of contributions by Leo Alekseyev and Simon Guest (in particular SG’s code handles PDF export of images). Overall functionality is very close to that of SG’s enhanced image patch on Sourceforge, with the major difference that the images are appropriately rescaled as the zoom level changes.

The code builds on the original insert image patch by Victor Saase


Original patch is Timo Kluck’s modification of code from Edward Z. Yang and Paulo Neves. The following changes were made to Timo Kluck’s version:

  • code made compatible with Leo Alekseyev’s and D. M. German’s current codebase
  • autosaves are stored in the central location (default: ~/.xournal/autosaves/ and ~/.xournal/autosaves_tmp/ for files that have not been saved). The current path of the file is encoded as a SHA1 hash appended to the file name.
  • checking for possible autosaves is done on opening a file, not just program startup
  • autosave now works on Windows (PIDs are obtained from Windows process API (psapi.dll)).


Original patch is due to Ian-Woo Kim. As written, it triggers a bug in libgnomecanvas 2.30 that results in an invalid path and a subsequent segfault due to poor error handling in libgnomecanvas. A fixed version of gnome_canvas_path_def_close_all function is included here.

Some of the code was refactored to avoid code duplication between rectangle and lasso selection.

Code reorganization

  • Separated out image, selection, and clipboard functionality into their own files (xo-image.c, xo-selection.c, xo-clipboard.c).
  • Put include guards into all headers.
  • Refactored much of the clipboard copy/paste code.
  • Refactored rectangle selection code to maximize code reuse between lasso and rectangle selection functions.

Build system

  • Modified automake files to enable seamless compilation under Windows (code was taken from Georg Wechslberger’s branch at
  • Added Windows installation instructions (Georg Wechslberger’s modifications of Dirk Gerrits’ instructions with some modifications by L.A.).
  • Added 64-bit patch to the repository (originally found in the Xournal SUSE package). This patch only deals with the included Sun font tools (that code is not 64-bit safe).

Patches from other sources

Patches applied by D. M. German:

Last page seen
Add next-prev file
Cmd Line: Open a given page
Text font sizing
Poor man’s bookmarks
Image insert

Load page seen

Saves the current page number in the xoj file. When you open it again, jumps there

Add next-prev file

Opens the next/pref .xoj file in the current directory

Text font sizing

Use Ctrl-B to bold, Ctrl > and Ctr < to increase size or reduce size of annotation

Poor man’s bookmarks

Jumps to “next notable” page, e.g. a page that has inking on it. This is mostly useful when working with marked-up PDF documents, which might not have inking on every page.

Image insert

Basic image support from Victor Saase


my xournal branch, adding several features and patches to the official version




No releases published


No packages published
You can’t perform that action at this time.