How to set up a Harmony remote using Linux.

Short answer: It’s not exactly trivial, but it does indeed work once you have the necessary pieces in place.

Long answer…

I had heard a bit about the community based Linux support for Logitech’s line of programmable┬áHarmony remotes, but didn’t really have the need to investigate until I upgraded my Western Digital media player over the holidays.

The first piece of the puzzle was a command line app called Concordance.

I went to compile the source from the author — fortunately I found this first in the release notes:

The best way to install this software in Debian or Ubuntu is with the packages in those distros:

sudo apt-get install concordance


Once installed I invoked the app with a terminal command, and got this:

Um, ok…

A bit of Googling yielded a more precise command:

sudo concordance -i -v

Which clearly showed that my remote was detected on my computer’s USB bus:

I could have proceeded with text commands but instead chose to add congruity — a gui app — into the mix:

Only problem was, the following message filled up the next screen:

ERROR: Precisely one filename argument is required
Traceback (most recent call last):
File "/usr/bin/congruity", line 1932, in main raise CmdLineException("ERROR: Precisely one filename argument is required")
CmdLineException: ERROR: Precisely one filename argument is required

Googling that reminded me that I had to be logged in to Logitech’s Harmony users portal to download the specific device control settings to my remote. Once I was signed in, the rest of the procedure was really no different than using Windows or OS X:

Hopefully I’ve documented the necessary steps here well enough for you to get your own Harmony remote connected and set up via Linux. If I can make things more clear (or I got something wrong) please leave me a comment and let me know.

Yet again a humble and heartfelt thanks goes out to all the clever folks who have made this possible. ­čśÄ


  1. That’s very cool. I find this to be the standard operating procedure with anything-Linux: no idea where to put the key. You then discover that you need to attach a cable in the underbelly of the engine and then build your own wheel out of chewing-gum. But once you figure that out, the car pretty much drives itself and is the best ride in the world. Maybe that sense of accomplishment, the Ikea-effect if you will, is the real key to Linux’s success…

  2. And I forgot to mention that the congruity app shows my exact remote — the Logitech Harmony 670.

    Now I’m not smart enough to figure this out on my own, but I imagine the app includes a bunch of .png files for different hardware, making it better than the OS X software I’d previously used.

  3. On any distro with good packages, all you need to do is install the ‘congruity’ package and then use the web interface. Everything else should be taken care of.

    (This should be the case on Fedora right now, but there’s a wrinkle with udev and ACLs which means you have to run a setfacl command…)

    1. Ah ok, I wasn’t at all clear on how Concordance worked in it’s own. Thanks for that.

      I do like the visual reinforcement that congruity provides, however unecessary it may be…

  4. Almost 7 years later: I bought me a Harmony 350, followed your perfect instructions. But: logging in to the Logitech database had no success. Is this a by Logitech closed path because of their hate of Linux.

    1. Yeah sorry, these instructions no longer work… I need to keep a shitty Windows laptop around just I case I need to re-program my remote. ­čśí

Leave a Reply