From ArchWiki
Revision as of 22:06, 21 April 2009 by Statix (talk | contribs) (Startup Script)
Jump to: navigation, search


Ventrilo is a voice communication program for Windows that runs quite well on the latest wine. This article outlines a few workarounds necessary to using Ventrilo naturally on Linux.

Global Push to Talk Hotkey

One problem that wine Ventrilo users face is that the push to talk hotkey only being detected when a wine window (such as Ventrilo itself) is in focus. The solution to this is using ventriloctrl, a simple program that sends X input to Ventrilo.

Finding the input device

The acceptable input devices are in /dev/input/. If you want to use a mouse use the event-mouse in /dev/input/by-id/. For a keyboard use /dev/input/event[#].

You'll probably need to do a bit of trial and error to find the proper event number or device. The best way to do this is just to run ventriloctrl /dev/input/[whatever] as root, and press keys or click your mouse and see if it is detected by the program. If it is detected, it will show an example line with a number at the end. That number is the button number that you will use to run ventriloctrl in the future.

For example, my ventriloctrl /dev/input/by-id/usb-Logitech_USB_Receiver-event-mouse shows:

 ventriloctrl /dev/input/by-id/usb-Logitech_USB_Receiver-event-mouse 272

If that was the button I wanted to use, I would run ventriloctrl with that line in the future.

Startup Script

Now we'll make a script to run ventriloctrl using the parameters you discovered. This could also be done with an alias or other user-specific methods. Edit your script with your favorite editor and call it whatever you want. Mine is going to be called ventriloctrl+.

 # nano /usr/bin/ventriloctrl+

By default, a normal user does not have the access to the /dev/input/ devices that ventriloctrl needs to use. To get around this you can either make a udev rule, or just use sudo. So far, I'm just going to show what your script should look like with sudo.

 sudo ventriloctrl /dev/input/by-id/usb-Logitech_USB_Receiver-event-mouse 272

Of course, the device and event number should be replaced with the ones you found earlier. Essentially you just want to add sudo to the front of your previous input device line.

Make sure your script is executable:

 # chmod +x /usr/bin/ventriloctrl+

All done. Now you just need to make the ventriloctrl+ script run when ventrilo runs.

Allowing sudo for ventriloctrl

You might also want to run ventriloctrl with nopasswd for sudo. To do this, edit sudo's config file

 # visudo

Add a line like the following. %wheel can be replaced with specific usernames if desired, otherwise it'll work for any users in the wheel group.

%wheel ALL=NOPASSWD:/usr/bin/ventriloctrl