How To: Configure Synergy Server as a systemd Service in Linux (Fedora 20)

After I got my desktop up and running full time, I decided that I wanted to use it as my Synergy server instead of as a Synergy client (see here for how to setup as a client).  If you would like to learn more about what Synergy is then you can visit my previous post here or you can visit the Synergy website.

TABLE OF CONTENTS:

  1. DIRECTIONS
    1. Install and Configure Synergy Server
    2. Verify systemd User Instance is Running
    3. Create systemd user service for synergys
    4. Create synergys.desktop Autostart File
  2. Wrapping Up
  3. References

DIRECTIONS

The following directions were verified to work on my Fedora 20 64-bit system.  Hopefully your experience will be the same, though your mileage may vary.  I cannot guarantee exactly what will happen with your system, and I take no responsibility for any issues this causes.  Follow these at your own risk.

If you do not understand what a certain command or component might be doing, then I suggest you research it to fully understand what changes you are making to your system.

Install and Configure Synergy Server

If you don’t have it already, you’re going to need to download and install Synergy.

  1. Download — Go to http://synergy-project.org/download/?list and grab the appropriate file for your version of Linux.  In my case with Fedora 20 64-bit, http://synergy-project.org/download/?file=synergy-1.5.0-r2278-Linux-x86_64.rpm.  Or via command line:
    $ wget http://synergy-project.org/download/?file=synergy-1.5.0-r2278-Linux-x86_64.rpm
  2. Install — Go to where you downloaded the file, and install it.
    $ cd ~/Downloads/
    $ sudo yum -y localinstall synergy-1.5.0-r2278-Linux-x86_64.rpm
  3. Get a working configuration — Open the Synergy GUI (in command line type: synergy) and edit your settings so Synergy clients can successfully connect to this system (your Synergy server).  Verify you can swipe your mouse over to one of the clients and use the mouse and keyboard on that system correctly.
  4. Copy the command used by synergys to run your server — Run the following command and look for the line that starts with /usr/bin/synergys:
    $ ps -eo command | grep -v grep | grep synergys

    Note: The line should look something like
    /usr/bin/synergys -f –no-tray –debug INFO –name YourHostName -c /tmp/<tmpFileName> –address :24800
    Note: If you use synergy’s built-in encryption then the option –crypto-pass <yourPasswordHash> will also be present. Example:
    /usr/bin/synergys -f –no-tray –debug INFO –name YourHostName –crypto-pass <passHashHere> -c /tmp/<tmpFileName> –address :24800

  5. Click ‘File’, then click ‘Save configuration as…’ and choose a location and name to save your file (ex: /home/yourUser/.synergy.conf)
  6. Now stop synergy and close it.

Verify systemd User Instance is Running

We just need to check that your systemd user instance is starting on boot.  This should be the default action of your system.

  1. Find your userid — At the command line type the following command, and look for “uid=####(username)”, where #### is any number, most likely 1000 (doesn’t have to be 1000, whatever is there is your userid).
    $ id
  2. Make sure a sytemd user instance has been created for your user
    $ sudo systemctl status user@####.service

Create systemd user service for synergys

Now we need to create the synergys.service file to use for our systemd user instance.  Creating this service will cause the synergys service to start once you log in to your system.

  1. Create appropriate directory
    $ mkdir -p ~/.config/systemd/user
  2. Using your favorite text editor, create the file ~/.config/systemd/user/synergys.serviceTo understand what any of the switches in the synergys commmand do, run ‘synergys –help’ from a command line.Copy and paste the following config into the file. In the ExecStart= line, put the entire command you found above.  If you would like to have synergys log to a specific file (instead of logging to the default journald log), add the -l option after the -d option (ex: -l /path/to/log-file/writeable/by/your/user). Also make sure to specify the Synergy configuration file you saved earlier with the -c option (place it after the –crypto-pass option).Note:  In the config below I replaced the long options with their respective short options.  For example, I replaced –name with -n.
    [Unit]
    Description=Synergy server service
    After=display-manager.service
    
    [Service]
    ExecStart=/usr/bin/synergys -f -d INFO -n pcName --crypto-pass passwordHashHere -c /home/yourUser/.synergy.conf -a :24800
    Restart=on-failure
    
    [Install]
    WantedBy=graphical.target
  3. Save your file.
  4. Make your user instance aware of the service, and verify you can start, restart, and stop it:
    $ systemctl --user daemon-reload
    $ systemctl --user start synergys.service
    $ systemctl --user restart synergys.service
    $ systemctl --user stop synergys.service

