[xmonad] How to find the XF86Launch1-Key reference?
Thomas Friedrich
info at suud.de
Fri Sep 25 16:28:06 EDT 2009
Hi,
I use a Lenovo T61 with Arch Linux and Xmonad. The Laptop has
this blue "ThinkVantage" Button in the upper left corner. I'd like to
use this key for toggling my CPU-Frequency. I've written a little
function in Haskell being inspired by a blog entry by Don Stewart
(http://cgi.cse.unsw.edu.au/~dons/blog/2007/03).
A) The reference to the key
The function works as it should and now I'd like to bind it in my
xmonad.hs. However, I just cannot figure out how to refer to this
"ThinkVantage"-Button in my xmonad.hs. I had a look at
http://www.haskell.org/haskellwiki/Xmonad/Frequently_asked_questions#What_is_the_xK__value_for_this_key.3F
which tells me to have a look at:
$ xev | sed -ne '/^KeyPress/,/^$/p'
KeyPress event, serial 28, synthetic NO, window 0x2c00001,
root 0x102, subw 0x0, time 31601784, (329,154), root:(855,155),
state 0x0, keycode 156 (keysym 0x1008ff41, XF86Launch1), same_screen
YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
so I know now the keysym and I know its bind to XF86Launch1. But how do
I find out how I can refer to this key within Xmonad? I looked into the
file
/usr/include/X11/keysymdef.h
and searched for "ff41", "XF", "launch", etc. but no luck. Does anyone
know, where to look for the right place?
B) Nicer binding
At the moment, I have the following: A file CpuToggle.hs, which is
--- --- ---
module CpuToggle (toggle) where
import Text.Printf
import System.Process
toggle = do
s <- readProcess "cpufreq-info" [] []
case (clean s) of
True -> do
system "sudo cpufreq-set -c 0 -f 2500000"
system "sudo cpufreq-set -c 1 -f 2500000"
printf "CPU is toggled up.\n"
False -> do
system "sudo cpufreq-set -c 0 -f 1200000"
system "sudo cpufreq-set -c 1 -f 1200000"
printf "CPU is toggled down.\n"
clean :: String -> Bool
clean cs =
let a = read $ (!! 4) . words . (!! 11) . lines $ cs
b = read $ (!! 4) . words . (!! 21) . lines $ cs
in (a < 2.5 || b < 2.5)
--- --- ---
and a file toggle.hs, which is:
--- --- ---
import CpuToggle
main = toggle
--- --- ---
the latter I compile and put something like
, ((modm, xK_F11), spawn "/home/thomas/toggle")
into my xmonad.hs. Works just fine!! Now, well, I just *really* would
like to write someting like
import CupToggle
...
, ((modm, xK_F11), toggle)
instead. How would I need to change the toggle-function in the
CpuToggle-Module in order to achieve this?
Thanks so much!!
Cheers,
Thomas
More information about the xmonad
mailing list