XFCE and Sugar

From OLPC
Jump to: navigation, search

This page documents the XFCE/Sugar dual-desktop integration work c-scott did around 05-Aug-2008. Build faster-2263 was the end result of this work. For more general information on using XFCE on an XO, see the XFCE page.

Bottom line

olpc-update faster-2263 will give you a minimal XFCE/Sugar system. There is a sugar control panel to let you switch, and you can access the sugar control panel from XFCE to switch back.

The resulting system is 45M (15%) larger than our current builds, and the XFCE functionality is exceedingly minimal: no web browser, no network manager. But you have a terminal, a text editor, and a file manager. Additional applications would, of course, increase the size overhead further.

Known bugs:

  • Some XFCE popup menus are invisible until hovered over. <trac>7839</trac>
  • After you select the sugar desktop to switch back from XFCE, sugar asks if you'd like to restart now or later. "Later" works fine, but if you select "restart now", nothing happens (XFCE doesn't seem to understand Sugar's session shutdown request) -- and then the only button left is the 'cancel' button, which will revert the change in desktop.
  • Our build of network manager doesn't include NetworkManager-gnome, and I was unable to tweak the spec file to get it built. So there's no networking on the XFCE side.
  • Installing firefox seems to have problems; haven't looked deeply into why.

Modifications to standard build

The following changes were made to transform joyride-2263 into faster-2263: (git log)

  • Add the sugar-xfce-control package for a 'desktop switcher' control panel in Sugar. (source code, src rpm, rpm)
  • Add the sugar-mcs-plugin package to integrate the sugar control panel into XFCE's "Settings Manager". This allows you to switch back from XFCE to Sugar using the same mechanism you use to switch from Sugar to XFCE. (source code, src rpm, rpm, debuginfo rpm)
  • Add the following packages from the standard Fedora repository:
    • xfce-utils (pulls in via dependencies all the main xfce packages)
    • xfce4-session (required to allow you to quit from xfce)
    • gnome-icon-theme (needed for filemanager icons)
  • Add Inherits=gnome after the [Icon Theme] line in /usr/share/icons/sugar/index.theme, so that sugar's theme properly pulls in the gnome filemanager icons (in <trac>7939</trac> we suggest adding appropriate sugarized icons for folders, etc) (pilgrim patch)
  • Add [ -f "$HOME/.xsession-xfce" ] && . "$HOME/.xsession-xfce" before the exec /usr/bin/ck-xinit-session line at the end of /usr/bin/olpc-session in order to trigger xfce when it is selected. (pilgrim patch)

These last two modifications are candidates for upstream inclusion into standard OLPC builds. Along with adding an appropriate http://dev.laptop.org/~cscott/xfce as a repo into our stock yum configuration, and the appropriate dependencies to (say) sugar-xfce-control, this could make installing the XFCE alternative desktop as easy as yum install sugar-xfce-control.

In the meantime, these modifications can be made to the 8.2-760 test build (or any other build) in order to add this functionality to a more stable build. All the files you need are here: http://www.filedropper.com/xfce-sugarfiles . Just install the RPMs and then copy into the appropriate directories the index.theme, olpc-session, and .xsession-xfce files.