Getting special keys to work

John Hupp lubuntu at prpcompany.com
Wed Apr 30 20:11:27 UTC 2014


One problem solved: If I use "nmcli nm wifi on" and "nmcli nm wifi off" 
instead of the rfkill commands, this toggles the wifi radio without root 
permissions.

Now if I could find some suspend/standby and hibernate commands that 
don't require root permission, this job would be done!

On 4/30/2014 3:30 PM, John Hupp wrote:
> 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/329392c5/attachment.html>


More information about the Lubuntu-users mailing list