{"action":"created","issue":{"url":"https://api.github.com/repos/awesomeWM/awesome/issues/77","labels_url":"https://api.github.com/repos/awesomeWM/awesome/issues/77/labels{/name}","comments_url":"https://api.github.com/repos/awesomeWM/awesome/issues/77/comments","events_url":"https://api.github.com/repos/awesomeWM/awesome/issues/77/events","html_url":"https://github.com/awesomeWM/awesome/issues/77","id":54391165,"number":77,"title":"Fake input cannot bypass Awesome keys (shortcuts)","user":{"login":"michaelbeaumont","id":2266568,"avatar_url":"https://avatars.githubusercontent.com/u/2266568?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelbeaumont","html_url":"https://github.com/michaelbeaumont","followers_url":"https://api.github.com/users/michaelbeaumont/followers","following_url":"https://api.github.com/users/michaelbeaumont/following{/other_user}","gists_url":"https://api.github.com/users/michaelbeaumont/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelbeaumont/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelbeaumont/subscriptions","organizations_url":"https://api.github.com/users/michaelbeaumont/orgs","repos_url":"https://api.github.com/users/michaelbeaumont/repos","events_url":"https://api.github.com/users/michaelbeaumont/events{/privacy}","received_events_url":"https://api.github.com/users/michaelbeaumont/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/awesomeWM/awesome/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/awesomeWM/awesome/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":17,"created_at":"2015-01-14T23:14:35Z","updated_at":"2015-10-27T16:58:27Z","closed_at":null,"body":"When using fake inputs with with or without keygrabbers, Awesome always intercept the input. While this is the expected behavior, it doesn't cover many use cases. Awesome need to support sending raw inputs to clients without intercepting them. The workaround when using keygrabber is to stop and restart it between fake inputs, but there is no equivalent hack for `capi.key`.\r\n\r\n**Original:**\r\nIn the docs for `awful.keygrabber`, it's mentioned that a keygrabber can return `false` to pass the keypress to the next grabber on the stack. As far as I can tell, although a stack is maintained in `awful.keygrabber`, `keygrabber.c` simply passes the keys to the last run grabber and a keygrabber will swallow a keypress no matter what.\r\n\r\nIt would make keygrabbers much more flexible if they behaved as described."},"comment":{"url":"https://api.github.com/repos/awesomeWM/awesome/issues/comments/151568744","html_url":"https://github.com/awesomeWM/awesome/issues/77#issuecomment-151568744","issue_url":"https://api.github.com/repos/awesomeWM/awesome/issues/77","id":151568744,"user":{"login":"psychon","id":89482,"avatar_url":"https://avatars.githubusercontent.com/u/89482?v=3","gravatar_id":"","url":"https://api.github.com/users/psychon","html_url":"https://github.com/psychon","followers_url":"https://api.github.com/users/psychon/followers","following_url":"https://api.github.com/users/psychon/following{/other_user}","gists_url":"https://api.github.com/users/psychon/gists{/gist_id}","starred_url":"https://api.github.com/users/psychon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/psychon/subscriptions","organizations_url":"https://api.github.com/users/psychon/orgs","repos_url":"https://api.github.com/users/psychon/repos","events_url":"https://api.github.com/users/psychon/events{/privacy}","received_events_url":"https://api.github.com/users/psychon/received_events","type":"User","site_admin":false},"created_at":"2015-10-27T16:58:27Z","updated_at":"2015-10-27T16:58:27Z","body":"Hrm. `xcb_grab_server()`, then ungrabbing all keys on the target window (and the root window?), doing the fake input, grabbing the keys again and then `xcb_ungrab_server()` might work. However, you better don't count the number of requests that this generates..."}}