Hi Ben,
On 05/09/2015 05:53 AM, Nobody III wrote:
Genode's window manager is very simple and lacks the following functionality: minimize/maximize/restore close window force kill
are you referring to the window management of the default demo scenario or the window manager that is hosted in repos/gems? In the latter case, adding minimize/maximize/restore/close would not require any change of the nitpicker interface. Instead, these functions could be implemented in the so-called "layouter", which is a separate component. You can find more information about the architecture here:
http://genode.org/documentation/release-notes/14.08#New_GUI_architecture
It seems like the nitpicker service should be modified to support whichever of these functions it doesn't already. I'm unsure of how exactly force kill could be implemented--especially since not all users can be considered trustworthy. How do we fit users into the Genode security model? Users need to be given reasonable authority--complete authority in some cases. Any ideas?
Nitpicker is equipped with an emergency feature called "kill mode". It can be activated by the user by pressing a configurable key. In the default demo scenario, this key is F11. When activated, nitpicker tints the screen in red color, marks all screen regions with the labels of the corresponding clients, and allows the user to pick a view to remove. Nitpicker will then lock out the selected client from the user interface. Technically, it is not killing the program but merely suppressing its output.
In practice, the kill mode is not that important, especially since we introduced layered domains to nitpicker in the release 14.08 (see the link above). Using layers, a trusted application such as a panel can be guaranteed to always appear in front of all others. This application would be a natural place to implement application-management functionality. The launcher as featured in the gems repository is a representative of such an application. You may give it a try with the repos/gems/run/launcher.run script. After starting a subsystem, you can press the corresponding button again, but a bit longer. This activates a context menu, where you can kill or hide the subsystem.
Cheers Norman