geany is a free, open source ides & code editors project written in C and released under GPL-2.0. It has 3,725 GitHub stars, 667 forks and 1,281 open issues, and was last pushed 5 days ago. On this registry it ranks #26 of 32 tracked projects in IDEs & Code Editors, with 5 head-to-head comparisons available.

What is geany?

Geany is a small, fast, GPL-2.0-licensed integrated development environment written in C for developers who want IDE features without the weight of a heavy, desktop-environment-bound toolchain.

What it is

Geany is a lightweight IDE built with the GTK+ toolkit, developed with the explicit goal of being small and fast while depending on as few other packages as possible. It aims to stay independent of any particular desktop environment, so that the only runtime requirement is the GTK+ libraries. Its interface is shown in the project's screenshot of the main window, and the editor component is the Scintilla library, which is bundled and compiled with a C++ compiler.

The concrete problem Geany addresses is the trade-off developers usually face between a bare text editor and a full IDE: getting syntax highlighting, code completion, symbol navigation and a terminal without pulling in a large stack of dependencies or tying the tool to KDE or GNOME. Written in C and distributed under GPL-2.0, it is available for Linux, BSD and similar distributions, with prebuilt binaries for Mac OS and Windows.

Key capabilities

  • Syntax highlighting across many filetypes, including C, Java, PHP, HTML, Python, Perl and Pascal.
  • Code completion, plus auto completion of frequently used constructs such as if, for and while, and auto completion of XML and HTML tags.
  • Call tips and code folding for navigating structured source files.
  • Symbol lists that expose the structure of the current file.
  • Embedded terminal emulation (the optional vte feature, which can be turned off at build time with meson configure -Dvte=false build).
  • Extensibility through plugins.
  • Two build paths: Autotools and a work-in-progress Meson build, with selectable features listed in meson_optionts.txt.

Who uses it and how

  • Developers on Linux, BSD and similar distributions who install Geany from distribution packages through Debian, Fedora, Ubuntu and others, thereby receiving automatic updates from the package manager.
  • Users on Mac OS and Windows who download prebuilt binary packages from https://www.geany.org.
  • Contributors building from a Git clone with Meson (meson build, meson compile -C build, sudo meson install -C build, defaulting to /usr/local) or with Autotools after installing autopoint, automake, autoconf, libtool, gettext and the GLib development files.
  • Builders who trim dependencies by disabling selectable features, for example turning off vte to drop the terminal requirement.
  • Documentation builders who need rst2html from Docutils when compiling from Git, since the pre-built manual is not included in that case and --disable-html-docs can be passed to fall back to the online manual.

Getting started

The easiest and recommended route is installing distribution packages on Linux, BSD and similar systems, while prebuilt binaries for Mac OS and Windows are available from https://www.geany.org. To build from source you need the GTK3 libraries and headers plus Pango, Glib and ATK, then meson build followed by meson compile -C build.

How it compares

No list of paid products this project replaces is given, and the registry's other entries are not named in the available facts, so Geany stands alone in this registry.

When to use it — and when not

A builder must supply the GTK3 runtime and its Pango, Glib and ATK dependencies, a C compiler, a C++ compiler for Scintilla, the Make tool, and Docutils' rst2html for the manual; Meson support is explicitly still incomplete and a work-in-progress, building on Mac OS and Windows from source is described as more complicated and out of scope for the README, and the project currently tracks 1281 open issues. It is a poor fit for anyone who needs a full-featured IDE rather than a small editor, and Meson users should expect rough edges until that build path is finished.

project readme (upstream, from github) — read inline

Geany - A fast and lightweight IDE

About

Geany is a small and lightweight integrated development environment. It was developed to provide a small and fast IDE, which has only a few dependencies from other packages. Another goal was to be as independent as possible from a special Desktop Environment like KDE or GNOME. So it is using only the GTK+ toolkit and therefore you need only the GTK+ runtime libraries to run Geany.

.. image:: doc/images/main_window.png :width: 750 :alt: Screenshot of Geany showing the main user interface :target: doc/images/main_window.png

Features

