
On Sun, Oct 26, 2008 at 3:05 PM, IL'dar AKHmetgaleev
Greetings
How I can execute Code: xsetwacom set stylus Screen_No $No when I'm switching screen with hotkeys: Code: -- -- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3 -- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3 -- [((m .|. modMask, key), screenWorkspace sc >>= flip whenJust (windows . f)) | (key, sc) <- zip [xK_q, xK_w, xK_e] [0..] , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
For example I need to spawn "xsetwacom set stylus Screen_No 0" when I'm switching to screen 1 by mod-q
How I can do this?
A rough stab at a solution: , ((modMask, xK_q), spawn "xsetwacom set stylus Screen_No 0"
(screenWorkspace sc >>= flip whenJust (windows ○ f)) 1)))
This untested fragment obviously isn't exactly what you want, but it shows a few pieces of the puzzle: the use of 'spawn' to run your shell command, the use of >> inside a X () action to do multiple things on the same key press, and it hints at how to deconstruct the list comprehension and do the workspace-switching manually*. However, I leave it to another to tell you how to run spawn only if switching to workspace 1 instead of running it on every workspace switch. * I incidentally have long thought that that list comprehension was cleverness for the sake of being clever, and makes it difficult for people to modify or even understand it. -- gwern