Getting special keys to work

John Hupp lubuntu at prpcompany.com
Wed Apr 30 19:30:09 UTC 2014


I spoke too soon.  All the programs (rfkill, pm-suspend, pm-hibernate) 
must run as root, and nothing I have tried so far has allowed these keys 
to work as I intend.

I created /home/<user>/.config/openbox/toggle-wifi.sh with this content:

#!/bin/bash

if [ $(rfkill list wifi | grep "Soft blocked: yes" | wc -l) -eq 1 ] ; then
     rfkill unblock wifi
     zenity --info --text "Enabled wireless"
else
     rfkill block wifi
     zenity --info --text "Disabled wireless"
fi

And then:

chown root:root toggle-wifi.sh
chmod 4755 toggle-wifi.sh

I also tried inserting 'sudo command' in front of the rfkill commands in 
toggle-wifi.sh, and I tried 'sudo command toggle-wifi.sh' in the 
lubuntu-rc.xml command statement.

On 4/30/2014 1:09 PM, John Hupp wrote:
> After thinking about it, I used an Upstart job to do what the 
> MultiMediaKeys article instructed to be done with bootmisc.sh or 
> rc.local.
>
> Though I'm no better than an Upstart hacker, especially with regard to 
> choice of a 'start on' event, I created 
> /etc/init/kb-keys-customize.conf with this content:
>
> # kb-keys-customize
> #
> # Map key codes to the scan codes emitted by Fn-F4, Fn-F5, Fn-F12
>
> description "Map Fn-F4, Fn-F5 and Fn-F12 kernel scancodes to kernel 
> keycodes"
> author "John Hupp"
>
> start on local-filesystems
>
> script
>     setkeycodes e017 128 e016 129 e018 130
> end script
>
> After rebooting, I found that 'xev -event keyboard' now reports that 
> Fn-F4, Fn-F5 and Fn-F12 are mapped to X keysyms Cancel, Redo and 
> SunProps, so I expect that I should be able to bind those keys in 
> lubuntu-rc.xml to Andre's suggested commands.
>
> On 4/29/2014 6:08 PM, John Hupp wrote:
>> The next problem is that Fn-F4 and Fn-F5 don't generate any keysyms, 
>> so they can't be bound to the commands suggested by Andre.
>>
>> To deal with that, I've been following the In-Depth Instructions in 
>> https://help.ubuntu.com/community/MultimediaKeys, and I have 
>> identified the scancodes and picked a couple unassigned kernel 
>> keycodes, but that article is old, and writing setkeycodes commands 
>> into /etc/init.d/bootmisc.sh or /etc/rc.local seems deprecated (those 
>> files don't exist).
>>
>> Is there more current documentation for this task?  Is ibus-setup 
>> supposed to handle this job somehow under Lubuntu 14.04?  Or is there 
>> another place preferred for auto-starting setkeycodes commands?
>>
>> On 4/29/2014 3:54 PM, John Hupp wrote:
>>> Thanks, Andre, for all of those great tips.
>>>
>>> I've been looking at the Exec lines in several versions of 
>>> ~/.config/autostart/LXRandR-autostart.desktop (created when one 
>>> clicks Save in LXRandR) and thinking about how I could create 
>>> something that would cause Fn-F7 to toggle through the LVDS, VGA and 
>>> S-Video outputs, but your approach -- simply binding to LXRandR -- 
>>> is a MUCH better idea!
>>>
>>> And if I wanted to add the ability to extend the desktop instead of 
>>> mirroring it, I could install arandr and just bind to that instead.
>>>
>>> On 4/29/2014 3:18 PM, Andre Rodovalho wrote:
>>>> I tested here, and it works: 
>>>> http://askubuntu.com/questions/181390/what-is-the-command-for-sleep-hibernate
>>>>
>>>> |*pm-suspend* and**||*pm-hibernate*|
>>>>
>>>>
>>>> 2014-04-29 16:13 GMT-03:00 Andre Rodovalho 
>>>> <andre.rodovalho at gmail.com <mailto:andre.rodovalho at gmail.com>>:
>>>>
>>>>     On lubuntu-rc.xml I do:
>>>>
>>>>     <keybind key="XF86Display">
>>>>           <action name="Execute">
>>>>     <command>lxrandr</command>
>>>>           </action>
>>>>         </keybind>
>>>>
>>>>     *lxrandr* deals with additional monitors, you just enable them
>>>>     an apply.
>>>>
>>>>     I'm not sure what commands you can execute to sleep and
>>>>     hibernate, but you can control radio with *rfkill*. I'm not
>>>>     sure if those commands really require root access, but on that
>>>>     case you can do a: *gksu command*
>>>>     *
>>>>     *
>>>>     Hope that helps! To test the shortcuts without restarting all
>>>>     the system you can restart only openbox: *openbox --restart*
>>>>
>>>>
>>>>     2014-04-28 22:03 GMT-03:00 Israel <israeldahl at gmail.com
>>>>     <mailto:israeldahl at gmail.com>>:
>>>>
>>>>         On 04/28/2014 07:48 PM, John Hupp wrote:
>>>>         > I was trying to watch Netflix on a laptop (with Lubuntu)
>>>>         connected to
>>>>         > a TV by S-Video connection.  I found out that Fn-F7 was
>>>>         not working to
>>>>         > select the external VGA or S-Video displays.
>>>>         >
>>>>         > Subsequently I found that Fn-F4 does not put the laptop
>>>>         to sleep, and
>>>>         > Fn-F5 does not toggle the WiFi radio on/off.  (The other
>>>>         common
>>>>         > special keys work OK.)
>>>>         >
>>>>         > So I'm trying to get those keys working that way via
>>>>         entries in
>>>>         > lubuntu-rc.xml.
>>>>         >
>>>>         > With 'xev -event keyboard' I found out that Fn-F7
>>>>         produces the keysym
>>>>         > 'XF86Display' but I still need to know what command to
>>>>         bind that to.
>>>>         > So that's my first question.
>>>>         >
>>>>         > Fn-F4 and Fn-F5 does not produce any keysym's, so I'm
>>>>         currently at a
>>>>         > loss for how to proceed next with those.
>>>>         >
>>>>         >
>>>>         Hi,
>>>>
>>>>         you can use arandr to make a shell script to switch the
>>>>         display to a
>>>>         certain mode.  Plug in the monitor and use arandr to make a
>>>>         setup you
>>>>         want, and save that.  Then open your config file for
>>>>         openbox and set
>>>>         the keyboard shortcut for your display key (i.e. XF86Display)
>>>>         to execute the
>>>>         <command>
>>>>         /bin/bash /path/to/scriptname.sh
>>>>         </command>
>>>>         while scriptname.sh is whatever you saved the setup as with
>>>>         the correct
>>>>         path.
>>>>
>>>>         arandr is a front-end for xrandr.  So the script is
>>>>         actually using
>>>>         xrandr to modify your display settings.
>>>>
>>>>         I hope this helps.
>>>>
>>>>         --
>>>>         Regards
>>>>
>>>>
>>>>         --
>>>>         Lubuntu-users mailing list
>>>>         Lubuntu-users at lists.ubuntu.com
>>>>         <mailto:Lubuntu-users at lists.ubuntu.com>
>>>>         Modify settings or unsubscribe at:
>>>>         https://lists.ubuntu.com/mailman/listinfo/lubuntu-users
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/lubuntu-users/attachments/20140430/f02c4cc9/attachment-0001.html>


More information about the Lubuntu-users mailing list