View source for Tichy

From Openmoko

Jump to: navigation, search

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in the group: Administrators.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page:

Template used on this page:

Return to Tichy.

Personal tools

       _       _           
   _  (_)     | |          
 _| |_ _  ____| |__  _   _ 
(_   _) |/ ___)  _ \| | | |  A Python Applets Manager
  | |_| ( (___| | | | |_| |
   \__)_|\____)_| |_|\__  |  For Openmoko

tichy main window
tichy drawing app
tichy style app
tichy freedesktop app
tichy keyboard app


Tichy currently diverged back from Paroli. Tichy is a work in progress, for more information and to understand the goals of tichy, please read the README file included in the source repository.

Tichy webpage


Tichy is a python applets manager for embedded devices.

The goal of the project is to make it easy to write many kind of applications for openmoko using the python language.

Tichy provides the following things :

  • Graphics User Interface widgets
  • Services registering and Requesting (for example an application that wants to send a message will request for an application implementing the message sending service)
  • Tasklets system (This allow to write callback waiting process as if they were threads)
  • Abstraction of Item / View
  • A plug in system that make it easy to add new functionalities / applets to tichy

How to write an applets / plug-ins for tichy ?

It is very easy to do. If you want to write a new applet, you just need to create a new directory in tichy/test/plugins/apps/. You can have a look at the other plug-ins to get an idea of how to do it. A basic app look like this :

import tichy
import tichy.gui as gui
import tichy.item as item
from tichy.application import Application

class MyApp(Application):
    name = "My Application"
    icon = 'icon.png'   # to be found in the app directory

    def run(self, parent):
    w = gui.Window(parent, modal = True)   # We run into a new modal window
    # Create a new frame with a "back" button on top
    frame = gui.ApplicationFrame(w, self, back_button=True)

    # This box is used to store the widgets
    box = gui.Box(frame, axis=1)

    # Create a text item
    text = item.Text('click to edit', editable = True)
    # Put a view of the item on the screen

    # Add a button
    button = gui.Button(box)
    gui.Label(button, "click me")

    def on_click(b):
        # "yield" means "block until the tasklet returns"
        yield gui.Message(w, you just clicked the button)
        button.connect('clicked', on_click)

   yield Wait(frame, 'back')     # Wait until the back button is clicked
   w.close()                     # Don't forget to close the window


  • Guillaume "Charlie" Chereau, main developer
  • Michael "Goodwill"


Now Tichy hosted on so use svn to fetch:

svn checkout tichy-read-only


You need python 2.5 and some libraries installed :

  • python-pygame
  • python-dbus
  • python-yaml
  • python-gst
  • python-gobject


From the google code page, debian and ipkg packages are available.