My keyboard has no "media" keys; can I control media without them?

119

46

My USB keyboard does not have "media" keys -- that is, dedicated keys for play, stop, next, prev, volume up/down, etcetera.

Keyboard media keys

For the sake of this question, I would prefer not to install additional software if I can avoid it.

Is it possible to issue some standard key sequence on a generic USB keyboard that emulates these play, stop, etc. multimedia keys?

Like Ctrl+Alt+Shift+F12 or something obscure like that?

Jeff Atwood

Posted 2011-05-04T10:23:56.780

Reputation: 22 108

also, depending if you use the Windows Sidebar, there may be a Gadget availible for media player controls... – tombull89 – 2011-05-04T11:21:04.867

o/s ? for linxu gconf can do it. – Sirex – 2011-05-04T13:41:25.497

Answers

18

I'm pretty sure it's not possible to do what you want. Media keys don't send key combinations; instead, they have their own usage IDs in the HID. See this document (media keys are in the Consumer Page (0X0C)). If you want to simulate them using a key combo, you're going to have to do it in software.

LaC

Posted 2011-05-04T10:23:56.780

Reputation: 2 263

The link is down :( – Csorgo – 2019-03-04T15:04:01.877

@Csorgo link has been fixed. – mrjink – 2019-05-10T12:54:09.477

163

Windows

AutoHotkey

AutoHotkey (AHK) is a free, open-source macro-creation and automation software for Windows that allows users to automate repetitive tasks. It is driven by a scripting language that was initially aimed at providing keyboard shortcuts, otherwise known as hotkeys, that over time evolved into a full-fledged scripting language.

http://ahkscript.org/

To learn about AHK I recommend checking its site, pages mentioned in Quick Reference and especially skimming at least AutoHotkey Beginner Tutorial. Don't forget to download, install and fiddle with it yourself. There is also helpful forum.

Example

In this case you should look particularly at following pages: Hotkeys (Mouse, Joystick and Keyboard Shortcuts), List of Keys, Mouse Buttons, and Joystick Controls and Send / SendRaw / SendInput / SendPlay / SendEvent: Send Keys & Clicks. Then you'll be able to assemble simple AHK script, e.g. something like:

^!Left::Send   {Media_Prev}
^!Down::Send   {Media_Play_Pause}
^!Right::Send  {Media_Next}
+^!Left::Send  {Volume_Down}
+^!Down::Send  {Volume_Mute}
+^!Right::Send {Volume_Up}

^!.::
MsgBox, 0, , Hello AHK world!
return

Here you define following actions:

  • Ctrl+Alt+ sends Previous
  • Ctrl+Alt+ sends Play/Pause
  • Ctrl+Alt+ sends Next
  • Ctrl+Shift+Alt+ sends Volume Down
  • Ctrl+Shift+Alt+ sends Mute
  • Ctrl+Shift+Alt+ sends Volume Up
  • Ctrl+Alt+. invokes message box greeting AHK world (just to show non-oneline key-commands mapping ending w/ return)

Usage

You create .ahk file, paste above code in it (w/o useless MsgBox, of course), save and double click to run it. You'll get H icon in systray allowing you to interact w/ the script, particularly: suspend hotkeys, pause script (not useful here) or just exit it. For better convenience I suggest compiling such script. You can do it using Right Button Mouse on the file and choosing Compile Script. Then you'll get .exe file (pretty big, but it's like complete autohotkey) that you can share w/ others or add to autostart for instance.

Remapping via the Registry's "Scancode Map" / KeyTweak

In AutoHotkey's Remapping Keys and Buttons page you can read about other way of assigning keys to keys, remapping. It may be not useful in your case (unless you're ready to "lose" some keys), but it's still worth reading. (Then you should figure out why I haven't used AHK remapping in my example.)

Let me quote it (w/o blockquote to preserve formatting) and fix some links along the way:

<quote>

