Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

On most resources seems to be targeted to Ubuntu touch. If I wanted to write an Ubuntu desktop application, where can I start?

Is the Ubuntu SDK for the desktop too? I read that actually is more targeted to mobile apps.

Given that the Ubuntu SDK is not yet ready for desktop, I'm searching for the avalaible options for developing desktop apps on Ubuntu highlighting the strength and the weakness of each solution.

share|improve this question
By Ubuntu 14.10, the new SDK will also be targeting the desktop, and currently works on the desktop. So you might as well get a jump-start and use the SDK. – iBelieve Aug 21 '13 at 16:59
the fact that it currently on that works it doesn't means that it targets it, even more all the tutorial on the ubuntu site are for mobile – Matteo Pagliazzi Aug 21 '13 at 17:04

I would suggest using Qt as it is easy to use, has an enormous amount of developer documentation, and also will allow you to reuse your backend once the Ubuntu SDK becomes the default toolkit on the desktop as well.

You can find documentation for Qt at Here is a short list of more specific resources you'll find useful:

If you want to use Python, you could look into one of these Python bindings:

Other Qt language bindings can be found here.

There are also other languages and frameworks you can use, including:

However, I recommend using Qt because it has very comprehensive resources, is very powerful, and is being used in the Ubuntu SDK.

Once you've written your application, you'll need to package it. Unfortunately, the new Click packages only work for Ubuntu Touch, so you'll need to use Debian packaging. You can find in-depth guide to packaging here.

share|improve this answer

Quickly is a great little tool for producing and packaging Ubuntu (PyGTK) GUI applications - quickly. It takes out most of the manual, repeating work involved, so that you can entirely focus on your application's functionality instead of setup details.

The Qt Software Development Kit (SDK) is a cross-platform application framework that is widely used for developing application software with a graphical user interface (GUI).

How to Install Qt SDK on Ubuntu Linux

Here is a list of handy open source development tools for use on Ubuntu such as Integrated Development Environments (IDEs) and powerful editors.

Anjuta is an Integrated Development Environment (IDE) for C and C++.

Bazaar-NG is a decentralised version control system used for Ubuntu development.

Bluefish is a powerful editor for experienced web designers and programmers.

Eclipse is an IDE for Java and other programming languages. It forms the basis for closed-source programs such as JBuilder.

Eric is a fully featured Python and Ruby IDE.

Glade is a User Interface designer for building GNOME applications.

IDLE is the Python IDE built with the Tkinter GUI toolkit.

KDevelop is a IDE for KDE which supports many programming languages.

MonoDevelop is an IDE for writing mono/.net applications in C# and other languages.

NetBeans is a Java IDE that features support for CVS and a form builder.

Other resources that you can use:

Ubuntu App Developers

Ubuntu Developer’s Manual

Ubuntu Development Guide: Introduction


Ubuntu's single platform SDK to be ship shape by October

The Ubuntu SDK that will allow developers to build apps that can run across phones, tablets and desktop PCs should be mature enough to build most applications by October this year.

When it is complete the Ubuntu SDK, released in Alpha earlier this year, will allow developers to use the same code base to create apps that run on Ubuntu across multiple form factors. It ties in with the plans by Canonical, the organisation which develops Ubuntu with the community, for Ubuntu to be a single OS that runs across phones, tablets and desktops.

Apps created using the SDK are primarily built using QML, a Javascript-based language for designing application interfaces that can use C++ for the heavy lifting. Ubuntu apps built using QML can have UIs that can scale across different form factors. The dimensions of these UIs can be defined in grid units, which will translate to a different pixel values depending on the device and screen size.

Canonical is aiming for the SDK to be complete enough for most applications to be written by the time Ubuntu 13.10 is released.Zdnet

share|improve this answer

I was looking for the same thing today. I'm new in this but looks like everybody starts with Python/Ruby + Tkinter (GUI). If you understand at least PHP or better JAVA + Swing (GUI) you shouldn't have any problem to learn Python.

Here you have one nice and easy tutorial to start understanding how it works:

Part 1
Part 2

Looks like the guy(TheReimber) who made this tutorial have a full channel with more tutorials in YouTube.

Hope I helped you, I will try to make ubuntu desktop app with this too.

share|improve this answer
thanks! do you know anything about pyqt? – Matteo Pagliazzi Aug 21 '13 at 21:48
Never heard of this one, but it looks nice! PS: a friend told me Qt creator puts non used lines of code, so it may be good idea to do the GUI code manualy, but I'm still giving a try to Qt creator, PyQt and other GUI editors. Thanks! – Deus Oct 22 '15 at 14:31

There is documentation for current version of unity, and few other Ubuntu specific APIs @

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.