7.1  Idea

7.1.1  Problems

gDesklets uses inline-scripts for dynamic content. Because of the sandboxed scripting environment, it is not possible to access any system resources.

Many applets share some common aspects of functionality. There needs to be a way to share that functionality among applets without duplicating it.

7.1.2  Past

The concept of sensors solved the problems in some way. A sensor was a reusable module of privileged (unsandboxed) code.

However, since the sensors framework was designed long before inline scripting, it cannot take advantage of the property based approach, which is the central idea behind inline-scripting. Another problem with sensors was a lack of separation between functionality and design of the applet. Thus many sensors tend to be not reusable very well.

7.1.3  Solution

It has become necessary to design a new framework to replace the old sensors framework. Instead of sensors, the new framework is about controls.

A control is a privileged (unsandboxed) property-based module, which can be shared among applets, and implements certain interfaces.