đź““ Early-alpha note taking application for elementaryOS.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



A distraction-less writing app for elementaryOS.


About Focus

Focus is a text editor that lets you focus in what's actually important: content. It has a very simple user interface that doesn't distract you while you're writing your documents or papers.

Focus uses Markdown syntax. You can write nice and sexy text plain documents and papers and format them using a really simple markup language. Markdown is really easy to learn and there are thousands of cheatsheets on the Internet in case you need some help.

Focus is designed as an elementaryOS app. It follows its guidelines and it's designed to look like a native elementaryOS app. It's crafted on Vala, it uses GTK+3 and libgranite and it's really simple to use.

Focus is not a general purpose text editor that you would use to edit any kind of language. It is designed to work specifically with Markdown syntax. If you need a text editor for working with other formats or for coding, please use Scratch, gedit or any other text editor.

Focus is on early development and it's not a finished, stable product. Keep in mind that some features haven't been implemented yet and that the app may be slightly unstable for now.

Getting Focus

At the moment the only way to install Focus is compiling it from scratch. Instructions are provided below. It's expected to have a nice PPA in the future so that you can get all the packages and updates painlessly.

Supported OSes

Focus is designed for Linux. Specifically it targets elementaryOS, by following its guidelines. However, it should be possible to install Focus on any GTK compatible distribution provided you install required dependencies.


TL;DR: run this command:

~ $ sudo apt-get install cmake valac libgtk-3-dev libglib2.0-dev libgranite-dev

Ubuntu users: Focus requires libgranite 0.2. Unfortunately, both Ubuntu 12.04 and Ubuntu 14.04 come with an old version of libgranite. You won't be able to compile Focus on Ubuntu unless you install libgranite-dev from elementaryOS PPA (ppa:elementary-os/stable). It's up to you whether to add this PPA or not. I did some tests on my own and it worked without any side effect. I'm not responsible on any case if adding this PPA blows your computer. Blame Ubuntu and its lame package management policy!

Focus uses CMake as its compiling system and it's developed using Vala programming language. You'll need to have installed the following development libraries to make it work:

  • GTK+3: it's the core UI library we're using.
  • libgranite: specific UI components designed for elementaryOS.
  • GLib: standard GNOME library. Should come preinstalled with Vala.
  • GIO: GNOME I/O File library. Easy to get too.

Building and Installing Focus

Download and extract Focus as a zipball or as a tarball, or clone the repository using Git. Then, switch to focus folder and build the project as follows:

~/focus $ mkdir build
~/focus $ cd build
~/focus/build $ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
~/focus/build $ make
~/focus/build $ sudo make install

After that, Focus will be installed. You can start Focus by opening it from the Applications menu or by running focus from your terminal. When you run make install the required GSettings schemas will be copied to your system. Alternatively, you skip install step. However, you must install GSetting schema manually, else the program won't run. To install GSetting schema, go to /schemas directory, and run the following command:

~/focus/schemas $ cp com.github.danirod.focus /usr/share/glib-2.0/schemas
~/focus/schemas $ glib-compile-schemas /usr/share/glib-2.0/schemas

See here for more information about how to do this step.

Project status

I'm very happy with this project and I'm working fast.

I'll consider version v0.1 ready to be released once the user interface has been designed and implemented and once Focus recognizes most common Markdown rules.