6

I want to run a TeamSpeak 3 Client on my server to serve as a local sound bot. TeamSpeak 3 Client needs a GUI. It is based on Qt. Since TeamSpeak can be controlled from command line, it is not really necessary to waste CPU time for a GUI. So I thought of faking a desktop environment.

What's the best solution to fake a minimal desktop environment on a Debian Linux server? If this is not entirely possible, what would you recommend to waste as less performance as possible? Remember, I really don't need the GUI. It just needs to be there to get TeamSpeak 3 Client started.

Indrek
  • 24,204
  • 14
  • 90
  • 93
The Wavelength
  • 538
  • 1
  • 8
  • 23
  • Im no Linux expert, but isnt X lightweight? If its not actively used, there would be minimal CPU time. – Keltari Apr 23 '14 at 18:43
  • May I ask you how did you manage to get TS3 Client to be sound bot without GUI? I mean how did you control what you want to stream? I am very interested in that. – Mohammed Noureldin Jul 09 '17 at 22:57
  • @MohammedNoureldin, I just set up TeamSpeak once with a real gui, different profiles, added them to the bookmarks and checked "Connect on TS3 Client start". Then I configured pulseaudio server and created a different audio channel in pulse for every bot-user I wanted to have. After that, I just set the different audio channels and audio input in the client. Once it worked, I disabled the real gui and replaced it with the fake desktop environment. Everything works as expected. The bots (channel switching etc.) have been controlled via the server query protocol. – The Wavelength Jul 10 '17 at 19:36

1 Answers1

6

You can try to use the X Virtual Frame Buffer. It will act as a regular X server, but will discard any data that is fed to it. You can install it on Debian with sudo apt-get install xvfb.

You can use it like this:

/usr/bin/Xvfb :10 &   # This will launch Xvfb
export DISPLAY=:10.0
/path/to/teamspeak3

You could of course also integrate this in the Teamspeak init script.

mtak
  • 16,513
  • 2
  • 52
  • 64