Zim (software)

Zim is a graphical text editor designed to maintain a collection of locally stored wiki-pages, a personal wiki. It works as a personal knowledge base and note-taking software application that operates on text files using markdown. Each wiki-page can contain things like text with simple formatting, links to other pages, attachments, and images. Additional plugins, such as an equation editor and spell-checker, are also available. The wiki-pages are stored in a folder structure in plain text files with wiki formatting. Zim can be used with the Getting Things Done method.

Zim is written in Python using GTK libraries. It is open source and free software under the GPL-2.0-or-later license.

Features
Zim features several ways of organizing pages and content, and can be extended with a variety of included plugins. Pages can be browsed through an index or be sorted by tags, and pages can be navigated through a table of contents. Pages can dynamically be linked together within notebooks; links to pages can automatically be renamed when a page is renamed. With additional configuration, links can be made between pages in different notebooks on the same machine. The application has a system for managing tasks and todo lists, as well as a calendar plugin that can create and organize pages by date. It also includes a plugin for spell-checking that uses GtkSpell.

Zim offers the ability to create customizable plugins, custom tools with Python, and customizable themes including dark mode and button styles.

In Zim, text is written and saved in a lightweight mark-up that is a hybrid of DokuWiki and Markdown. The wiki editor accepts input in either WYSIWYG format or markdown source code. Zim has support for multimedia content. Images can be inserted and displayed directly in pages, and other types of files can be stored as attachments. The application does auto-saving per character, and the cursor position is saved for every note. It also has a Revision control system plugin that can use GNU Bazaar, Git, Mercurial, or Fossil as the back-end. Single pages or a compilation of all notes cam be exported as HTML, slideshow, Markdown, and reStructuredText.

Several plugins are included for inserting other types of data besides images into pages. These include a plugin for adding equations to pages using LaTeX and dvipng, a plugin for adding plots to pages using GNU R or Gnuplot, and a plugin for adding diagrams to pages using Graphviz. Another plugin uses Lilypond for note sheet integration.

Zim can also integrate with other software through plugins. It can integrate with GNOME's Zeitgeist via a plugin. Third-party plugins are also available for integrating the reference managers Zotero and Mendeley.

Availability
Several Linux distributions include Zim in their repositories (as of 2011), in particular Debian, Ubuntu, Arch Linux and Fedora Linux. Also FreeBSD, OpenBSD and OpenSUSE include Zim in their ports collections. Zim is present in the Linux Mint repository as of November, 2022.

The core features of Zim depend on python, gtk and python-gtk modules and thus Zim can be easily ported to any platform where these modules are available. In particular, Zim has been ported to the Microsoft Windows operating system and works very well with a native feel. It has also been ported to Mac OS, but as of 2015 there were still a few issues, primarily being no native UI integration and the procedure to install being involved. There were attempts and plans to port to Android.