Jozef Mares – Page 13 – jozefmares.com
Home Author
Author

Jozef Mares

Having two machines for work has a lot of advantages but there are few disadvantages. I have covered file synchronisation issue in my previous post.

Today issue is sharing screen – e.g. I hate two separate sets of input devices. Solutions is called Synergy and I am using this project for years. Yet, even developers and admins who work with separate (not virtual) machines on their physical desktops do not know this beautiful piece of software. Time to change this!

Synergy basically works this way: one computer acts as a server (this is the computer with main input device – keyboard and mouse for example). Clients connects to this server which have stored configuration with physical position of clients. One picture worth thousand words, check this (image courtesy of Synergy project):synergy scheme

 

My setup is based on Fedora box with two screens in the middle and right (second screen) and OS X box on the left. I’m using pretty basic setup (no special Synergy hacks) and server configuration file looks like this:

section: screens
fedora_box:
os_x_box:
alt = meta
meta = alt
end

section: links
fedora_box:
left = os_x_box
os_x_box:
right = fedora_box
end

Name this file .synergy.conf and run Synergy to check if it works:

synergys -f

I would like to mention only one speciality compared to “extremely basic setup” and it is:

alt = meta
meta = alt

This configuration options are switching meta (win) key on IBM keyboard with alt key. I have this setup because Mac keyboard I’m using all day when I’m away from my home office has CMD key left of space followed by alt key from right to left. This way I’m not making typos in keyboard shortcuts. Productivity on!

You can download on project page binaries for your favourite distributions and OS X. Be careful – version in Fedora 18 repositories is 1.3.X and version downloaded from project page will be likely 1.4.X – server will return error about incompatible client.

Finally you should automate somehow startup of binaries but way how to achieve is up to you. I have server always started (binary started after Gnome 3 startup) and on OS X box I’m starting binary on demand. In future post I might write how to start applications and change network profile on OS X based on location.

My workflow is based on using OS X and Fedora together. I’m using OS X for business work and Fedora for actual work. This post is about a way which I use to keep my files in sync, post about my workflow might come later.

I tested a few solutions like rsync and manual copying (really, this was bad idea :) ). I’m not able to keep my files in sync manually thus i need to automate. To automate is good idea even if you are capable to keep files in sync – automation makes (at least me) things go smooth.

So I decided to go Unison way. Unison is beautiful piece of software written by Benjamin C. Pierce in pretty cool programming language – OCaml.

I have few machines always on on Internet so I can use start topology which has few advantages over direct synchronisation. One of the greatest (for me) is that central server for Unison is available over SSH (password-less login) and central server is in my office where I’m rarely but when I’m in office i always want some of my files which is few hundred kilometres from me.

So let’s assume we have two machines (clients) and one server. One machine is called NTB-1, second is DESKTOP-1 and server is called SERVER-1.

In this part I should mention that Unison is extremely sensitive to own version. You must have available exact same version on every synchronised machine (at least i would not try doing job without it). Fedora 18 has Unison 2.4 default version, you can get this version to OS X using homebrew. Server is running Centos 6.3 where Unison 2.4 is also by default (provided by unison package). I’m lucky bastard – this was pain free for me.

Let’s setup first client – NTB-1 running OS X. First we should install Unison:

brew install unison 

Then I created folder for Unison config:

mkdir ~/.unison

Next step is to create configuration file, mine (pretty basic) is looking like this:

# Sync roots
root = /Users/jozef
root = ssh://jozef@vserver-1//home/jozef/TrustedPoint

# What to synchronize
path = Current
path = Documents
path = .ssh
path = .bashrc
path = .vimrc

# What to ignore
ignore = Name *~
ignore = Name .DS_Store
ignore = Name .tmp
ignore = Path .ssh/known_hosts

# Keep backup copy of every file
backuplocation = central
backup = Name *
backupprefix = $VERSION.
backupsuffix =

# Log actions
logfile = /Users/jozef/.unison/sync.log

On Fedora box i created config directory:

mkdir ~/.unison

On Fedora box config file look like this:

# Sync roots
root = /home/jozef
root = ssh://jozef@server-1//home/jozef/TrustedPoint

# What to synchronize
path = Current
path = Documents
path = .ssh
path = .bashrc
path = .vimrc

# What to ignore
ignore = Name *~
ignore = Name *.swp
ignore = Name .tmp
ignore = Path .ssh/known_hosts

# Keep backup copy of every file
backuplocation = central
backup = Name *
backupprefix = $VERSION.
backupsuffix =

# Log actions
logfile = /home/jozef/.unison/sync.log

You should adjust at least sync roots and what to synchronize. I would not describing each option as you can find it here.

I would like to especially mention two / after server address and backuplocation option. They are pretty important for me, you might look to manual why. :)

Server setup is pretty easy – just create paths and install Unison:

mkdir ~/TrustedPoint
yum install unison

If you want password-less login you should setup SSH which is beyond scope of this quick how-to. Happy synchronizing and no conflicts.

Na The Dish je dobré to že majú jednoduchý koncept a menu. Dodáme Vám výborné burgery a hranolky, fajn pivo s milou obsluhou v nefajčiarskom prostredí. Mne osobne to k šťastiu stačí a preto vyhrávajú na poli burgrární v Prahe.

Existujú ľudia ktorý si myslia že v McDonalds majú dobré hranolky ale po ochutnaní ozajstných hranoliek ich to našťastie prejde – jeden z príkladov týchto hranoliek je i The Dish. Prostredie je fajn (nostalgické obrázky hospodiniek z USA ma berú :) ), lokalita výborná z hľadiska dostupnosti.

Aby toho chválenia nebolo moc, jediné čo sa dá vytknúť je potreba rezervácie miesta cez exponovanú dobu ako je obed alebo večer. Ale to vlastne nie je žiadna výčitka, ale dôsledok toho že to čo robia, robia dobre.

Ako obvykle, fotenie jedla je trápne dáme si vizitku.

vizitka the dish

Protip na záver: Jelení burger. Ak nie je v menu, pýtať si.

The Dish