Feature #383

Switch to appmgr run default app and drop matchbox panel

Added by Hammel over 6 years ago. Updated over 6 years ago.

Status:ClosedStart date:09 Sep 2014
Priority:ImmediateDue date:
Assignee:Hammel% Done:


Category:04 - Applications
Target version:0.10.0
Severity:01 - Critical


A default application could be the launcher, similar in display to the Android or Netflix interfaces.

This application should allow for customization that is accessible to application installs.

launcher.png (134 KB) Hammel, 12 Oct 2014 14:58


Associated revisions

Revision bcbb528f
Added by Hammel over 6 years ago

RM #383: More integration of splash and description and cleaning up icon displays. Merged handlers for cairo paint operations.

Revision 582b86f8
Added by Hammel over 6 years ago

RM #383: Add highlight to app icons. Clean up and center display of splash image. Clean up and center app descriptive text. Add support for arrow keys to select app icon. Fix gpointer compile warnings. Load gtkrc from data dir or install dir.

Revision a2a03c0c
Added by Hammel over 6 years ago

RM #383: Increase splash widget size and decrease size of description widget.

Revision 3eb7ae26
Added by Hammel over 6 years ago

RM #383: Update test data to use new splash images. Remove old test image.

Revision 22a847a5
Added by Hammel over 6 years ago

RM #383: Changed test description files to use current production commands, as taken from pmsui's panel configuration.

Revision 0d07e62f
Added by Hammel over 6 years ago

RM #383: Add notify() function and APPMGR_PORT to send commands to appMgr Add support for keypad arrow keys Add support for RETURN key and keypad ENTER Add function called on window expose to set the first app as the selected app so the white highlight is properly displayed.

Revision ffea01cb
Added by Hammel over 6 years ago

RM #383: Create required directories after installation.

Revision c6586aae
Added by Hammel over 6 years ago

RM #383: Resize icons to be square because it appears that non-square PNGs on ARM fail to load in Cairo (but work fine on Intel).

Revision dacb6323
Added by Hammel over 6 years ago

RM #383: Fix problems with data types related to width/height of icons. Clean up usage of cairo_t in do_drawing so it only needs to be created and destroyed once. Adjust offsets for highlight so it looks better behind selected icon. Add maxApps to keep track of number of available app descriptions found.

Revision ab0a77f8
Added by Hammel over 6 years ago

RM #383: Removed extra test data, keeping just enough for current config example.


#1 Updated by Hammel over 6 years ago

  • Category changed from 04 - Root File System to 04 - Applications

#2 Updated by Hammel over 6 years ago

  • Priority changed from High to Immediate

#3 Updated by Hammel over 6 years ago

This requires that all apps exit when done and that appmgr recognize when the app exits and start up the default app.

#4 Updated by Hammel over 6 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 10

Before doing this I need to define a format for the Application Description file. This file holds information provided by the application at installation time. The information could be installed in the control file of the opkg but I decided not to overload that file, especially since opkg doesn't unpack that file from the package. So installation will require the Application Description file.

The format for this file will be XML. This is because it will be fairly easy to ignore unsupported data and the PiBox Dev Platform already has libxml2 installed.

There are some examples of similar files available on the net: What I know I need:
  1. Application Name
  2. Author
  3. Contact (who to contact in case of problems)
  4. Command (including command line args)
  5. Icon (for application selection)
  6. Splash image (for application information)
  7. Description

Any field that's missing means the application is ignored. The AppManager should run all applications as an unprivileged user except for special cases (there are always special cases, like the network configuration tool). There should be system applications and custom applications, where the system applications can run with special privileges.

I don't want to make this too complex. It should just work and be very restrictive to avoid custom applications that can muck up the system.

#5 Updated by Hammel over 6 years ago

I've implemented a basic launcher that shows icons, splash images and descriptive text. See attached image. It still needs to have a key defined for ACCEPT which will pass the configured command to the appmgr. I need to decide if the appmgr will launch apps over the launcher or manage the launcher just like any other app.

#6 Updated by Hammel over 6 years ago

Can't seem to load images right now. I'll try again later.

#7 Updated by Hammel over 6 years ago

#8 Updated by Hammel over 6 years ago

  • % Done changed from 10 to 70

This is essentially complete. I need to make sure the opkg is built correctly and I need to test it to see what happens if there are no app description files.

Other than that, it seems ready to test on the media server.

Then I need to remove the panel from pmsui and decide on how this app will get started: by xinitrc or by appMgr.

#9 Updated by Hammel over 6 years ago

  • % Done changed from 70 to 60

Launcher had some problems on the target board that didn't show up on my desktop. Apparently Cairo isn't happy with non-square PNGs on ARM but is okay with them on Intel. But that's fixed now.

So the launcher is running correctly. Time to figure out how to start it via the appMgr.

#10 Updated by Hammel over 6 years ago

The easiest way to do this would be to have pmsui/src/config/etc/X11/desktop.sh test for launcher after it starts appmgr. If launcher is found, use appmgr.sh to tell appmgr to start launcher. If launcher is not found then mbdock.session- (which is the existing mbdock.session renamed in pmsui) should be linked to mbdock.session so the panel will be used instead. That gives me a fallback until I'm satisfied with launcher's integration with the entire desktop.

#11 Updated by Hammel over 6 years ago

  • Severity changed from 03 - Medium to 01 - Critical

#12 Updated by Hammel over 6 years ago

Now that I know how to get X started without a required restart to get keyboards working I can drop the X.org restart button.

In fact, I can have just the following app icons:
1. Network Config (via launcher)
2. System Config (date, time, etc.) (via launcher)
3. VideoFE (via VideoFE)
4. Terminal (via launcher)
5. Reboot (via launcher)

Eventually I'll have other icons: TV, Music, Photos, etc.

The launcher should have have a 2x3 layout for the current 5 apps. And launcher's config file should have a preferred location element added so I can order them better.

#13 Updated by Hammel over 6 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 60 to 100

pmsui xinitrc cleaned up to remove matchbox-panel and background image. This goes with cleanup of init scripts to fix the X-restart-to-fix-keyboard input.

appmgr has been updated to run the new launcher app by default. The launcher app is also committed and works well.

This issue is therefore complete. Closing.

Also available in: Atom PDF