diff --git a/frontends/primitivus/primitivus b/frontends/primitivus/primitivus
new file mode 100755
index 00000000..d425bf0e
--- /dev/null
+++ b/frontends/primitivus/primitivus
@@ -0,0 +1,78 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+"""
+Primitivus: a SAT frontend
+Copyright (C) 2009, 2010 Jérôme Poisson (goffi@goffi.org)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+"""
+
+
+from quick_frontend.quick_app import QuickApp
+from quick_frontend.quick_chat_list import QuickChatList
+from quick_frontend.quick_contact_list import QuickContactList
+from quick_frontend.quick_contact_management import QuickContactManagement
+import urwid
+from profile_manager import ProfileManager
+import pdb
+"""from window import Window
+from editbox import EditBox
+from statusbar import StatusBar
+from chat import Chat
+from tools.jid import JID"""
+import logging
+from logging import debug, info, error
+#import locale
+import sys, os
+#from curses import ascii
+#import locale
+#from signal import signal, SIGWINCH
+#import fcntl
+#import struct
+#import termios
+#from boxsizer import BoxSizer
+
+
+### logging configuration FIXME: put this elsewhere ###
+logging.basicConfig(level=logging.CRITICAL, #TODO: configure it to put messages in a log file
+ format='%(message)s')
+###
+
+const_APP_NAME = "Primitivus"
+const_PALETTE = [('title', 'black', 'light gray', 'standout,underline'),]
+
+class PrimitivusApp(QuickApp):
+
+ def __init__(self):
+ QuickApp.__init__(self) #XXX: yes it's an unusual place for the constructor of a parent class, but the init order is important
+
+ ## main loop setup ##
+ self.main_widget = self.__buildMainWidget()
+ self.loop = urwid.MainLoop(self.main_widget, const_PALETTE, event_loop=urwid.GLibEventLoop(), unhandled_input=self.key_handler)
+
+ def start(self):
+ self.loop.run()
+
+ def key_handler(self, input):
+ if input in ('q', 'Q') or input == 'ctrl x':
+ raise urwid.ExitMainLoop()
+
+ def __buildMainWidget(self):
+ main_widget = ProfileManager(self)
+ return main_widget
+
+
+sat = PrimitivusApp()
+sat.start()
diff --git a/frontends/primitivus/profile_manager.py b/frontends/primitivus/profile_manager.py
new file mode 100644
index 00000000..6fe06bd1
--- /dev/null
+++ b/frontends/primitivus/profile_manager.py
@@ -0,0 +1,34 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+"""
+Primitivus: a SAT frontend
+Copyright (C) 2009, 2010 Jérôme Poisson (goffi@goffi.org)
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+"""
+
+import urwid
+
+
+class ProfileManager(urwid.WidgetWrap):
+
+ def __init__(self, host):
+ self.host = host
+ profiles = self.host.bridge.getProfilesList()
+ widgets = [urwid.Text(str(profiles))]
+ content = urwid.SimpleListWalker(widgets)
+ display_widget = urwid.Frame(urwid.ListBox(content),urwid.AttrMap(urwid.Text("Profile Manager",align='center'),'title'))
+ urwid.WidgetWrap.__init__(self, display_widget)
+
diff --git a/frontends/sortilege/__init__.py b/frontends/sortilege_old/__init__.py
similarity index 100%
rename from frontends/sortilege/__init__.py
rename to frontends/sortilege_old/__init__.py
diff --git a/frontends/sortilege/boxsizer.py b/frontends/sortilege_old/boxsizer.py
similarity index 100%
rename from frontends/sortilege/boxsizer.py
rename to frontends/sortilege_old/boxsizer.py
diff --git a/frontends/sortilege/chat.py b/frontends/sortilege_old/chat.py
similarity index 100%
rename from frontends/sortilege/chat.py
rename to frontends/sortilege_old/chat.py
diff --git a/frontends/sortilege/editbox.py b/frontends/sortilege_old/editbox.py
similarity index 100%
rename from frontends/sortilege/editbox.py
rename to frontends/sortilege_old/editbox.py
diff --git a/frontends/sortilege/sortilege b/frontends/sortilege_old/sortilege
similarity index 100%
rename from frontends/sortilege/sortilege
rename to frontends/sortilege_old/sortilege
diff --git a/frontends/sortilege/statusbar.py b/frontends/sortilege_old/statusbar.py
similarity index 100%
rename from frontends/sortilege/statusbar.py
rename to frontends/sortilege_old/statusbar.py
diff --git a/frontends/sortilege/window.py b/frontends/sortilege_old/window.py
similarity index 100%
rename from frontends/sortilege/window.py
rename to frontends/sortilege_old/window.py