# Neither xbindkeys nor xev will recognize some Fn keys!



## Agi93 (Jan 23, 2010)

I am trying to use xbindkeys to assign brightness, volume, sleep, etc. controls to my Fn + F* keys, but only the mute, volume down, and volume up key combinations are recognized by xbindkeys. When I run `$ xbindkeys -mk` and press Fn + F5 (the brightness down key), it is not recognized at all. For keys that work, I get something like the following (for Fn + F2 Mute key):


```
"(Scheme Function)"
    m:0x0 + c:140
    NoSymbol
```

Right now, (UPDATE: RIGHT NOW THIS IS EVEN HAPPENING WITH MY Fn VOLUME KEYS (Fn + F2, Fn + F3, and Fn + F4) I get the following from pressing Fn + F5 (Brightness Down):


```
XIO:  fatal IO error 35 (Resource temporarily unavailable) on X server ":0.0"
      after 17 requests (12 known processed) with 0 events remaining.
```

I don't know what this means besides the fact something messed up.

I know this should work on my computer because the same process worked perfectly in Linux. Also, the volume key combinations I set are currently working (I press Fn + F3 and the volume goes up 5).

Hopefully someone here can help.


----------



## mav@ (Jan 23, 2010)

May be it is vendor/model-specific, but on my Acer TM6292 brightness keys work in some hardware way without OS support. Volume, suspend and other special keys with unsupported codes I've successfully mapped to proper X events via writing custom key map.


----------



## aragon (Jan 23, 2010)

mav@ said:
			
		

> Volume, suspend and other special keys with unsupported codes I've successfully mapped to proper X events via writing custom key map.


Any idea if/how this will work for getting multimedia keys on USB keyboards working? (volume, play, stop, etc.)


----------



## mav@ (Jan 23, 2010)

Additional keys on USB keyboard could be reported or as usual keys, or via additional HID device. In later case you should see addition uhidX device during boot and should use some applications to work with it. For example, usbhidctl.


----------



## Agi93 (Jan 24, 2010)

So would I use this usbhidctl to find out how FreeBSD recognizes these key combinations (if it does)?

I read on the ubuntu forums that another person was having this exact problem, and I know FreeBSD is not Linux and all, but it was decided that the guy there needed acpi to recognize his keys. For some reason it was being a little weird on his system. I checked out the acpi man page, but I can't really figure out what's wrong. It seems like it starts up with the kernel or at boot automatically, so these keys should be recognized.


----------



## mav@ (Jan 24, 2010)

ACPI is an one more way for vendors to implement additional keys on laptops. There are additional kernel modules for some kinds of laptops, but I haven't touched it really.


----------



## Agi93 (Jan 24, 2010)

I found out that there is an acpi_sony kernel module for FreeBSD, so I tried loading it and tested my Fn keys out, but they still didn't work in xbindkeys -k. The acpi_sony module is far from feature rich and is not being developed very actively from what I've read after some googling (whereas the acpi_ibm module is very robust). Darn. I was really hoping this would have fixed it.


----------



## aragon (Jan 24, 2010)

In my case I get a uhid device and ukbd device, but if I try use usbhidctl on the uhid device I don't get any items shown.  This is a Logitech Wave keyboard.


----------



## sixtydoses (Jan 27, 2010)

@aragon - My USB keyboard multimedia keys don't work as well. I stumbled on your post in a different thread mentioning about using USB-ps/2 converter and I've been using it since then and most of the multimedia keys are working now (haven't mapped all yet). Love all of them especially the volume wheel. I'm using Gigabyte GK-K6800. Thanks.


----------



## aragon (Jan 28, 2010)

Yea, I'm tempted to get a PS/2 converter, but ultimately it needs to work via native USB too.


----------



## UncleBAZINGA (Nov 7, 2015)

First of all sorry for digging out such an old thread, but the OPs issue perfectly describes my issue as well. I'm using 10.2-RELEASE with GENERIC on a Samsung Series5 Ultrabook and the only Fn + F* keys working are those for volume control. I would love to use them in conjunction for display brightness. Recently I've tried 11-CURRENT, but it's the same. Does anybody know if and when those functions / keys will be supported by FreeBSD?


----------



## wblock@ (Nov 7, 2015)

It might not be possible.  On USB keyboards, some keys can be seen as attached to separate USB devices that are not keyboards.  usbhidaction(1) can be used for those.

On a notebook, some special keys are not handled the same as the rest of the keyboard.  They might not be seen at all, or might require a special daemon to be running.  Sometimes the functions on those keys can be called separately with a program.


----------



## kpa (Nov 8, 2015)

Worse yet, on some laptops the special keys are not even on a USB hid device but on an ACPI device that needs a special driver from the manufacturer for them to work. Lenovo SL300 that I happen to have is one such machine.


----------



## UncleBAZINGA (Nov 9, 2015)

Thanks for the info guys. Since whether `xev` nor `xbindkeys -k` gives me any useful information about Fn-key + F* for brightness I think I have to stick with brightness control via terminal and graphics/intel-backlight.


----------



## Juha Nurmela (Nov 9, 2015)

This is a HP ProBook 6550b. Fn+F9 and Fn+F10 are marked to control display brightness. They did not do anything. `windowmaker` did not want to capture those keys. It needs keysymbols, I guess. `xev` did show the keycodes though. I added
`xmodmap -e 'keycode 146 = XF86KbdBrightnessDown' -e 'keycode 151 = XF86KbdBrightnessUp'`
and now windowmaker captures the key combinations ok. Also now, as windowmaker has a grab to those keys, xev does not show them any more, just a whirl of FocusIn/Out/... The KeyPress/Release proper is missing. This is normal, I think.
I have the keys as menu accelerators in "Appearance" menu, executing intel_backlight. I guess it's similar to `xbindkeys`.

I wonder if there is a way to list existing keygrabs.

Juha


----------

