Unrestricted-system-ui

unrestricted-system-ui is a modified system-ui package that allows developers and users to load plugins the Harmattan status menu.

Contents

How to install

To install unrestricted-system-ui you will need to have Inception or an open mode kernel installed.

PR1.3

N9 Users

Inception method
wget http://mohammadag.xceleo.org/public/Harmattan/system-ui_1.3.2-1+0m8_armel.deb -O system-ui_1.3.2-1+0m8_armel.deb
/usr/sbin/incept system-ui_1.3.2-1+0m8_armel.deb #enter root pass
Open mode method
devel-su #enter pass
wget http://mohammadag.xceleo.org/public/Harmattan/system-ui_1.3.2-1+0m8_armel.deb -O system-ui_1.3.2-1+0m8_armel.deb
export AEGIS_FIXED_ORIGIN=com.nokia.maemo
dpkg -i system-ui_1.3.2-1+0m8_armel.deb

N950 Users

As of the last edit, PR1.3 is not available for the N950.

PR1.2

N9 Users

Inception method
wget http://mohammadag.xceleo.org/public/Harmattan/system-ui_1.2.24-2+0m7_armel.deb -O system-ui_1.2.24-2+0m7_armel.deb
/usr/sbin/incept system-ui_1.2.24-2+0m7_armel.deb #enter root pass
Open mode method
devel-su #enter pass
wget http://mohammadag.xceleo.org/public/Harmattan/system-ui_1.2.24-2+0m7_armel.deb -O system-ui_1.2.24-2+0m7_armel.deb
export AEGIS_FIXED_ORIGIN=com.nokia.maemo
dpkg -i system-ui_1.2.24-2+0m7_armel.deb

N950 Users

Inception method
wget http://mohammadag.xceleo.org/public/Harmattan/system-ui_1.2.23-1+0m7_armel.deb -O system-ui_1.2.23-1+0m7_armel.deb
/usr/sbin/incept system-ui_1.2.23-1+0m7_armel.deb #enter root pass
Open mode method
devel-su #enter pass
wget http://mohammadag.xceleo.org/public/Harmattan/system-ui_1.2.23-1+0m7_armel.deb -O system-ui_1.2.23-1+0m7_armel.deb
export AEGIS_FIXED_ORIGIN=com.nokia.maemo
dpkg -i system-ui_1.2.23-1+0m7_armel.deb


Removing the alarms plugin

Nokia seem to have included an unfinished applet that opens the clock app, to hide it, you may move the .desktop file

devel-su #enter root pass
mv /usr/share/meegotouch/applicationextensions/statusindicatormenu-alarms.desktop /usr/share/meegotouch/applicationextensions/statusindicatormenu-alarms.disabled

To make it visible again:

devel-su #enter root pass
mv /usr/share/meegotouch/applicationextensions/statusindicatormenu-alarms.disabled /usr/share/meegotouch/applicationextensions/statusindicatormenu-alarms.desktop

Enabling battery percentage in status area

To enable battery percentage you'll need to set a gconf key:

gconftool-2 -s /desktop/meego/status_area/display_percentage -t bool true

To disable it, replace true with false in the previous command.

Plugins

Here is a list of plugins currently available for unrestricted-system-ui:

Developers

Developers who plan to make status menu plugins should have unrestricted-system-ui in their debian/control Depends: line, this is to prevent user confusion and make it easier for the developer to support the user.

Plugins need to be installed in /usr/lib/meegotouch/applicationextensions/
.desktop files for the plugins need to be installed in /usr/share/meegotouch/applicationextensions

Please follow this naming scheme so it's easier for the user to distinguish plugins.
For the lib: libstatusindicatormenu-foobar.so
For the desktop file: statusindicatormenu-foobar.desktop
where foobar can be replaced with anything.

Here's a sample .desktop file

[Desktop Entry]
Type=X-MeeGoApplicationExtension
Name=Foo Bar Status menu plugin
 
[X-MeeGoApplicationExtension]
Interface=com.meego.core.MStatusIndicatorMenuExtensionInterface/1.0
Extension=libstatusindicatormenu-foobar.so

You will need to restart the status menu in postinst and postrm. Refer to the section below (as root) for how to do that.

Rearranging status menu plugins

As of the latest version, unrestricted-system-ui allows you to rearrange items in the status menu through a config file.
The file is /etc/status-menu-items-order.conf
Items that aren't in the file will be loaded in alphabatical order.
After modifying the file with your favorite text editor, you'll need to restart the status menu (see below)

.desktop file names can be found with

for files in $(ls /usr/share/meegotouch/applicationextensions/statusindicatormenu-*desktop); do basename "$files"; done

Restarting the status menu

At certain times, you may want to restart the status menu. Please be aware that restarting it successively may result in a reboot (by dsme/watchdog). You can restart the applet as user or root, the method to do that differs for each user.

As root

/sbin/initctl restart xsession/sysuid

As user

killall sysuid

Safe Mode

As of 25.07.2012, unrestricted-system-ui has a safe mode feature, this prevents your device from going into a boot loop, caused for example, by a faulty plugin.
This feature had some bugs, a reboot would cause it to show up because system-ui crashes once every startup (thanks to Nokia), this was fixed in a version released on 03.08.2012
To get out of safe mode, tap the applet and follow the on screen instructions.
If trying to exit safe mode fails the first time, try to uninstall plugins you've recently installed and exit safe mode again. Keep doing this until safe mode doesn't come back.

Technical details

system-ui enters safe mode when it receives SIGSEGV or SIGABRT, it does this by writing two files to /tmp (system-ui-crashed and system-ui-crashed-again), the second file is a workaround to system-ui crashing at startup, if the first file exists when system-ui crashes, the second one will be created. unrestricted-system-ui checks for the second file at startup, if it exists, it restores Nokia's limitation while allowing another applet, the safe mode one, to show. To exit safe mode, the applet deletes both files and kills system-ui to restart it.