Developer FAQ

Common questions and answers for new developers.

Questions

Q. I'm new, how do I get started?

First, you'll need to get your hands on the source code, and then you can compile it. If you're having any problems, then please use the developer mailing list. Before committing code, read our Hacking guide.

Q. How do input events reach the client?

The event lifecycle diagram demonstrates how a mouse down event gets from the server to the client.

Q. How do I start synergys and synergyc directly with Visual Studio?

Right click either the synergys or synergyc projects, and select Properties. Click Debugging, and add the following to the Command Arguments textbox:

for synergys:

--no-daemon --debug DEBUG1 --name my-computer-1 --address :24800

Replace 'my-computer-1' with your computer name.

for synergyc:

--no-daemon --debug DEBUG1 my-computer-1

Replace 'my-computer-1' with your server's hostname.

Q. How do I install the Windows service with a non-default debugging level?

From the Windows config GUI, select the debug level (on the main screen) before installing the service. This stores the command line arguments in the Windows registry - to change the debug level after service is installed, uninstall the service, select new log level and reinstall service.

Q. What is your C++ code style guide?

This can be found in TheBible.

Q. How to I build the new GUI in 1.4?

You'll need to download Qt Creator or the SDK. Recommended versions:

Windows: qt-sdk-win-opensource-2010.02.exe
Mac OS X: 2010.03
Linux: 2010.03

Q. Why do I get an XTest error when compiling on Ubuntu?

Ensure that the libXtst-dev or libXtst-devel package is installed.

Q. How do I submit patches?

Simply run `svn diff > foobar.patch` and submit by attaching to a new, but make sure you choose the Patch tracker (you'll need to be a project member to create issues). Once you submit your patch, our patch manager will review and apply the patch, then commit to the repository.

Q. How do I make emacs use your indentation style?

You could add this to the end of your `.emacs` file.

; Visual Studio like indentation
;; Turn on tabs
(setq indent-tabs-mode t)
(setq-default indent-tabs-mode t)

;; Bind the TAB key 
(global-set-key (kbd "TAB") 'self-insert-command)

;; Set the tab width
(setq default-tab-width 4)
(setq tab-width 4)
(setq c-basic-indent 4)

; make python tabs 4 chars wide
(add-hook 'python-mode-hook
      (lambda ()
        (setq indent-tabs-mode t)
        (setq tab-width 4)
        (setq python-indent 4)))

This will make your indentation style similar to that in Visual Studio.

Q. How do I make vim use your style guidelines?

There is a .lvimrc included in Trunk. To use it install Vim script 411

Q. What is the `ARCH` macro for?

The `ARCH` macro is defined in `lib/arch/CArch.h` and accesses a static singleton pointer for the architecture tools.

For example, ARCH->addrToString(CArchNetAddress) will convert an address instance to an IP address as type std::string.

To use the ARCH macro, `#include "CArch.h"`