Advantages

  • Registry remapping is generally more pure and effective than AutoHotkey's remapping. For example, it works in a broader variety of games, it has no known alt-tab issues, and it is capable of firing AutoHotkey's hook hotkeys (whereas AutoHotkey's remapping requires a workaround).
  • If you choose to make the registry entries manually (explained below), absolutely no external software is needed to remap your keyboard. Even if you use KeyTweak to make the registry entries for you, KeyTweak does not need to stay running all the time (unlike AutoHotkey).

Disadvantages

  • Registry remapping is relatively permanent: a reboot is required to undo the changes or put new ones into effect.
  • Its effect is global: it cannot create remappings specific to a particular user, application, or locale.
  • It cannot send keystrokes that are modified by Shift, Control, Alt, or AltGr. For example, it cannot remap a lowercase character to an uppercase one.
  • It supports only the keyboard (AutoHotkey has mouse remapping and some limited joystick remapping).

How to Apply Changes to the Registry

There are at least two methods to remap keys via the registry:

  1. Use a program like KeyTweak (freeware) to visually remap your keys. It will change the registry for you.
  2. Remap keys manually by creating a .reg file (plain text) and loading it into the registry. This is demonstrated at www.autohotkey.com/forum/post-56216.html#56216

</quote>

EventGhost

EventGhost is an advanced, easy to use and extensible automation tool for MS Windows. It can use different input devices like infrared or wireless remote controls to trigger macros, that on their part control a computer and its attached hardware. So it can be used to control a Media-PC with a normal consumer remote. But its possible uses go much beyond this.

http://www.eventghost.org/

Haven't tried it, but looks interesting and a bit related, so I think it's worth mentioning it here.

Some SuperUsers may remember Girder, that unfortunately stopped being freeware long time ago. EventGhost seems somewhat similar. I no longer have AverMedia's TVPhone98, but using remote via Girder was fun.

przemoc

Posted 2011-05-04T10:23:56.780

Reputation: 2 176

If the shortcuts don't work, a Chrome App (such as Google Music) may be hijacking them. Have a look at the bottom of the Extensions page in Chrome, there's a "Keyboard shortcuts" link where you can disable them.

– isanae – 2017-04-05T00:45:26.260

You may want to add that AutoHotkey is considered a cheat by certain anticheat systems and as such doesn't work while gaming or can downright get you banned. – Darkhog – 2017-05-07T20:35:16.660

KeyTweak seems like the shortest route to a simple solution... – O'Rooney – 2017-07-04T22:18:58.200

AutoStart can also be achieved by simply putting the .ahk file into autostart folder (Run: shell:startup) – N4ppeL – 2018-09-27T14:20:39.073

I managed to get Autohotkey to do it with just: ^Right::Media_Next – Sam Tolton – 2019-08-15T09:25:27.497

4Very nice @przemoc, perhaps you want to elaborate on this a little bit more in a blog post for the Super User blog? – Ivo Flipse – 2011-05-04T12:47:47.607

1@IvoFlipse I can someday, but if there are any deadlines, I quit immediately. :) – przemoc – 2011-05-04T18:20:34.567

The deadline is whenever you're ready :-) – Ivo Flipse – 2011-05-04T18:48:33.143

2@ivo did this ever get blogged? – Jeff Atwood – 2012-09-25T09:11:34.413

1@Jeff: No. I'm really sorry, but somehow I have never managed to turn it into more elaborate article. And there is still a blatant lack of Linux-related discussion in my answer. – przemoc – 2012-09-25T09:24:32.307

10

If you have some useless keys, (like scroll lock, or pause, or the key to invoke the contextual menu, or the windows key at the right side, or else) you can remap it to media keys.

Windows: with Sharpkeys.

Mac: with Karabiner

Magnetic_dud

Posted 2011-05-04T10:23:56.780

Reputation: 3 210

7

I don't blame you for not wanting to install extra software, but AutoHotKey is a program which lets you write scrips for key presses.

