Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Hardware/Periferiche/Synergy"
Differenze tra le versioni 5 e 6
Versione 5 del 26/02/2009 18.09.43
Dimensione: 17701
Autore: NaldiniPaolo
Commento:
Versione 6 del 26/02/2009 18.21.09
Dimensione: 17419
Autore: NaldiniPaolo
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 21: Linea 21:
= Ottenere Synergy = = Installazione =
Linea 27: Linea 27:
== Building Synergy From Source ==

If you've already installed the package for Synergy, this step is not neccecary, you can proceed to the section on Configuring Synergy below.

Go to http://synergy2.sourceforge.net/ to download the latest source tarball (stable or experimental) and extract it to your home directory.

Open a terminal window and change to the directory you just extracted (should be found at ~/synergy-x.x.x where x.x.x is the version number).

First we need to make sure we have all the right tools:
{{{
sudo apt-get install libxtst-dev
sudo apt-get install build-essential
}}}

Now we can setup the build environment and compile then install:
{{{
== Compilare Synergy da sorgenti ==

Prima di iniziare assicurarsi di aver [:AmministrazioneSistema/InstallareProgrammi:installato] i pacchetti ''libxtst-dev'' e ''build-essential''.

 0. Scaricare i sorgenti presso [http://synergy2.sourceforge.net/ questo indirizzo] nella propria cartella '''Home'''.

 0. Spostarsi con un terminale nella cartella appena scaricata e digitare i seguenti comandi:
 {{{
Linea 46: Linea 38:

These will move the executables to the directory referenced in the configuration instructions later:
{{{
   0. Spostare gli eseguibili nella cartella `/usr/bin`, digitando i seguenti comandi:
 {{{
Linea 53: Linea 45:
Once the install is finished, you can remove the Synergy folder you extracted earlier and continue to Configuring Synergy. Una volta terminata l'installazione è possibile rimuovere la cartella scaricata in precedenza e continuare con la configurazione.

Indice(depth=1)

Introduzione

Synergy è un programma che permette l'utilizzo di una sola tastiera e di un solo mouse su più computer in rete. I computer possono avere sistemi operativi quali Linux, Windows o Mac OS. Il computer con la tastiera e il mouse è chiamato server, invece i computer che devono essere controllati da remoto sono detti client.

In questa guida sono presente istruzioni utili al corretto funzionamento di Synergy su una macchina con Ubuntu installato.

Sicurezza

Immagine(Icone/Piccole/warning.png,,center)

Il programma permetterà di effettuare operazioni che si possono rivelare insicure.

È possibile rendere Synergy più sicuro avviandolo con OpenSSH ma la procedura non verrà descritta qui.

QuickSynergy

È possibile ottenere un'interfaccia grafica per Synergy [:AmministrazioneSistema/InstallareProgrammi:installando] dal [:Repository/Componenti:componente] universe dei [:Repository:repository] ufficiali il pacchetto quicksynergy.

Avviare QuickSynergy su ogni computer. Nella macchina che funge da server inserire l'«hostname» dei computer, invece nei client inserire l'«hostname» o l'indirizzo IP del server e fare clic su «Start».

Installazione

Installazione da linea di comando

[:AmministrazioneSistema/InstallareProgrammi:Installare] il pacchetto synergy dal [:Repository/Componenti:componente] universe dei [:Repository:repository] ufficiali.

Compilare Synergy da sorgenti

Prima di iniziare assicurarsi di aver [:AmministrazioneSistema/InstallareProgrammi:installato] i pacchetti libxtst-dev e build-essential.

  1. Scaricare i sorgenti presso [http://synergy2.sourceforge.net/ questo indirizzo] nella propria cartella Home.

  2. Spostarsi con un terminale nella cartella appena scaricata e digitare i seguenti comandi:
    sudo ./configure -x-libraries /usr/lib -x-includes /usr/includes
    sudo make install
  3. Spostare gli eseguibili nella cartella /usr/bin, digitando i seguenti comandi:

    sudo mv /usr/local/bin/synergyc /usr/bin
    sudo mv /usr/local/bin/synergys /usr/bin

Una volta terminata l'installazione è possibile rimuovere la cartella scaricata in precedenza e continuare con la configurazione.

Configuring Synergy

Now that Synergy is installed, what you need to do is configure it. BUT, you have to configure at least two machines because without two machines using Synergy makes no sense. I will show you the configuration for a server and a client. I will only show the Ubuntu configuration's, please refer to the Synergy site for instructions on configuring other systems.

Server Configuration

.synergy.conf can be created in your "Home Folder".

Here is a copy of my server's configuration.

section: screens
        ubuntu42:
        arthur:
end
section: links
        ubuntu42:
                right = arthur
        arthur:
                left = ubuntu42

end

The meaning of the names in the configuration are as follows. Ubuntu42 is my main machine which acts as a server for Synergy. Arthur is the client(another Ubuntu machine(laptop)) that I use my desktop's keyboard and mouse with. Section is where you lay out different configurations Screens is where you set the host names of the computers going to be used. Links is what side the mouse will leave the screen of one computer to reach the desktop of the other. So Ubuntu42 is set to the left of Arthur, so when I drag the mouse off the right hand side of Ubuntu42's screen it appears on Arthur's left hand side of the screen. And vice versa. You can set the Links to go out the top of the screen and come in the top of the other screen, you can also set up multiple computers. Multiple here, of course, meaning more than two.

Client Configuration

There is none :) you just install

Running Synergy

From the server you run the command

bash:~$ synergys -f --config synergy.conf

and that will start running the server in the foreground. If the synergy server works without any issue, do the following.

bash:~$ mv synergy.conf ~/.synergy.conf

If you do the above, you will be able to start synergy server simply by doing

bash:~$ synergys

From a client(In this howto the client being Ubuntu), you would issue the command

bash:~$ synergyc -f <ip address of server>

and that will start the client looking for the server of said address.

Note: the -f command tells Synergy to run it in the foreground, so that you will be able to output for debugging. If everything works fine, and you are able to move your mouse around, issue the the command

synergyc <ip.address.of.server>

and you will be up and running.

Making it Autostart, Gnome

You probably don't want to have a synergy terminal window open all of the time, so your next step will be to set it up to run as a service.

For those of you who are using a Windows machine as well as Ubuntu, a little gotcha is that when you set Synergy to run at startup, you will also have to start the service in Control Panel -> Administrative Tools -> Services, or by rebooting your computer.

Adding Synergy as an autostarting feature of Gnome is a bit more complicated.

But not too painful if you are familar with how Gnome handles login scripts.

The easiest way is probably to pop open a terminal and type the appropriate line without the '-f' option, then you can safely close the terminal and Synergy will continue to run.

If you use some sort of graphical login screen, it is pretty easy to have it autostart. In Ubuntu you can go to your...

System Menu->Preferences->Sessions, click the Startup Programs tab, click "Add" then just enter the Startup Command:

synergys --config synergy.conf

then click OK & close. This will start the server on a user session basis, not globally.

You can also add a little script in the /etc/X11/Xsession.d folder with a command that says to run it with the bash shell, and then the bash command you use to start synergy.

The name and location of this file is crucial! The file must start with two digits, to specify the order. It really doesn't matter where it is or what the rest of the name is though. I named mine 12synergy, 22synergy, 32synergy and 54synergy. Sadly, this does not allow you to use synergy on the login screen, but there is a way to do this fortunately for those whom need a way to also use the keyboard prior to final login. You are going to also edit 2 existing files within the X11 directory pertaining to gdm.

For a client, your new file should look like this, where xxx.xxx.xxx.xxx is the ip address of your server:

#/bin/bash
/usr/bin/killall synergyc
sleep 1
/usr/bin/synergyc xxx.xxx.xxx.xxx

Warning: if you put the -f into the command, you'll get a script that doesn't stop and let gnome finish loading!

We want the client to be running when gdm is running, prior to logging in. Add the following to /etc/gdm/Init/Default: (just add them to the top of the file)

/usr/bin/killall synergyc
sleep 1
/usr/bin/synergyc xxx.xxx.xxx.xxx

(In 7.10 modification of the PreSession script doesn't seem to be needed) For the client file we must also edit the PreSession script to kill our synergy process running as root before the Xsession scripts run it as user. The file is /etc/gdm/PreSession/Default and it should look like this:

#
# Note that any setup should come before the sessreg command as
# that must be 'exec'ed for the pid to be correct (sessreg uses the parent
# pid)
#
# Note that output goes into the .xsession-errors file for easy debugging
#
PATH="/usr/bin/X11:/usr/X11R6/bin:/opt/X11R6/bin:$PATH:/bin:/usr/bin"

gdmwhich () {
  COMMAND="$1"
  OUTPUT=
  IFS=:
  for dir in $PATH
  do
    if test -x "$dir/$COMMAND" ; then
      if test "x$OUTPUT" = "x" ; then
        OUTPUT="$dir/$COMMAND"
      fi
    fi
  done
  unset IFS
  echo "$OUTPUT"
}

# synergyc process, running as root, ends here. This is the last script in the gdm login sequence before things start running as user.
/usr/bin/killall synergyc
sleep 1

XSETROOT=`gdmwhich xsetroot`
if [ "x$XSETROOT" != "x" ] ; then
        # Try to snarf the BackgroundColor from the config file
        BACKCOLOR=`grep '^BackgroundColor' /etc/gdm/gdm.conf | sed 's/^.*=\(.*\)$/\1/'`
        if [ "x$BACKCOLOR" = "x" ]; then
                BACKCOLOR="#76848F"
        fi
        "$XSETROOT" -cursor_name left_ptr -solid "$BACKCOLOR"
fi


SESSREG=`gdmwhich sessreg`
if [ "x$SESSREG" != "x" ] ; then
        # some output for easy debugging
        echo "$0: Registering your session with wtmp and utmp"
        echo "$0: running: $SESSREG -a -w /var/log/wtmp -u /var/run/utmp -x \"$X_SERVERS\" -h \"$REMOTE_HOST\" -l \"$DISPLAY$
        exec "$SESSREG" -a -w /var/log/wtmp -u /var/run/utmp -x "$X_SERVERS" -h "$REMOTE_HOST" -l "$DISPLAY" "$USER"
        # this is not reached
fi

# some output for easy debugging
echo "$0: could not find the sessreg utility, cannot update wtmp and utmp"
exit 0

Warning: if you put the -f into the command, you'll get a script that doesn't stop and let gnome finish loading!

For a server, it should look something like this:

Recap: Name this file 12synergy and place it into the /etc/X11/Xsession.d directory!

#/bin/bash
/usr/bin/killall synergys
sleep 1
synergys --config /full/path/to/synergy.conf

Recap: The server file we must edit, it is contained within /etc/X11/gdm/PreSession/Default file!

#
# Note that any setup should come before the sessreg command as
# that must be 'exec'ed for the pid to be correct (sessreg uses the parent
# pid)
#
# Note that output goes into the .xsession-errors file for easy debugging
#
PATH="/usr/bin/X11:/usr/X11R6/bin:/opt/X11R6/bin:$PATH:/bin:/usr/bin"

gdmwhich () {
  COMMAND="$1"
  OUTPUT=
  IFS=:
  for dir in $PATH
  do
    if test -x "$dir/$COMMAND" ; then
      if test "x$OUTPUT" = "x" ; then
        OUTPUT="$dir/$COMMAND"
      fi
    fi
  done
  unset IFS
  echo "$OUTPUT"
}
#Synergy Server Starts at login and dies at logoff!
/usr/bin/killall synergys
sleep 1
synergys --config /full/path/to/synergy.conf


XSETROOT=`gdmwhich xsetroot`
if [ "x$XSETROOT" != "x" ] ; then
        # Try to snarf the BackgroundColor from the config file
        BACKCOLOR=`grep '^BackgroundColor' /etc/gdm/gdm.conf | sed 's/^.*=\(.*\)$/\1/'`
        if [ "x$BACKCOLOR" = "x" ]; then
                BACKCOLOR="#76848F"
        fi
        "$XSETROOT" -cursor_name left_ptr -solid "$BACKCOLOR"
fi


SESSREG=`gdmwhich sessreg`
if [ "x$SESSREG" != "x" ] ; then
        # some output for easy debugging
        echo "$0: Registering your session with wtmp and utmp"
        echo "$0: running: $SESSREG -a -w /var/log/wtmp -u /var/run/utmp -x \"$X_SERVERS\" -h \"$REMOTE_HOST\" -l \"$DISPLAY$
        exec "$SESSREG" -a -w /var/log/wtmp -u /var/run/utmp -x "$X_SERVERS" -h "$REMOTE_HOST" -l "$DISPLAY" "$USER"
        # this is not reached
fi

# some output for easy debugging
echo "$0: could not find the sessreg utility, cannot update wtmp and utmp"
exit 0

Warning: if you put the -f into the command, you'll get a script that doesn't stop and let gnome finish loading!

Making it Autostart, KDE

This makes synergy start soon after your KDE desktop appears, after you have logged in.

Go to ~/.kde/Autostart

right click > Create New > File > Link to Application

in the general tab, give it a name like runsynergy.

application tab: type this in the "Command:" field: synergyc <replace with the server's IP>

click OK. A file called runsynergy.desktop is created. if done correctly this works in KDE 3.5.5

Creating the .desktop file manually

[Desktop Entry]
Comment=
Comment[en_US]=
Encoding=UTF-8
Exec=synergyc <replace with the server's IP>
GenericName=
GenericName[en_US]=
Icon=
MimeType=
Name=
Name[en_US]=
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=
X-KDE-SubstituteUID=false
X-KDE-Username=
X-Ubuntu-Gettext-Domain=desktop_kdebase

Client Autostart at login screen

We want the client to be running when kdm is running, prior to logging in. Add the following to /etc/kde3/kdm/Xsetup: (just add them to the end of the file)

/usr/bin/killall synergyc
sleep 1
/usr/bin/synergyc xxx.xxx.xxx.xxx

For the client file we must also edit the Xstartup script to kill our synergy process running as root before the Xsession scripts run it as user. The file is /etc/kde3/kdm/Xstartup and it should look like this:

# Xstartup - run as root before session starts

PATH="$PATH:/usr/bin/X11"

if [ -e /etc/nologin ]; then
  # always display the nologin message, if possible
  if [ -s /etc/nologin ] && which xmessage > /dev/null 2>&1; then
    xmessage -file /etc/nologin -geometry 640x480
  fi
  if [ "$(id -u)" != "0" ] && \
     ! grep -qs '^ignore-nologin' /etc/kde3/kdm/kdm.options; then
    exit 1
  fi
fi

# synergyc process, running as root, ends here. This is the last script in the gdm login sequence before things start running as user.
/usr/bin/killall synergyc
sleep 1

if grep -qs '^use-sessreg' /etc/kde3/kdm/kdm.options && \
   which sessreg > /dev/null 2>&1; then
      exec sessreg -a -l "$DISPLAY" -u /var/run/utmp \
                   -h "`echo $DISPLAY | cut -d: -f1`" "$USER"
      # NOTREACHED
fi

Warning: if you put the -f into the command, you'll get a script that doesn't stop and let kde finish loading!

Server Autostart at login screen, GDM

To make sure synergy is running at all times, the following has to happen: First, synergy is started when the X server loads (before a user logs in). Then, synergy is killed and restarted when a user logs in. When the user logs out, synergy is killed and restarted. To make this happen under GNOME, the following must happen:

On the client

Edit /etc/gdm/Init/Default with the command

sudo gedit /etc/gdm/Init/Default

At the end of the file, after the last fi line but before the line that says exit 0 add the following:

# ADDED FOR SYNERGY
/usr/bin/killall synergyc
sleep 1
/usr/bin/synergyc <HOST NAME>
# END SYNERGY

Be sure to replace <HOST NAME> with the host name or IP address of the computer running synergys.

Then, edit /etc/gdm/PostLogin/Default with the command

sudo gedit /etc/gdm/PostLogin/Default

This will likely create a new file. Add the following to the file (placing the code at the end of the file if there's already stuff there):

# SYNERGY STUFF
/usr/bin/killall synergyc
sleep 1
# END

Now, create a session file to run synergyc when someone logs in with the following command

sudo gedit /etc/X11/Xsession.d/85synergyc

This will create a new file, place the following in the file:

/usr/bin/killall synergyc
sleep 1
/usr/bin/synergyc <HOST NAME>

Be sure to replace <HOST NAME> with the host name or IP address of the computer running synergys. Lastly, we must make the file executable with this command:

 sudo chmod a+x /etc/X11/Xsession.d/85synergyc

We're good to go with synergyc, the setup for synergys is almost identical:

For the server

Edit /etc/gdm/Init/Default with the command

sudo gedit /etc/gdm/Init/Default

At the end of the file, after the last fi line but before the line that says exit 0 add the following:

# ADDED FOR SYNERGY
/usr/bin/killall synergys
sleep 1
/usr/bin/synergys
# END SYNERGY

Then, edit /etc/gdm/PostLogin/Default with the command

sudo gedit /etc/gdm/PostLogin/Default

This will likely create a new file. Add the following to the file (placing the code at the end of the file if there's already stuff there):

# SYNERGY STUFF
/usr/bin/killall synergys
sleep 1
# END

Now, create a session file to run synergyc when someone logs in with the following command

sudo gedit /etc/X11/Xsession.d/85synergys

This will create a new file, place the following in the file:

/usr/bin/killall synergys
sleep 1
/usr/bin/synergys

Lastly, we must make the file executable with this command:

 sudo chmod a+x /etc/X11/Xsession.d/85synergys

We're good to go with synergys!

Wrapup

Now that you have synergy installed and running, you can copy and paste between machines and also just have all out fun with the keyboard and mouse on both/or more machines. I use Synergy all the time, that way I can write in one window and talk/chat/read mail in another window. It makes using multiple computers a lot easier and a lot more fun.

Ulteriori risorse

http://quicksynergy.sourceforge.net


CategoryNuoviDocumenti CategoryInTraduzione