Sony Vaio VGN-FE21B
That one is easy:
- pacman -S iwlwifi-3945-ucode
- Add module iwl3945 to rc.conf
Special keys (Fn and so...) Part 1
I didn't manage to make the Fn key work, but that is what I have done:
- Mute key is hardware driven
- Volume keys:
- edit .kde/Autostart/keycodes.sh and add:
xmodmap -e 'keycode 174=F21' # lower volume xmodmap -e 'keycode 176=F22' # raise volume exit 0
- Run source .kde/Autostart/keycodes.sh
- Go to Preferences -> Regional settings -> Add actions
- Create a group named Vaio keys (or whatever)
- Add acctions:
- volup: dcop action, app: kmix, remote object: mixer0, function: IncreaseVolume, args: 0
- voldown: dcop action, app: kmix, remote object: mixer0, function: DecreaseVolume, args: 0
- brightup: command, I use ctrl+F5 bind key, command: ~/bin/brightdown.sh
- brightdown: command, I use ctrl+F6 bind key, command: ~/bin/brightup.sh
This is the contents of the bright scripts:
brightdown.sh:
#!/bin/sh smartdimmer -d
brightup.sh:
#!/bin/sh smartdimmer -i
Part 2(About Volume Keys)
The method above works fine if you have only one keyboard layout. But if you use couple languages then keycodes are reseted. What I did to bypass this problem was to set these keys as F20 and F21 modifying keycodes in xkb.
I use "Generic 105-key PC" keyboard as my keyboard model.(You can change it in Control Center--> Regional& Accessibility-->Keyboard Layout).
after that edit corresponding keycode file(for "Generic 105-key PC" it was /usr/share/X11/xkb/keycodes/digital_vndr/pc
), add key codes to your keyboard section or as I did it to pc_common section. It should look something like this:
<part of file>
xkb_keycodes "pc_common" { // "Function" keys <FK20> = 174; // <--- Volume button key code assigned to FK20 <FK21> = 176; //<--- Volume button key code assigned to FK20 <FK01> = 9; <FK02> = 15; <FK03> = 23; <FK04> = 31; <FK05> = 39;
</part of file>
after that you need to assign it as F20 and F21 buttons on your keyboard. To do that edit file /usr/share/X11/xkb/symbols/pc (or corresponding file if you use other keyboard model in Settings)
there you gonna find a part where F keys are assigned it should be something like this
<part of file>
key <FK10> { type="CTRL+ALT", symbols[Group1]= [ F10, XF86_Switch_VT_10 ] }; key <FK11> { type="CTRL+ALT", symbols[Group1]= [ F11, XF86_Switch_VT_11 ] }; key <FK12> { type="CTRL+ALT", symbols[Group1]= [ F12, XF86_Switch_VT_12 ] };
</part of file>
All you have to do now is to add our "new" keys here:
<part of file>
key <FK12> { type="CTRL+ALT", symbols[Group1]= [ F12, XF86_Switch_VT_12 ] }; key <FK20> { type="CTRL+ALT", //<-- for F20 key symbols[Group1]= [ F20, XF86_Switch_VT_20 ] }; key <FK21> { type="CTRL+ALT", //<-- for F21 key symbols[Group1]= [ F21, XF86_Switch_VT_20 ] };
</part of file>
That is it - now your volume keys are assigned. But they do not change the volume yet. To do that go to Control Center-->Regional&Accessibility-->Input Actions and add new group(name it as you like). Add new action, set Action Type to "Keyboard Shortcut -> DCOP Call(simple)". In a "Keyboard Shortcut" press the box and press Vol- button on your keyboard. In "Dcop Call Settings" set(case sensetive):
- Remote application: kmix
- Remote object: Mixer0
- Called function: decreaseVolume
- Arguments:0
Then press try. And your volume should go down. Press Apply button
Add the same action for your Vol+ button. except change "decreaseVolume" to "increaseVolume".
That's it now your volume keys shoud work. Hit/Tip: To check keycodes use type "xev" in terminal. Pressing button should give you output with keycode.
Nomail 08:40, 14 June 2008 (EDT)