Switch to appmgr run default app and drop matchbox panel
|Status:||Closed||Start date:||09 Sep 2014|
|Category:||04 - Applications|
|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.
RM #383: More integration of splash and description and cleaning up icon displays. Merged handlers for cairo paint operations.
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.
RM #383: Changed test description files to use current production commands, as taken from pmsui's panel configuration.
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.
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).
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.
#4 Updated by Hammel almost 3 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:
- Android's ApplicationInfo
- Appinfo.ini from PortableApps.com
- Desktop Entry Specification from freedesktop.org
- Application Name
- Contact (who to contact in case of problems)
- Command (including command line args)
- Icon (for application selection)
- Splash image (for application information)
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 almost 3 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.
#8 Updated by Hammel almost 3 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 almost 3 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 almost 3 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.
#12 Updated by Hammel almost 3 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 almost 3 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.