Global volume control with esekeyd

Something that has been bugging me ever since I first tried Linux (Ubuntu when it used to be… not shitty) is the fact, that the media button of my Laptop, especially the volume control, never seemed to work in fullscreen applications. And since I recently started playing Battle for Wesnoth again, I decided to tackle the problem once and for all.

A fairly simple way to fix it is esekeyd a deamon that listens to keyboard events and then executes whatever command you wish. It is available in the arch repositories, so first install it using pacman:

sudo pacman -S esekeyd

After you installed it you need to edit the config file /etc/esekeyd.conf which holds entries like the following:

#VOLUMEDOWN:amixer set Master 5%- &
#VOLUMEUP:amixer set Master 5%+ &
#MUTE:amixer set Master toggle &

If you simply want your volume control to work, uncommenting these lines should suffice. However If you are not sure what the buttons are called or if you simply want to check if esekeyd receives the keystrokes correctly, you can use the handy keytest tool, which is also part of the esekeyd package:

sudo /usr/bin/keytest

The tool will print the names of the pressed keys to the screen.

After you are done with the config file, start the daemon (and add it to your DAEMONS list in /etc/rc.conf if you want it to automatically start during boot):

sudo /etc/rc.d/esekeyd start

When I first tried this nothing seemed to work and it turned out that for some reason I didn’t have amixer installed, so make sure you have the package alsa-utils on your computer.

This entry was posted in Arch Linux, Linux and tagged , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s