{"action":"created","issue":{"url":"https://api.github.com/repos/awesomeWM/awesome/issues/2307","repository_url":"https://api.github.com/repos/awesomeWM/awesome","labels_url":"https://api.github.com/repos/awesomeWM/awesome/issues/2307/labels{/name}","comments_url":"https://api.github.com/repos/awesomeWM/awesome/issues/2307/comments","events_url":"https://api.github.com/repos/awesomeWM/awesome/issues/2307/events","html_url":"https://github.com/awesomeWM/awesome/pull/2307","id":343424134,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAzMDY3ODMy","number":2307,"title":"Keyboard and keygrabbing handling overhaul","user":{"login":"Elv13","id":340384,"node_id":"MDQ6VXNlcjM0MDM4NA==","avatar_url":"https://avatars0.githubusercontent.com/u/340384?v=4","gravatar_id":"","url":"https://api.github.com/users/Elv13","html_url":"https://github.com/Elv13","followers_url":"https://api.github.com/users/Elv13/followers","following_url":"https://api.github.com/users/Elv13/following{/other_user}","gists_url":"https://api.github.com/users/Elv13/gists{/gist_id}","starred_url":"https://api.github.com/users/Elv13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Elv13/subscriptions","organizations_url":"https://api.github.com/users/Elv13/orgs","repos_url":"https://api.github.com/users/Elv13/repos","events_url":"https://api.github.com/users/Elv13/events{/privacy}","received_events_url":"https://api.github.com/users/Elv13/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":13,"created_at":"2018-07-22T17:34:09Z","updated_at":"2018-08-06T14:24:49Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/awesomeWM/awesome/pulls/2307","html_url":"https://github.com/awesomeWM/awesome/pull/2307","diff_url":"https://github.com/awesomeWM/awesome/pull/2307.diff","patch_url":"https://github.com/awesomeWM/awesome/pull/2307.patch"},"body":"At last...\r\n\r\nSo since yesterday I took a break from my hiking vacations to finish this pull request. I previously wanted submit it after the popup and conditional ones, but I am too lazy to fix them, so here is even more code!\r\n\r\nJoke aside, this is now quite mature compared to the other 2, so while I am sure @psychon will do his usual magic and find ways to make it better, it's not that bad already.\r\n\r\nFirst of all, this squash all the shims commit I have from all the branches into one because rebasing them is now madness. That commit can be safely ignored since currently nothing uses most of that. In the event something (like any of my other PR) starts using them, then any bugs can be fixed there, Yes it will cause the covarage to go down, I don't think it's an issue here. Plus, it makes my other PR easier to merge since they will be smaller.\r\n\r\nThe second thing I want to note is that adding and removing root keybindings at runtime sucks and this pull request does not fix it. At some point it will require a better system but for now the hack is enough. It's ugly, yes. It's also fragile. However fixing that is more of an Awesome5 project than v4.3.\r\n\r\nFinally, @actionless suggestion to cram in auto_repeat handling, pass-through events and other goodness are not part of the PR. Making it work wasn't trivial and this is already quite big even by my standards.\r\n\r\nAs usual, most of the PR lines of code is tests and documentation. The actual \"new code\" isn't that big.\r\n\r\nFinally, I added some \"doc examples\" CMakeLists.txt things I had on my stash to fix the regression where newlines were no longer working since luacheck said it was a hack (18 months ago).\r\n\r\nIn theory I think I didn't break the API. Please prove me wrong if it is the case. One very minor change is that `capi.keygraber.run` and `awful.keygrabber.run` are now the same function. It fixes a bug where `awful.prompt` would stall if another keygrabber started when it was in input mode."},"comment":{"url":"https://api.github.com/repos/awesomeWM/awesome/issues/comments/410726046","html_url":"https://github.com/awesomeWM/awesome/pull/2307#issuecomment-410726046","issue_url":"https://api.github.com/repos/awesomeWM/awesome/issues/2307","id":410726046,"node_id":"MDEyOklzc3VlQ29tbWVudDQxMDcyNjA0Ng==","user":{"login":"Elv13","id":340384,"node_id":"MDQ6VXNlcjM0MDM4NA==","avatar_url":"https://avatars0.githubusercontent.com/u/340384?v=4","gravatar_id":"","url":"https://api.github.com/users/Elv13","html_url":"https://github.com/Elv13","followers_url":"https://api.github.com/users/Elv13/followers","following_url":"https://api.github.com/users/Elv13/following{/other_user}","gists_url":"https://api.github.com/users/Elv13/gists{/gist_id}","starred_url":"https://api.github.com/users/Elv13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Elv13/subscriptions","organizations_url":"https://api.github.com/users/Elv13/orgs","repos_url":"https://api.github.com/users/Elv13/repos","events_url":"https://api.github.com/users/Elv13/events{/privacy}","received_events_url":"https://api.github.com/users/Elv13/received_events","type":"User","site_admin":false},"created_at":"2018-08-06T14:24:49Z","updated_at":"2018-08-06T14:24:49Z","author_association":"MEMBER","body":">  If you are pushing for something and I just say \"no\", then that leaves everyone unhappy.\r\n\r\nI know you are not a fan of the global keybindings in many place change, but I still think in the long run it allows better encapsulation and is generally necessary. Imagine if for each WebExtension Firefox/Chrome/IE has you would need to modify `userChrome.css`/`firefox.js`. However I agree with you the current `root.keys()` solution is not elegant and a proper redesign of this aspect would go a long way to find a better middle ground about how we handle the various keybindings in clients/root/prompt/keygrabber. I see your concerns about this aspect as hitting a limitation of our current design rather than something conceptually broken. Both Qt/KDE QAction, QtQuick.Action and GAction/GtkAction have this abstraction to allow a single action to be enabled/disabled and used in various contexts.\r\n\r\nThanks for accepting this PR anyway.\r\n\r\n@blueyed  Do you have some time to fix the doc typos and improve the wording on the final version? It changed a bit since you last went over it."}}
{"actor":{"display_login":"Elv13"}}