NoLaE
NoLaE (Novation LaunchControl Editor) is a Linux tool that acts as a filter/mapper for Novation LaunchControl XL controllers.
There is no editor for LaunchControl on Linux and, as far as I can tell, if you don't have a Windows or OSX computer, virtualization won't work with it.
It can work with (possibly) any existing mapping already set on the LC, and, much more important, it allows you to set custom midi actions for every controller.
NoLaE uses mididings to interface between LC and your MIDI devices. Mididings is a powerful MIDI router and processor based on Python.
Here you can find the NoLaE GitHub project page.
Note: Right now NoLaE is still in development stage, there are some bugs here and there, the code is a bit messy, but it should be stable enough for basic live performances. Obviously, you are really encouraged to carefully test it before using it on a live gig.
Usage
With NoLaE you can use multiple ports and assign each controller to any of them. Since it is fully integrated with the template system of the LC, there are up to 16 templates available, and every one of them can have a different configuration. For example, you can use the first template to control a synth, the second one for the drum machine, and a third one that could control both an external keyboard, a sampler and internal effects routed in your computer.
NoLaE has three modes: Mapping, Editor and Live.
The Mapping mode is essential to correctly configure NoLaE with your actual LC mapping. There is a default mapping file I created from (what I think is) the factory setting, but it's better to check it.
The Editor mode is used to configure what each controller does for each template.
From this mode you can configure the output ports (which can be automatically routed to existing MIDI ports), the event processing in mididings unit format (for example, a fixed 0/63/127 range, or send just 2 values), the output port the event will be sent to, which - if any - LED is enabled, its default color, and what that LED will do when the controller assigned to it is operated. The templates can be named and each of them can have "groups" that will graphically help you to organize and recognize your mapping.
Once everything is set (and saved), you can use the Live mode, which will use the aforementioned mapping and configuration. It will automatically hide controllers that are not enabled (and those controllers will be ignored, so nothing will receive their events).
Well, that's it. The GitHub project page has a small guide on how to use NoLaE.
I'm still developing it, I will fix bugs as soon as possible and add missing/planned features. If you want to contact me for anything about it, just use the GitHub page or any contact from the Who page! :)