A hierarchical note taking application, featuring rich text and syntax highlighting, storing data in a single XML or SQLite file.
The project home page is giuspen.com/cherrytree.
Debian/Linux Mint/UbuntuArch Linux/Manjaro LinuxGentooFedoraOpensuseMacOsWindows links on used libraries
https://www.gtkmm.org/en/documentation.shtml
https://developer-old.gnome.org/gtkmm-tutorial/3.24/
https://developer-old.gnome.org/gtkmm/3.24/
https://developer-old.gnome.org/gtkmm/3.24/hierarchy.html
https://developer-old.gnome.org/gtksourceviewmm/stable/
https://developer-old.gnome.org/libxml+±tutorial/stable/
https://developer-old.gnome.org/libxml++/stable/
https://wiki.gnome.org/Projects/gspell
https://developer-old.gnome.org/gspell/stable/
https://code.visualstudio.com/docs/setup/linux
required installation of Extension “C/C++”
cd cherrytree code .
Build with: Ctrl+Shift+B
Debug with: F5
It is possible to use a container as a full-featured development environment from VS Code.
This works on any operating system that supports Docker.
- Install the system requirements.Open the project in VS Code.(optional) Edit .devcontainer/devcontainer.json to set your DISPLAY environment variable and/or edit other settings.
It is also possible to run the container on a remote Docker host, see the comment at the end.Run the Remote-Containers: Open Folder in Container… command.See previous section for Build and Debug instructions.
./build.sh debBuilding Cherrytree on Ubuntu
Install dependencies:
sudo apt install build-essential cmake ninja-build libgtkmm-3.0-dev libgtksourceviewmm-3.0-dev libxml++2.6-dev libsqlite3-dev gettext libgspell-1-dev libcurl4-openssl-dev libuchardet-dev libfmt-dev libspdlog-dev
Note: On Debian10 / Ubuntu 18.04 libfmt-dev and libspdlog-dev are not used since too old; bundled source code is built instead
Get cherrytree source, compile and run:
git clone https://github.com/giuspen/cherrytree.git cd cherrytree git submodule update --init ./build.sh ./build/cherrytree
Install documentation:
sudo apt install devhelp libgtkmm-3.0-doc libgtksourceviewmm-3.0-doc libglibmm-2.4-doc libpangomm-1.4-doc libxml++2.6-doc libgspell-1-doc
devhelp
xdg-open /usr/share/doc/libgtkmm-3.0-doc/reference/html/index.html xdg-open /usr/share/doc/libgtksourceviewmm-3.0-doc/reference/html/index.html xdg-open /usr/share/doc/libglibmm-2.4-doc/reference/html/index.html xdg-open /usr/share/doc/libpangomm-1.4-doc/reference/html/index.html xdg-open /usr/share/doc/libxml++2.6-doc/reference/html/index.html xdg-open /usr/share/doc/libgspell-1-dev/html/index.htmlBuilding Cherrytree on Arch
Install dependencies:
sudo pacman -S gtksourceviewmm libxml++2.6 gspell uchardet fmt spdlog
Get cherrytree source, compile and run:
git clone https://github.com/giuspen/cherrytree.git cd cherrytree git submodule update --init ./build.sh ./build/cherrytreeBuilding Cherrytree on Gentoo
Install dependencies:
sudo emerge --newuse gtkmm gtksourceviewmm glibmm pangomm gspell libxml2 sqlite curl uchardet libfmt spdlog
Get cherrytree source, compile and run:
git clone https://github.com/giuspen/cherrytree.git cd cherrytree/ git submodule update --init ./build.sh ./build/cherrytreeBuilding Cherrytree on Fedora
Install dependencies:
sudo dnf install @development-tools gcc-c++ libtool autoconf gtkmm30-devel gtksourceviewmm3-devel libxml++-devel libsq3-devel gettext-devel gettext intltool libxml2 gspell-devel cmake ninja-build libcurl-devel uchardet-devel fmt spdlog-devel
Get cherrytree source, compile and run:
git clone https://github.com/giuspen/cherrytree.git cd cherrytree git submodule update --init ./build.sh ./build/cherrytree
(OPTIONAL) Download documentation
sudo dnf install gtkmm30-doc gtksourceviewmm3-doc glibmm24-doc glibmm24-doc libxml++-doc
(OPTIONAL) Open documentation
xdg-open /usr/share/doc/gtkmm-3.0/reference/html/index.html xdg-open /usr/share/doc/gtksourceviewmm-3.0/reference/html/index.html xdg-open /usr/share/doc/glibmm-2.4/reference/html/index.html xdg-open /usr/share/doc/pangomm-1.4/reference/html/index.html xdg-open /usr/share/doc/libxml++2.6/reference/html/index.htmlBuilding Cherrytree on Opensuse
Install dependencies:
sudo zypper install cmake ninja gcc-c++ gtkmm3-devel gtksourceviewmm3_0-devel gspell-devel libxml++26-devel sqlite3-devel libcurl-devel libuchardet-devel fmt spdlog-devel
Get cherrytree source, compile and run:
git clone https://github.com/giuspen/cherrytree.git cd cherrytree git submodule update --init ./build.sh ./build/cherrytreeBuilding Cherrytree on MacOS
Cherrytree is now part of Homebrew!
brew update brew install cherrytree
If for any reason you prefer to build it yourself, install dependencies:
brew install cmake ninja pkg-config python3 adwaita-icon-theme fmt gspell gtksourceviewmm3 libxml++ spdlog uchardet curl
Get cherrytree source, compile and run:
git clone https://github.com/giuspen/cherrytree.git cd cherrytree git submodule update --init ./build.sh ./build/cherrytreeBuilding Cherrytree on Windows
Install MSYS2: https://www.msys2.org/ (we cover here the packages for 64 bit installation)
Launch ‘MSYS2 MinGW 64-bit’ terminal (there are 3 different terminals, make sure it is 64-bit otherwise it will cause issues)
Run the following command multiple times there until there are no more updates:
pacman -Syuu
Install required packages to build cherrytree:
# toolchain, cmake, ninja pacman -S --needed --noconfirm mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja # gtkmm3, gtksourceviewmm3, libxml++2.6, sqlite3 pacman -S --needed --noconfirm mingw-w64-x86_64-gtkmm3 mingw-w64-x86_64-gtksourceviewmm3 mingw-w64-x86_64-libxml++2.6 mingw-w64-x86_64-sqlite3 # gspell, curl, uchardet, fmt, spdlog pacman -S --needed --noconfirm mingw-w64-x86_64-gspell mingw-w64-x86_64-curl mingw-w64-x86_64-uchardet mingw-w64-x86_64-fmt mingw-w64-x86_64-spdlog # gettext, git, nano, meld3 pacman -S --needed --noconfirm mingw-w64-x86_64-gettext git nano mingw-w64-x86_64-meld3
use native windows theme
mkdir /etc/gtk-3.0 nano /etc/gtk-3.0/settings.ini
[Settings] gtk-theme-name=win32
console settings
nano ~/.bashrc
CHERRYTREE_CONFIG_FOLDER="C:/Users/${USER}/AppData/Local/cherrytree"
[ -d ${CHERRYTREE_CONFIG_FOLDER} ] || mkdir -p ${CHERRYTREE_CONFIG_FOLDER}
alias l="ls -lah --color"
alias g=git
bind '"e[A":history-search-backward'
bind '"e[B":history-search-forward'
Get cherrytree source, compile and run:
git clone https://github.com/giuspen/cherrytree.git cd cherrytree git submodule update --init ./build.sh ./build/cherrytree.exe
Troubleshooting:
Cannot build: make sure to start 64-bit terminalCannot build: remove cherrytree/build folder and start build.sh script againCannot start cherrytree: you either have to run cherrytree from the msys2 mingw64 terminal or copy and replace cherrytree in cherrytree_0.99.X_win64_portable folder (downloaded from the site) by the new one, so dependencies are fulfilled



