This program is a structured notetaking application based on GTK+ 3. Write your notes in instantly-formatted Markdown, organise them in a tree of folders that can be instantly navigated from within the program, and add hand-drawn notes by mouse, touchscreen or digitiser.
We have a Discord server and a bridged Matrix space for questions and discussing the project's development.
I figured it would be nice to have a free-software, platform-independent OneNote. While there is a remarkable number of free (speech or beer) notetaking applications out there, to my best knowledge, none of them simultaneously check the following boxes:
The automated builds are by far the most up-to-date and should generally be as stable as any of the builds, although they are naturally less tested.
Moreover, there is also
The following older binary builds are also available:
To run the binary, you will in addition require at least the following packages: libgtkmm-3.0-1v5 libgtksourceviewmm-3.0-0v5 libjsoncpp1 zlib1g libxml2
, where the version of libgtkmm-3.0-1v5
is at least 3.20. (In particular, this means that Ubuntu 16.04 LTS (xenial) and derived distributions are too old.) If the binary does not work for you, it is recommended that you build from source, as described below.
Invoke meson _build
followed by ninja -C _build
to compile NoteKit. You can then install NoteKit by invoking meson install -C _build
(If you don't have polkit running, you'll need to execute it as uid 0).
Required dependencies (pkg-config names):
gtkmm-3.0
gtksourceview-3.0
zlib
fontconfig
jsoncpp
clatexmath
** If clatexmath is not installed, meson will automatically build it too (you'll need the additional tinyxml2
dependency). If you do not want cLaTeXMath, you can give meson the -Dclatexmath=false
option.
Either invoke cmake .
followed by make
(which will build a binary at cmake-build-Release/output/notekit
), or get CodeLite, open and build the workspace.
Required libraries:
cmake
.libgtkmm-3.0-dev
>=3.20 (UI stuff)libgtksourceviewmm-3.0-dev
>=3.18 (more UI stuff)libjsoncpp-dev
~ 1.7.4 (config files; older versions may work)zlib1g-dev
libfontconfig1-dev
~ 2.13 (to use custom fonts)If you want to enable LaTeX math rendering support, you moreover need:
HAVE_CLATEXMATH
to ON.install-clatexmath.sh
to clone cLaTeXMath into a subfolder and build it as a static library.gcc
is sufficiently new.For older LaTeX math support using lasem, you can proceed as follows:
HAVE_LASEM
to ON.LASEM_PATH
(default: ./lasem
). (Remember to build it; just checking out is not enough.)libxml2-dev
~ 2.9 (older versions may work)Development and testing was exclusively conducted on X11-based Linux. The one tested way of building on Windows involves MSYS2's mingw-w64 package family (following the cmake
route outlined above). Since MSYS2's coreutils
depend on its Cygwin fork, the released Windows binary packages instead include a subset of coreutils from GnuWin32.
If you want to hack on NoteKit, you can use the meson provided devenv to avoid having to install NoteKit each time you changed something. To make use of the devenv you need to invoke meson devenv -C _build
after configuring. You can then build NoteKit simply by invoking ninja
without any further parameter and launch NoteKit afterwards by simply invoking notekit
. (Please note, that you will want to use meson >= 0.59.0)
To exit out of the environment send an EOF to the shell (<Ctrl>D) or type exit
.
$HOME/.config/notekit
, and notes are in $HOME/.local/share/notekit
. This may depend on your $XDG_
environmental variables, and the notes base path can be changed in the config.json
file in the configuration folder.data/
and sourceview/
) are searched in /notekit/
under $XDG_DATA_DIRS
(default: /usr/local/share:/usr/share
), followed by the current working directory .
. If packaging Notekit or otherwise preparing it for system-wide installation, these two folders should probably be copied into /usr/share/notekit/data
and /usr/share/notekit/sourceview
respectively.+
node in the tree view and enter a name.+
node in the tree view and enter a name ending in /
, e.g. new folder/
.sourceview/markdown.lang
.$
signs, e.g. $\int x dx$
.data/stylesheet.css
. Clear it if parts of the UI look wonky.Late alpha. Creating and editing notes and drawing works well enough, but many basic quality-of-life features (such as resizing/moving drawings) are still missing.