PDA

View Full Version : Strange behaviour of function keys on Toshiba Satelite



gnoam
17th March 2014, 01:04 PM
Hi everybody

Since I installed fedora 20 on my laptop the function keys (those to adjust volume, brightness etc.) behave very different then they did under windows. for example the one to increase brighness gets the computer in sleep mode, those to adjust the volume work normally but others dont do anything. How can I assign the right function to each key? I didnt find any answers on google, so hopefully someone here can help me...

thanks a lot
gnoam

Skull One
17th March 2014, 02:13 PM
What is your laptop model?
I have written something about that a year ago, I think it can still be applied: http://forums.fedoraforum.org/showthread.php?t=288561
Hope it helps.

Ahmad Samir
17th March 2014, 03:59 PM
In F20 /usr/lib/udev/keymap has been replaced with a udev builtin tool, have a look at /usr/lib/udev/hwdb.d/60-keyboard.hwdb ; basically you now need to create a custom rules file with the proper syntax then execute 'udevadm hwdb --update'.

See also:
https://ask.fedoraproject.org/en/question/39437/custom-keymap-with-systemd
http://forums.fedoraforum.org/showthread.php?t=296059

Skull One
17th March 2014, 04:30 PM
I missed that, thanks for the info Ahmad! :)
I'll mark the guide as deprecated.

dobbi
17th March 2014, 05:16 PM
Getting the vendor name and model

# dmidecode -t 1 | egrep -i 'manufacturer|product'

I wish I knew about that file in /usr/lib/udev/hwdb.d/60-keyboard.hwdb it would have saved me a lot of trouble LoL

flyingfsck
17th March 2014, 05:52 PM
Howdy,

You can also reassign keys with xmodmap.

gnoam
18th March 2014, 12:14 AM
Hi everyone!
Thank you all very much for your help! Unfortunately I haven't been able to fix it yet.

So i did the following: I determined the faulty key codes as in the first step in Skull One's guide and then opened the file /usr/lib/udev/hwdb.d/60-keyboard.hwdb. Since my model Toshiba Satellite P855 is not listed there, I added the following code:



# Satellite P855
keyboard:name:AT Translated Set 2 dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P855:pvr *
KEYBOARD_KEY_3B=help #F1
KEYBOARD_KEY_EC=brightnessdown #F2
KEYBOARD_KEY_8E=brightnessup #F3
(and so on)


The keyboard name "AT Translated Set 2" is what i get from evtest. I then executed 'udevadm hwdb --update' and rebooted, but nothing seems to have changed.
I am no experienced programmer so maybe I am doing something wrong?

Ahmad Samir
18th March 2014, 07:54 AM
This line is wrong:

keyboard:name:AT Translated Set 2 dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P855:pvr *
before dmi there should be a : . But you don't need to use the name: bit at all, try this:

keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite *P855:pvr*

Also note that when the systemd is updated your changes will be overwritten, so you're better off putting your custom keyboard rules in a separate file. You can create /etc/udev/hwdb.d/ and put your custom rules in e.g. /etc/udev/hwdb.d/70-keyboard-custom.hwdb then execute 'udevadm hwdb --update'.

Note that you could put the file in /usr/lib/udev/hwdb.d/ but one advantage of putting the file under /etc is that when doing a clean install one usually backs up /etc to be able to restore customized settings later on.

Ahmad Samir
19th March 2014, 08:25 AM
I missed that, thanks for the info Ahmad! :)
I'll mark the guide as deprecated.
Only half-deprecated; one still needs to find the scancodes/keycodes combinations, just the part of remapping them has changed.