You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Michael J Gruber 20c4c012c8 configure background export types in dialog 5 years ago
.github/ISSUE_TEMPLATE Show gtk version in cli and in About window 6 years ago
azure-pipelines fix cmake_flags in pipeline scripts aren't escaped 5 years ago
cmake This is a temporary fix for all versions using the GHC-filesystem lib v. < 3.10 5 years ago
debian Fix some misspellings 5 years ago
desktop Fix some misspellings 5 years ago
development Remove Eclpise project files and add them to gitignore 6 years ago
mac-setup Move documentation for MacOS 6 years ago
plugins Extend Lua Plugin API with page and layer operations and provide layer actions plugin 5 years ago
po [skip ci] Update translation template 5 years ago
readme Update LinuxBuild.md 5 years ago
resources Latex tool enhancements (#1952) 6 years ago
rpm/fedora Rename xournal-thumbnailer to xournalpp-thumbnailer 6 years ago
src configure background export types in dialog 5 years ago
test Minor C++ touchup and replacing sprintf with snprintf. 5 years ago
ui configure background export types in dialog 5 years ago
windows-setup Derive supported locales in windows setup creator from avail. translations 5 years ago
.clang-format clang-format-file 6 years ago
.clang-tidy adjusted formatting 6 years ago
.gitignore Update .gitignore 6 years ago
ABOUT-NLS
AUTHORS add basic spline tool 6 years ago
CHANGELOG.md Update CHANGELOG.md 5 years ago
CMakeLists.txt Clean up for final PR 5 years ago
Doxyfile Remove old PDF Export, clean up code 7 years ago
LICENSE
README.md Added more infos about installation on Debian to README (#2241) 5 years ago
appimagecraft.yml Make sure translations are built before installation 6 years ago
crowdin.yml Update crowdin.yml 7 years ago
test-ubuntu-ppa.sh
xournalpp-ubuntu-ppa.recipe Update xournalpp-ubuntu-ppa.recipe 5 years ago

README.md

Xournal++

Build Status Join the chat at https://gitter.im/xournalpp/xournalpp

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 improve 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, auto-save, and auto backup tools
  • Customizable 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 15 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

Mobile & web app

Since mid 2020, there is a Flutter-written mobile app for Android, Chrome OS and iOS (in coming) as well as a web app available. Even though it is not perfectly stable nor every of Xournal++'s features is supported yet, you may check it out and open your Xournal++ notebooks on your mobile devices. You can get in touch in it's separate repository on GitLab.

Get it on Google Play

The web app is available at xournal.online.

Why is the iOS app not published yet?

According to the Apple App Store guidelines, it is prohibited to publish unstable or beta apps. Hence we wait until Xournal++ Mobile works more stable and offers more complete feature compatibility to Xournal++.

Linux

Windows 10

macOS High Sierra

Xournal++ Mobile

Toolbar / Page Background / Layer

Multiple page background, easy selectable on the toolbar

Layer sidebar and advance Layer selection.

Multiple predefined and fully customizable 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 (Buster), Ubuntu (16.04), MacOS (10.13 and newer), and Windows. For other Linux distributions (or older/newer ones), we also provide an AppImage that is binary compatible with any distribution released around or after Ubuntu 16.04. For installing Xournal++ Mobile on handheld devices, please check out Xournal++ Mobile's instructions

A note for Ubuntu/Debian users: The official binaries that we provide are only compatible with the specific version of Debian or Ubuntu indicated by the file name. For example, if you are on Ubuntu 20.04, the binary whose name contains Ubuntu-xenial is only compatible with Ubuntu 18.04. If your system is not one of the specific Debian or Ubuntu versions that are supported by the official binaries, we recommend you use either the PPA (Ubuntu only), the Flatpak, or the AppImage.

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.

Debian

There are Stable releases and unstable automated nightly releases for Debian.

Ubuntu and derivatives

Stable PPA

The latest stable version is available via the following unofficial PPA:

sudo add-apt-repository ppa:apandada1/xournalpp-stable
sudo apt update
sudo apt install xournalpp

Unstable PPA

An unstable, nightly release is available for Ubuntu-based distributions via the following PPA:

sudo add-apt-repository ppa:andreasbutti/xournalpp-master
sudo apt update
sudo apt install xournalpp

This PPA is provided by the Xournal++ team. While it has the latest features and bug fixes, it has also not been tested thoroughly and may break periodically (we try our best not to break things, though).

Fedora

The released version of xournalpp is available in the main repository via Software application or the following command:

sudo dnf install xournalpp

or

pkcon install xournalpp

The bleeding edge packages synced to xournalpp git master on a daily basis are available from COPR luya/xournalpp. Copr build status

openSUSE

On openSUSE Tumbleweed, the released version of Xournal++ is available from the main repository:

sudo zypper in xournalpp

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 [community] repository.

To build the latest state of the master branch yourself, use this AUR package.

Solus

The latest stable release is available in the main repository:

sudo eopkg it xournalpp

Flatpak

The Xournal++ team officially supports a FlatHub release, which can be installed with

flatpak install flathub 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. To enable LaTeX support, you will also need to install the TeX Live extension:

flatpak install flathub org.freedesktop.Sdk.Extension.texlive

The Flatpak manifest can be found at the Xournal++ Flatpak packaging repository, and all Flatpak-related packaging issues should be reported there.

Android and Chrome OS

Android is supported by Xournal++ Mobile. It can be downloaded either on the Tags page or from Google Play.

iOS

Unfortunately, the iOS app is not published yet in the Apple App Store. See here to learn, why. Anyway, in the Building section you can learn how to build an early preview.

Windows

Official Windows releases are provided on the Releases page.

Notes:

  • Currently, only WinTab drivers are supported. This is due to a limitation with the underlying library that we use, GTK.
  • There is a GTK bug that prevents stylus input from working correctly. Please start Xournal++, touch with the stylus, quit Xournal++ and start again. Then stylus input will be working, until you restart Windows. See #659.

Mac OS X

Mac OS X releases are provided on the Releases page.

Notes:

  • There have been compatibility problems with Mac OS X Catalina regarding both file permissions and stylus support (#1772 and #1757). Unfortunately, we don't have the resources to adequately support Catalina at this time. Help would be appreciated!
  • Xournal++ will be delivered with a patched GTK. Else pressure sensitivity will not work on Mac #569.

Building

Linux Build

Mac Build

Windows Build

Android Build

iOS Build

File format

The file format _.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 file format 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 additional 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 further details.

Development

For developing 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.

sudo apt install doxygen
sudo apt install graphviz

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.