Geary

Introduction

In 2011 Yorba broke ground on a new email application for the GNOME desktop.  Geary brings to the open source community a new lightweight, easy-to-use, feature-rich email client.  Our long-term vision for Geary is an email client built for daily use that can be used in place of or alongside Web-based email services.  Features we're planning include:

  • Full IMAP support, making email synchronization a breeze
  • Tight integration with popular Web mail services, including Gmail, Yahoo! Mail, and other popular sites
  • Full-featured WYSIWYG editor for composing emails
  • Threaded / conversation views
  • Lightning fast as-you-type email search
  • Desktop notification of new email
  • Support for multiple email accounts
  • Offline mode
  • Full support for popular IMAP servers, including Dovecot

For more information about planned features, see the Geary roadmap.

Documentation

Architecture

Technical and architectural highlights include:

  • Written in 100% Vala
  • Built atop a new fully asynchronous GObject-based IMAP client library
  • Uses a sparse SQLite database for full caching of email and FTS (full text search) indexing
  • Slim and economical user interface design

Building & Running

To fetch a copy of the source from Yorba's git repository:

$ git clone git://yorba.org/geary

To build:

$ cd geary
$ ./configure
$ make

Building any version of Geary requires Vala 0.17.4 or higher with a full GIR repository, intltool, and cmake. Building Geary from git also requires desktop-file-validate. The developer packages (headers) for the following libraries are also required:

  • canberra
  • gee-1.0
  • gio-2.0
  • glib-2.0
  • gmime-2.6
  • gtk+-3.0
  • notify
  • sqlite3
  • unique-3.0
  • webkitgtk-3.0
  • messaging-menu (optional; enables support for Ubuntu 12.10 and later Unity messaging menu)
  • unity (optional; enables support for Ubuntu Unity launcher)

Additionally, if you're building the latest stable release of Geary (0.3.1), you'll need:

  • gnome-keyring-1
  • indicate (optional; enables support for Ubuntu 12.04 Unity messaging menu)

Or, if you're building the latest from git, you'll instead need:

  • libsecret-1

Most of these are standard libraries available from major distros' repositories.

Fedora

On Fedora 18, you can install build dependencies for the latest stable release of Geary (0.3.1) as follows:

$ sudo yum install vala gobject-introspection-devel intltool cmake libcanberra-devel \
    libgee06-devel glib2-devel gmime-devel gtk3-devel libnotify-devel sqlite-devel \
    unique3-devel webkitgtk3-devel libgnome-keyring-devel

Or for the latest from git, instead run:

$ sudo yum install vala gobject-introspection-devel intltool cmake desktop-file-utils \
    libcanberra-devel libgee-devel glib2-devel gmime-devel gtk3-devel libnotify-devel \
    sqlite-devel unique3-devel webkitgtk3-devel libsecret-devel

Ubuntu

On Ubuntu 12.04, you can install Vala 0.17 from the Vala PPA, which you can add to your system as follows:

$ sudo add-apt-repository ppa:vala-team/ppa
$ sudo apt-get update
$ sudo apt-get upgrade

On Ubuntu 12.10 or later, you don't need to add any PPAs (Vala 0.17 is available in the valac-0.18 package in the official repositories).

You can obtain the dependencies in any Ubuntu for the latest stable release of Geary (0.3.1) with this command:

$ sudo apt-get install valac-0.18 libgirepository1.0-dev intltool cmake libcanberra-dev \
    libgee-dev libglib2.0-dev libgmime-2.6-dev libgtk-3-dev libnotify-dev libsqlite3-dev \
    libunique-3.0-dev libwebkitgtk-3.0-dev libgnome-keyring-dev

Or if you're building from git, use:

$ sudo apt-get install valac-0.18 libgirepository1.0-dev intltool cmake desktop-file-utils \
    libcanberra-dev libgee-0.8-dev libglib2.0-dev libgmime-2.6-dev libgtk-3-dev libnotify-dev \
    libsqlite3-dev libunique-3.0-dev libwebkitgtk-3.0-dev libsecret-1-dev

Note that Ubuntu 12.04 does not have all the dependencies to build Geary from git; here are some hints on getting everything installed.

To enable Unity features on 12.04 (only supported in the stable release), also run:

$ sudo apt-get install libunity-dev libindicate-dev

Or to enable Unity features on 12.10 or later (supported in both the stable release and from git), instead use:

$ sudo apt-get install libunity-dev libmessaging-menu-dev

You should check that you are using the right version of valac with the command valac --version:

Vala 0.18.1

The version number must be at least 0.17.4. If it reports an earlier version, run

$ sudo update-alternatives --config valac

and select 0.18 there.

Running

Once compiled, Geary can be run straight from the build directory:

$ ./geary

It will prompt for a username and a password. Geary will then fetch all the account folders and load the most recent messages from the Inbox.

Installation

After building, Geary can be installed with:

$ sudo make install

and removed with:

$ sudo make uninstall

Development

Geary architecture scratchpad

Notes from GUADEC 2012 Geary BoF

Geary status and notifications (desktop integration)

Geary + Folks Integration

Postfix/Dovecot Setup

Full-text search engine performance comparison

GearyTestChecklist

Community

Geary is in an early development phase, and we'd welcome your suggestions or feedback. You can contact the Geary team directly at <geary at yorba.org>.

We also have a public mailing list. To subscribe, send a message with a subject: of `subscribe` to or go here. An archive of past mailing list messages is available at http://lists.yorba.org/pipermail/geary.

Translation

The Geary page at Transifex.net shows our current translation status. We accept translations exclusively through Transifex. If you're interested in contributing to the translation effort, download the geary.pot file from Transifex. You can use whatever desktop PO editing software you prefer to edit it; POEdit and LoKalize seem to be the two most commonly used PO editing packages. Submit your new or revised PO file to us on Transifex for review and testing. Once reviewed we’ll commit it to our Git repository and your translation should appear in the next release of the Geary!