Keybindings which affect windows ?

Philippe Brochard pbrochard at common-lisp.net
Tue Apr 23 20:43:25 UTC 2013


Akshay Srinivasan writes:

> At Mon, 22 Apr 2013 21:23:31 +0200,
> Philippe Brochard wrote:
>> 
>> Akshay Srinivasan writes:
>> 
>> > Hello,
>> >
>> Hi,
>> 
>> >    Is there anyway I can affect windows with keybindings ? Right now it looks like
>> > this sort of capability is only available to mouse-bindings. 
>> >
>> You're right, this capability is only for mouse actually.
>> There is a need for other keybindings (in main and second mode), so I've
>> added them in the commit 4cd4754.
>> 
>> Please, test: Control+Shift+Left/Right to move over next/previous
>> brother and take the current window in it.
>> Control+Shift+Alt+Left/Right/Up/Down: same thing but spatially.
> The non-spatial keybinding didn't work, but (more importantly :) the spatial
> one did. Thank you! 
>
Are you sure the non-spatial keybinding doesn't work? You have to
release all keys before starting it and there must be a focused window.
Please, can you investigate?

>> This must work in both main and second mode.
>> 
>> >Would it work if I call something like:
>> > (define-main-mouse ("Left" :shift :mod-1) 'move-window-to-left-brother)
>> >
>> > If the mouse-keybindings are handled by a thread that handles mouse events in X, then this
>> > will not work; is there some way out ? (Sorry for not trying the code before posting).
>> >
>> No, this can't work because key binding and mouse binding are stored in
>> different hash table. The mechanism for both is not nearly the
>> same. (And more there is different hash table for each mode).
>> BTW clfswm is not threaded there is only one single loop.
> That's interesting, I assumed it was multithreaded. So does it wait for X events
> or poll for them ?
>
It listen for event(1) and proceed(2) them when there is some in the event
queue. So clfswm is sequential and need only one thread/loop.
But there is some optimizing functions to compress mouse motion events
for example.

I have had a look at XCB(3) but I haven't gone in this direction for
now. 

Philippe

(1) http://common-lisp.net/project/cmucl/doc/clx/12_4_Managing_the_Event_Queue.html
(2) http://common-lisp.net/project/cmucl/doc/clx/12_3_Processing_Events.html
(3) http://xcb.freedesktop.org/



More information about the clfswm-devel mailing list