Xournal++
Please help us with an important decision
We would like to have your feedback concerning the new rendering system. One of the big changes will be that it will support infinity pages. Of course we will still provide support for showing the old multi-page documents. Therefore we would like to know how you want to have these rendered in the future. For this reason we have a small poll we kindly ask you to fill out:
Thanks to everybody that did take part in the poll. The results were quite clear.
We will provide two modes to import multiple page documents:
Multiple page documents are imported on the limited size pages and the view will show them like Xournal++ currently does. Note that in this mode infinity pages are technically not possible, you will be able to resize pages though
All pages will be imported onto one single infinity page. You can layout the pages at import into a multi-column/row grid if wanted. For printing we will integrate a feature that shows you the page borders so you end up with prints that make sense.
We might add the mode to import each page onto its own infinity page later on.
Shout out - Translators Needed!
Recently we revisited the settings dialog to improve the feeling and usability.
While doing that we also added better descriptions, for which we require
new translations.
Partial translations, which need to be updated:
Czech
Polish
Chinese
Full translations for all languages not mentioned previously except:
English
German
Italian
If you would like to help us imporve the localization of Xournal++ take a look at our Crowdin project. If you are interested in translating a new language, contact us on Gitter or create a new issue and we will unlock the language on Crowdin.
Thanks in advance!
Features
Xournal++ is a hand note taking software written in C++ with the target of flexibility, functionality and speed.
Stroke recognizer and other parts are based on Xournal Code, which you can find at sourceforge
Xournal++ features:
Support for pen pressure, e.g. Wacom Tablet
Support for annotating PDFs
Fill shape functionality
PDF Export (with and without paper style)
PNG Export (with and without transparent background)
Allow to map different tools / colors etc. to stylus buttons / mouse buttons
Sidebar with Page Previews with advanced page sorting, PDF Bookmarks and Layers (can be individually hidden, editing layer can be selected)
enhanced support for image insertion
Eraser with multiple configurations
Significantly reduced memory usage and code to detect memory leaks compared to Xournal
LaTeX support (requires a working LaTeX install)
bug reporting, autosave, and auto backup tools
Customizeable toolbar, with multiple configurations, e.g. to optimize toolbar for portrait / landscape
Page Template definitions
Shape drawing (line, arrow, circle, rect, splines)
Shape resizing and rotation
Rotation snapping every 45 degrees
Rect snapping to grid
Audio recording and playback alongside with handwritten notes
Multi Language Support, Like English, German (Deutsch), Italian (Italiano)...
Plugins using LUA Scripting
Linux
Windows 10
macOS High Sierra
Toolbar / Page Background / Layer
Multiple page background, easy selectable on the toolbar
Layer sidebar and advance Layer selection.
Multiple predefined and fully customizeable Toolbar.
User Manual and FAQ
For general usage, consult the User
Manual. Answers to
some common questions can be found in the
FAQ.
Experimental Features:
Sometimes a feature is added that might not be rock solid, or the developers aren't sure it is useful.
Try these out and give us some feedback.
Here are a few under development that you can play with now.
Assign a mouse button or stylus button to bring up a toolbox of toolbars right under the cursor. You can also modify what is in the toolbox through the usual View->Toolbars->Customize although it won't appear unless you've assigned a button in preferences: mouse or stylus ( or selected a toolbar configuration that uses it).
This is an experimental feature because not everything you can put in the toolbox behaves. So be aware.
Keep your eyes out for other experimental features in preferences as seen here:
DrawingTools: When drawing a box, circle etc simulate ctrl or shift modifiers by the initial direction you move the mouse.
Action on Tool Tap: Allow a brief tap on the screen to bring up the floating toolbox and/or select an object. May work with pen and highlighter only.
Installing
The official releases of Xournal++ can be found on the
Releases page. We provide
binaries for Debian, Ubuntu, MacOS, and Windows.
There is also an unstable, automated nightly
release that
includes the very latest features and bug fixes.
With the help of the community, Xournal++ is also available on official repositories
of some popular Linux distros and platforms.
Ubuntu and derivatives
An unstable, nightly release is available for Ubuntu-based distributions via the following PPA:
sudoadd-apt-repository ppa:andreasbutti/xournalpp-master
sudoapt update
sudoapt installxournalpp
This PPA is provided by the Xournal++ team.
Fedora
The released version of
xournalpp is available in the
main repository
via Software application or the following command:
sudodnf installxournalpp
or
pkcon installxournalpp
The bleeding edge packages synced to xournalpp git master on a daily basis are available from COPR luya/xournalpp.
openSUSE
On openSUSE Tumbleweed, the released version of Xournal++ is available from the
main repository:
sudozypper inxournalpp
For openSUSE Leap 15.0 and earlier, use the install link from
X11:Utilities.
For all versions of openSUSE, bleeding edge packages synced to xournalpp git
master on a weekly basis are available from
home:badshah400:Staging.
Arch Linux
The latest stable release is available in the [extra]
repository.
To build the latest state of the master branch yourself, use this AUR
package.
Solus Linux
The latest stable release is available in the main repository:
sudoeopkg it xournalpp
Flatpak
The Xournal++ team officially supports a FlatHub
release, which
can be installed with
flatpak installflathub com.github.xournalpp.xournalpp
Note that for Xournal++ to work properly, you must have at least one GTK theme
and one icon theme installed on Flatpak.
The Flatpak manifest can be found at the Xournal++ Flatpak packaging
repository, and all
Flatpak-related packaging issues should be reported there.
Windows
The windows Version has a Bug:
Please start Xournal++, touch with the Pen, Quit Xournal++ and start again.
Then Pen input will be working, until you restart Windows. #659
Mac OS X
Xournal++ will be deliverd with a patched GTK. Else pressure sensitivity is not
working on Mac #569.
(GTK-Issue)
Building
Fileformat
The fileformat *.xopp is an XML which is .gz compressed. PDFs are not embedded into the file, so if the PDF is deleted, the background is lost. *.xopp is basically the same fileformat as *.xoj, which is used by Xournal. Therefor Xournal++ reads *.xoj files, and can also export *.xoj. On exporting to *.xoj all Xournal++ specific Extension are lost, like addtional Background types.
*.xopp can theoretically be read by Xournal, as long as you do not use any new feature, Xournal does not open files at all if there are new attributes or unknown values, because of this Xournal++ will add the extension .xopp to all saved files.
All new files will be saved as *.xopp, if an *.xoj file is opened which was created by Xournal, the Save-As dialog will be displayed on save. If the *.xoj file was by Xournal++ created, Xournal++ overwrite the file on save, and does not change the extension.
We are currently introducing a new file format that can efficiently store attached PDF files and other attachments internally. We will still allow for attachments that are linked to external files. Please refer to #937 for futher details.
Development
For developping new features, write a Ticket, so others know what you are doing.
For development create a fork, and use the master as base. Create a Pull request for each fix.
Do not create big pull requests, as long as you don't break anything features also can be
merged, even if they are not 100% finished.
See GitHub:xournalpp for current development. You can also join
our Gitter channel via the badge on top.
Also take a look at our Coding Conventions
Code documentation
The code documentation is generated using Doxygen.
In order to generate the documentation yourself, first install Doxygen and graphviz, i.e.
sudoapt installdoxygen
sudoapt installgraphviz
on Debian or Ubuntu. Finally, type in doxygen in the root directory of the repository.
The documentation can be found in doc/html and doc/latex. Conveniently display the
documentation with python3 -m http.server 8000 and visit the shown URL to view the
documentation.