Here is one way to package your stuff so it can be launched from an icon in the XO's Home View: DISCLAIMER: To set this up, I used my templates from 2009 (for "sugarizing" a Linux executable). I have __NOT__ referenced (nor incorporated) any SugarLabs advances from any intervening years. 1) Create a directory (either in /home/olpc/Activities, or linked-to from there). Mine was called "Evil.activity". In 'Evil.activity', create subdirectories 'activity' and 'bin' 2) Move your binary into 'Evil.activity/' [I called it 'evil.eng'} Move your 'id1' directory into 'Evil activity/' Note: 'Evil.activity' now contains: activity {a directory} evil.eng {a binary} bin {a directory} id1 {a directory} Move your 'icon.svg' into 'Evil.activity/activity/' 3) Add file 'Evil.activity/activity/activity.info' with content: > [Activity] > name = Evil > service_name = com.atphalix.evil > exec = runevil > icon = icon > activity_version = 1 > host_version = 1 [Note: This is how it was in 2009. I have not looked at whether "activity.info" lines have been added/removed since then.] [In the above, you get to choose "name" and "service name"] 'runevil' is the name of the script in 'Evil.activity/bin/' 4) Copy 'libsugarize.so' into 'Evil.activity/bin/' Add file 'Evil.activity/bin/runevil' with content: > #!/bin/bash > while [ -n "$2" ] ; do > echo "OO:" $1 $2 > case "$1" in > -b | --bundle-id) export SUGAR_BUNDLE_ID="$2" ;; > -a | --activity-id) export SUGAR_ACTIVITY_ID="$2" ;; > -o | --object-id) export SUGAR_OBJECT_ID="$2" ;; > -u | --uri) export SUGAR_URI="$2" ;; > *) echo unknown argument $1 $2 ;; > esac > shift;shift > done > export LD_PRELOAD="$SUGAR_BUNDLE_PATH/bin/libsugarize.so" > export NET_WM_NAME="Evil" > exec ./evil.eng -mem 64 -width 1200 -height 900 +map start > exit Obviously, the names/locations specified in this script must correspond to what is in your "Evil.activity" directory. [And when you create the two files whose content is shown above, please leave off the "> " (they're for clarity in the printout).] For me, the above worked. [With an old libsugarize.so, there might be a redundant launch screen (with error message) left over. It's harmless, and can eventually be closed.]