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

[edit] How to install

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

Note that in the instructions below wget is used to download packages. You can install it with apt-get like so:

devel-su # enter root password
apt-get install wget

[edit] PR1.3

[edit] N9 Users

[edit] 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

More info on Inception

[edit] 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

[edit] N950 Users

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

[edit] PR1.2

[edit] N9 Users

[edit] 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
[edit] 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

[edit] N950 Users

[edit] 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
[edit] 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


[edit] 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

[edit] 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.

[edit] Plugins

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

[edit] 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.

[edit] 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

[edit] 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.

[edit] As root

/sbin/initctl restart xsession/sysuid

[edit] As user

killall sysuid

[edit] 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.

[edit] 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.