You are here

qjackctl without X


After setting up qjackctl in ubuntustudio, I do not want to use X any longer but boot into command line only.

Now qjackctl complains:
qjackctl: Cannot connect to X-server

How can I tell qjackctl not to connect to the X-server?

I have already tried to set


in the config file. But the main window still opens up when restarting.

rncbc's picture

qjackctl is a gui; on linux that usually means its also an X11 client.

sorry, there's no command line only mode for qjackctl and i'm a bit of afraid it makes no sense at all being like so.

if what you want is controlling your headless machine you'll have to tell where a X-server (ie. graphical monitor screen) is located, by giving its IP address or hostname through the DISPLAY environment variable. eg.

export DISPLAY=hostaddr:0.0


Thanks for your reply.

I just want to have jack running (for playing music) the way I configured it in qjackctl, without X running.
If I do
export DISPLAY=hostaddr:0.0
I get (not surprisingly):
qjackctl: cannot connect to X server hostaddr:0.0

Maybe it is possible to turn the config file plus patchbay file into a valid jackd command line somehow?
I mean, qjackctl has to pass these commands to jackd somehow?
Then I could just use qjackctl to do the config and only run jackd afterwards.

Somebody suggested this:
But I do not quite understand it.

rncbc's picture

i think you missed the point or i didn't explain it in any way you could understand. please accept my apologies


a) you need to have X running on some machine in your local area network--this machine should be known as hostaddr (hostname or ip address).
b) on your command-line-only machine, you set export DISPLAY=hostaddr:0.0 to tell qjackctl that all its graphical display will on that other hostaddr machine.
c) run qjackctl on the hostaddr machine--if this works right, the main window and all will be displayed on the screen of that machine, not the one which you are running on command line only.

if you do not have any second X server machine, then you can only start jackd from the command line. you'll have to figure out the correct command line parameters as there will be no graphical user interface like qjackctl's to help you on that. sorry :)


Ok, now I got it.:-)
Thank you very much for explaining.
I will probably try to figure out how to use jackd through the command line then.

if you allready configured jack in qjackctl, you don't need to figure out the parameters again. If you still have X installed, you can launch qjackctl, start it, and look in the "Messages" window - there you will see what options qjackctl passes to jackd, and you can copy/paste them in some script

I think that's what you wanted?


Well, the command line parameter for JACK are there, but not the patchbay.

But this is ok now, I think I have figured out how to use JACK. Essentially the jack_lsp command lists the available ports and jack_connect connects two of them.

But I have still a big problem. I would like to use MPD. But it disconnects from JACK after hitting pause. This has supposedly been fixed in MPD 0.16, (option "always_on"). But it does not work when I start JACK from command line. However, it does work when using qjackctl, MPD then never disconnects.

@ rncbc,
How is this problem avoided in qjackctl?

That is just the best clue ever. Thanks so very mucho.

Ok, I have figured it out. The ports should be entered in the mpd.conf file, then MPD autoconnects:

audio_output {
type "jack"
name "mpd_jack"
ports "brutefir:input-0,brutefir:input-1"

It works in MPD 0.15, but not in MPD 0.16.

I look it,thanks.

Add new comment