The basic features of Geany are:

  • syntax highlighting
  • code completion
  • auto completion of often used constructs like if, for and while
  • auto completion of XML and HTML tags
  • call tips
  • folding
  • many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal
  • symbol lists
  • embedded terminal emulation
  • extensibility through plugins

Installation from distribution packages

Using distribution packages on Linux, BSD and similar distributions is the easiest and recommended way. This way you will also benefit from automatic Geany updates by the package manager of the distribution.

Packages are available for most distributions including Debian, Fedora, Ubuntu and many more.

Installation on Mac OS and Windows

Prebuilt binary packages for Mac OS and Windows can be found on https://www.geany.org.

Installation from sources

Requirements ++++++++++++ For compiling Geany yourself, you will need the GTK3 libraries and header files. You will also need its dependency libraries and header files, such as Pango, Glib and ATK. All these files are available at https://www.gtk.org.

Furthermore you need, of course, a C compiler and the Make tool; a C++ compiler is also needed for the required Scintilla library included. The GNU versions of these tools are recommended.

To build the user manual you need rst2html from Docutils. A pre-built version of the manual is available in distribution tarballs and will be used as fallback if rst2html is missing. When building from Git however, that pre-built version is not included and rst2html is required by default. You can explicitly disable building the user manual using the --disable-html-docs configure flag, but this will result in not installing a local version of the user manual, and Geany will then try and open the online version instead when requested.

.. note:: Building Geany from source on Mac OS and Windows is more complicated and is out of scope of this document. For more information on building instructions for these platforms, please check the wiki at https://wiki.geany.org/howtos/.

Installing from a Git clone +++++++++++++++++++++++++++

Using the Meson build system ++++++++++++++++++++++++++++

N.B. Meson support is still incomplete and a work-in-progress.

Meson requires to chose a separate build directory. Either create one, or let meson do it:

meson build or mkdir build; cd build; meson ..

Either command will configure the build system. The system is probed in many ways and system-dependant build files are created. This includes location of dependencies and compiler and linker flags required for them.

To build Geany, follow with a meson compile -C build

To install Geany, follow the build with a sudo meson install -C build.

By default, meson will install Geany to /usr/local. A different prefix can be selected at the initial command or via reconfiguration:

meson --prefix /opt build or meson configure --prefix /opt build

Geany has some selectable features that may reduce the required build and runtime dependencies. See meson_optionts.txt for a full list.

To turn a feature off, use -D=false when configuring the build, for example: meson configure -Dvte=false build

Using Autotools +++++++++++++++

Install Autotools (autopoint, automake, autoconf and libtool), gettext, and the GLib development files before running any of the following commands, as well as rst2html from Docutils (see above for details). Then, run ./autogen.sh and then follow the instructions for installing from a release tarball_.

Installing from a release tarball +++++++++++++++++++++++++++++++++

Run the the following three commands::

$ ./configure
$ make
(as root, or using sudo)
% make install

For more configuration details run ./configure --help.

If there are any errors during compilation, check your build environment and try to find the error, otherwise contact the mailing list or one of the authors.

See the manual for details (geany.txt/geany.html).

Usage

To run Geany just type::

$ geany

on a console or use the applications menu from your desktop environment. For command line options, see the manual page of Geany or run::

$ geany --help

for details. Or look into the documentation in the doc/ directory. The most important option probably is -c or --config, where you can specify an alternate configuration directory.

License

Geany is distributed under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. A copy of this license can be found in the file COPYING included with the source code of this program. The included Scintilla library (found in the subdirectory scintilla/) has its own license, which can be found in the file scintilla/License.txt included with the source code of this program.

Ideas, questions, patches and bug reports

See https://www.geany.org/. If you add something, or fix a bug, please create a pull request at https://github.com/geany/geany/. Also see the HACKING file.

Frequently asked questions

Is geany free to use?

geany is open source under the GPL-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does geany do?

A fast and lightweight IDE

What is geany written in?

geany is primarily written in C. Its source is publicly available at https://github.com/geany/geany, and it has 3,725 GitHub stars.