AutoHotkey is a free, open-source utility for Windows. With it, you can:

  • Automate almost anything by sending keystrokes and mouse clicks. You can write a mouse or keyboard macro by hand or use the macro recorder.

  • Create hotkeys for keyboard, joystick, and mouse. Virtually any key, button, or ombination can become a hotkey.

  • Expand abbreviations as you type them. For example, typing "btw" can automatically produce "by the way".

  • Create custom data-entry forms, user interfaces, and menu bars. See GUI for details.

  • Remap keys and buttons on your keyboard, joystick, and mouse.

  • Respond to signals from hand-held remote controls via the WinLIRC client script.

  • Run existing AutoIt v2 scripts and enhance them with new capabilities.

  • Convert any script into an EXE file that can be run on computers that don't have AutoHotkey installed.

tombull89

Posted 2011-05-04T10:23:56.780

Reputation: 6 533

You may want to add that AutoHotkey is considered a cheat by certain anticheat systems and as such doesn't work while gaming or can downright get you banned. – Darkhog – 2017-05-07T20:36:33.087

@CarlF It would still be useful for any Linux users stumbling upon this question. – user2428118 – 2017-09-21T15:25:04.933

also, slighty going off, does your media player come with keyboard shortcuts? i.e. iTunes has a large shortcut list.

– tombull89 – 2011-05-04T10:37:45.980

+1 for AutoHotKey which I would use for that too. Here are some scripts that seem to emulate Media Keys: http://www.autohotkey.com/forum/topic7135.html

– slhck – 2011-05-04T10:41:32.497

2It would be helpful if you actually explained how to do so ;-) – Ivo Flipse – 2011-05-04T10:49:03.840

@Ivo, .bat files are the limit of my programming ability so unfortunately asking me to write even a sample script would be a while coming. – tombull89 – 2011-05-04T11:18:49.703

If you were to use a free OS, you could use xmodmap in xorg. Not posting as an answer because I read Jeff Atwood'd blog and know the odds of his dropping Windows approximate zero. – CarlF – 2011-05-04T12:42:29.360

AutoHotkey is very good. But it has too steep learning curve. I don't want to spend hours learning to use a tool, to do simple tasks. – Calmarius – 2012-10-13T20:40:39.427

4

Many media player applications have support for "Global Hotkeys" -- key combinations that allow you to play/pause, go to next track, etc. from anywhere on your computer. (Many of the Ctrl / Alt / Shift / Option combinations have already been claimed by other software, but the Win / Super / Meta key combinations are relatively open.)

For example, I'm running Songbird and I've mapped Win+NumPad0 to play/pause, while Win+NumPad4 and Win+NumPad6 are previous track and next track respectively.

Check to see whether your preferred media player natively supports global hotkeys (and if it doesn't, get a better one).

Curtis Gibby

Posted 2011-05-04T10:23:56.780

Reputation: 685

3In many ways this is really the best solution if the aim is only media control. (Foobar2000 supports global hotkeys too) – DetlevCM – 2015-05-31T13:50:07.047

2

As others have said, AutoHotkey can help in this case greatly. For example, this script will remap Previous/Next buttons to Winkey + < / >, Volume Down/Up to Winkey+ [ / ] and Mute Toggle to Winkey+ \ . For Play/Pause, Space bar works anyway by default in YouTube by default and in desktop players like MPC-HC / MPC-BE / VLC. Just for Windows Media Player, you can remap Ctrl+P (default for Play-Pause) to Space.

; AutoHotkey Multimedia Keys
#,::Send {Media_Prev}
#.::Send {Media_Next}
#\::Send {Volume_Mute}
#]::Send {Volume_Up}
#[::Send {Volume_Down}
#IfWinActive ahk_class WMPlayerApp
Space::Send {Media_Play_Pause}

Now your keyboard has multimedia keys :)

Anonymous

Posted 2011-05-04T10:23:56.780

Reputation: 21

1

Windows 10 has quite robust Speech Recognition. Set it up and activate it, then use these commands to control media:

switch [name of open media software]
next
previous
pause
play
volume, press right
volume, press left

