Getting special keys to work [MOSTLY SOLVED]
John Hupp
lubuntu at prpcompany.com
Wed Apr 30 23:50:09 UTC 2014
See http://ubuntuforums.org/showthread.php?t=813387&page=6 #57 for
dbus-send commands that accomplish most of what I wanted.
Restart:
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit
/org/freedesktop/ConsoleKit/Manager
org.freedesktop.ConsoleKit.Manager.Restart
Shutdown:
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit
/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Suspend:
dbus-send --print-reply --system --dest=org.freedesktop.UPower
/org/freedesktop/UPower org.freedesktop.UPower.Suspend
Hibernate does not work, but it turns out that it does not work in the
Lubuntu logout menu either. See bug
https://bugs.launchpad.net/ubuntu/+source/lxsession/+bug/1300798. But if
"sudo pm-hibernate" works, then you can also make Hibernate work from
the logout menu in accord with the given workaround:
Create the file
/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
The file must have the following content:
[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes
There is also a dbus-send command which would be nice for a keyboard
shortcut, but even after creating the above file it yields a "not
authorized" error for reasons I don't understand. The dbus-send command:
dbus-send --print-reply --system --dest=org.freedesktop.UPower
/org/freedesktop/UPower org.freedesktop.UPower.Hibernate
On 4/30/2014 4:11 PM, John Hupp wrote:
> 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
>>
>> 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).
>>>>
>>>> On 4/29/2014 3:54 PM, John Hupp wrote:
>>>>> 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:
>>>>>>
>>>>>> 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.
>>>>>>
>>>>>> 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.
>>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/lubuntu-users/attachments/20140430/8e8e69a5/attachment-0001.html>
More information about the Lubuntu-users
mailing list