Create synergys.desktop Autostart File

Now we need to create our synergys.desktop file, which will run once we log in to our system.

  1. Create the file ~/.config/autostart/synergys.desktop
  2. Copy and paste the config below into the file, then save your file.
    [Desktop Entry]
    Name=Synergys
    GenericName=Software KVM
    Comment=Share your keyboard and mouse over a network
    Exec=systemctl --user start synergys.service
    Terminal=false
    Type=Application
    Icon=/usr/share/icons/synergy.ico
    Categories=Utility
    StartupNotify=true
    X-GNOME-Autostart-enabled=true

Wrapping Up

You should now be able to reboot your system, log in, and then use your mouse and keyboard to control your Synergy clients.  Please see the references below which helped me to create this guide.  If you have any questions or comments, leave them below!

References

How-To: Install KeePass on Fedora 20

KeePass is a “password safe”, allowing you to securely store passwords for websites, computer user accounts, and any other type of system you need to store a password for.  The important thing is to remember your master password, the one that is used to encrypt the KeePass database, so you can access the rest of your passwords stored using KeePass.

To install KeePass on Fedora 20 you can install the version included in the default fedora repository (sudo yum install keepassx).  Unfortunately,  this is an old version and doesn’t support the newest KeePass database types, nor does it support some of the newer features.  To install newest version there’s a bit more work to be done.

UPDATE (2014/07/29): As of 2014/05/23, the newest version of KeePass, 2.x, is now in the Fedora repository.  To install it, just run ‘sudo yum install keepass’ or ‘sudo dnf install keepass’.  This method makes it easier to keep KeePass up to date as anytime it is updated in the repository you can use yum or dnf to update it.  However, it might take a bit more time for the updated version to be added to the repository compared to when the updated version is available for download on the KeePass website.

CONTENTS

  1. DIRECTIONS
  2. Wrapping Up
  3. References

DIRECTIONS

Note: These directions are based on the directions provided in this thread.  I making this post for my own records and due to the fact that I varied slightly from the directions in the thread.

  1. Install Mono
    $ sudo yum install -y mono-core mono-devel
  2. Download KeePass Professional Edition, portable (ZIP package)
  3. Create KeePass Application Directory
    $ sudo mkdir /usr/bin/KeePass
  4. Unzip (extract) Downloaded KeePass Package
    $ sudo unzip /path/to/keepass.zip -d /usr/bin/KeePass/
  5. Download KeePass Source Code for the Version of KeePass you Previously Downloaded
    • Look towards bottom of the downloads page, under “Other Downloads and Resources”
    • At time of this writing, this link is the most up to date source code (version 2.25)
  6. Unzip (extract) Downloaded KeePass Source Code Package
    • Change to directory where you downloaded the source code
      $ cd ~/Downloads/
    • Create directory to hold the unzipped source code
      $ mkdir KeePass-Source
    • Unzip the source code
      $ unzip KeePass-2.25-Source.zip -d KeePass-Source
  7. Copy KeePass icon to your KeePass application directory (/usr/bin/KeePass)
    $ sudo cp KeePass-Source/Ext/Icons/Finals/plock-blu.png /usr/bin/KeePass/KeePass_icon.png
  8. Create the File “/usr/share/applications/KeePass.desktop” and Add the Following Content:
    [Desktop Entry]
    Name=KeePass
    GenericName=Password Database
    Comment=Store you passwords in an encrypted database
    Exec=mono /usr/bin/KeePass/KeePass.exe
    Icon=/usr/bin/KeePass/KeePass_icon.png
    Type=Application
    Categories=Other

Wrapping Up

At this point you should be able to find KeePass in the list of applications installed on your system.  If you would like to use a different icon for KeePass, then at step number 7 copy that icon to /usr/bin/KeePass/KeePass_icon.png (or whatever extension the icon is).  You can find more official KeePass icons in the “KeePass-Source/Ext/Icons/Finals/” directory in step number 7.

References

  • http://forums.fedoraforum.org/showthread.php?t=278932
  • http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html