You don't need to say the entire name of the software: switch media player is enough to switch to switch to Windows Media Player; switch cast is enough to switch to Windows' Cast to Device media casting tool.

To find out what commands you can use in an open window, you can hover over the buttons with your mouse, and check the tooltips. If there's no tooltip, you can say show numbers, and a matrix of numbers will overlay over any actionable elements on your screen.

Protector one

Posted 2011-05-04T10:23:56.780

Reputation: 1 057

1

I found that "Snip" software not only displays current song played but also allows you to control your player. It currently supports: Spotify, iTunes, Winamp, foobar2000, VLC, Google Play Music Desktop Player, Quod Libet

Take a look at https://github.com/dlrudie/Snip

richo

Posted 2011-05-04T10:23:56.780

Reputation: 11

OP specifically asked for solutions that do NOT involve installing software. Also, this question is more than 6 years old and has accepted answers. As such, your answer sounds like an ad for the software you've linked. – music2myear – 2018-02-21T22:13:01.847

Sure, this is always when one tries to help. I was in same situation as he was. Found this thread. The accepted answer was useless to me I was searching further and found different solution. Internet use to be better place ten years ago. Your comment certainly adds value too, right? – richo – 2018-02-23T10:20:59.733

I'm glad this thread assisted you with your own problem. The thing is, SuperUser is about specific questions and specific answers. Because in your circumstances using third-party software was acceptable, then you have a different question. If there is not a question dealing with your specific question, you can actually post your own question and then answer it yourself. THAT is perfectly acceptable and even encouraged, plus it is more likely to gain your more reputation. Don't hate this game, understand it. – music2myear – 2018-02-23T16:48:27.157

1

This isn't a complete answer to your question since it is likely too specific but it may contain some useful information so I am passing it along:

I do it like this using fluxbox and ogg123 - I have this in .fluxbox/keys

# Control ogg123
Mod4 p :Exec killall -STOP ogg123       # pauses ogg123 
Shift Mod4 p :Exec killall -CONT ogg123 # unpauses ogg123
Mod4 o :Exec killall -INT ogg123        # skips tracks in ogg123
Mod4 Shift o :Exec killall ogg123       # stops ogg123

# Control volume
Mod4 = :Exec amixer sset Master,0 1+
Mod4 - :Exec amixer sset Master,0 1-
Shift Mod4 = :Exec amixer sset Master,0 toggle

DQdlM

Posted 2011-05-04T10:23:56.780

Reputation: 1 831

1

On Windows 8, you can find "Keyboard" in the Control Panel. From there, open up the Microsoft Mouse and Keyboard Center. Under Keyboard, Basic settings, there's a list of special keys. Click on one of them, click on "View all commands". Below there, "Media commands" includes "Next Track", "Previous Track" and "Play/pause" among others.

Works well for me with Windows' own Music app.

I have a Microsoft keyboard, so I don't know if the Microsoft Mouse and Keyboard Center works the same with other keyboards.

T-Bone

Posted 2011-05-04T10:23:56.780

Reputation: 19

1

I think WMP Keys might be a solution, but it only works with Windows Media Player.

WMP Keys What is it?

WMP Keys is global hot keys support addon for Windows Media Player

Installation

Close Windows Media Plyer
Download latest version of installer (wmpkeys.msi)
Double click wmpkeys.msi for installation
Launch Windows Media Player
Turn on plugin in Windows Media Plyer menu

Supun Wiratunga

Posted 2011-05-04T10:23:56.780

Reputation: 19

1

I found one app which can do almost all of them in windows 7 and it works without any issues when your desktop is unlocked. Also it is pretty easy to use.

http://sourceforge.net/projects/hotkeyp/?source=typ_redirect.

Only drawback I found is it will not work when desktop is locked say I come back from sleep and the computer is locked and I have loud music playing. Multimedia keyboards can mute from there itself. But with this app you need to unlock first.

digitally_inspired

Posted 2011-05-04T10:23:56.780

Reputation: 97