Empathy is split in different processes: - src/empathy: contact list, considered as the main UI - src/empathy-chat: chat UI - src/empathy-call: call UI - src/empathy-accounts: UI to configure IM accounts - src/empathy-debugger: debug tool Each process can be run directly from source without having to be installed to its prefix. You just have to define an appropriate environment using the wrapper found in the tools/ directory.. For example: ./tools/empathy-env ./src/empathy The chat and call UI are automatically started by telepathy-mission-control when receiving or requesting a chat/call. In order to use your custom version you have to kill any existing instance of empathy-{chat,call} and then start it with EMPATHY_PERSIST=1 to prevent it from auto exiting if there is no channel to handle. For example: EMPATHY_PERSIST=1 ./tools/empathy-env ./src/empathy-chat Debugging can be turned on using EMPATHY_DEBUG=all and logged to a file with EMPATHY_LOGFILE=/tmp/empathy.log Sometimes you may want to load the locally compiled version of some GStreamer plugin (e.g. Farstream) instead of the system installed one. To do so, just set the GST_PLUGIN_PATH environment variable to tell GStreamer where your plugins are located and the GST_PLUGIN_LOADING_WHITELIST to avoid conflicts with system installed plugins. It's also a good idea to use GST_REGISTRY to avoid clobbering your default GStreamer registry. For example you can export these before launching the empathy processes as shown above: export GST_PLUGIN_LOADING_WHITELIST=gstreamer:gst-plugins-base:gst-plugins-good:libnice:farstream:gst-plugins-bad:gst-plugins-ugly:gst-ffmpeg export GST_PLUGIN_PATH=/path/to/your/custom/lib/gstreamer-0.10 export GST_REGISTRY=/tmp/gstreamer.registry See http://live.gnome.org/Empathy/ about coding style conventions. See also http://live.gnome.org/Empathy/Git to read about our git workflow.