{"action":"opened","issue":{"url":"https://api.github.com/repos/algernon/Akela/issues/23","repository_url":"https://api.github.com/repos/algernon/Akela","labels_url":"https://api.github.com/repos/algernon/Akela/issues/23/labels{/name}","comments_url":"https://api.github.com/repos/algernon/Akela/issues/23/comments","events_url":"https://api.github.com/repos/algernon/Akela/issues/23/events","html_url":"https://github.com/algernon/Akela/issues/23","id":185934647,"number":23,"title":"OneShot: Add a way to easily cancel OSM/OSL","user":{"login":"algernon","id":17243,"avatar_url":"https://avatars.githubusercontent.com/u/17243?v=3","gravatar_id":"","url":"https://api.github.com/users/algernon","html_url":"https://github.com/algernon","followers_url":"https://api.github.com/users/algernon/followers","following_url":"https://api.github.com/users/algernon/following{/other_user}","gists_url":"https://api.github.com/users/algernon/gists{/gist_id}","starred_url":"https://api.github.com/users/algernon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/algernon/subscriptions","organizations_url":"https://api.github.com/users/algernon/orgs","repos_url":"https://api.github.com/users/algernon/repos","events_url":"https://api.github.com/users/algernon/events{/privacy}","received_events_url":"https://api.github.com/users/algernon/received_events","type":"User","site_admin":false},"labels":[{"id":463784330,"url":"https://api.github.com/repos/algernon/Akela/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":{"login":"algernon","id":17243,"avatar_url":"https://avatars.githubusercontent.com/u/17243?v=3","gravatar_id":"","url":"https://api.github.com/users/algernon","html_url":"https://github.com/algernon","followers_url":"https://api.github.com/users/algernon/followers","following_url":"https://api.github.com/users/algernon/following{/other_user}","gists_url":"https://api.github.com/users/algernon/gists{/gist_id}","starred_url":"https://api.github.com/users/algernon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/algernon/subscriptions","organizations_url":"https://api.github.com/users/algernon/orgs","repos_url":"https://api.github.com/users/algernon/repos","events_url":"https://api.github.com/users/algernon/events{/privacy}","received_events_url":"https://api.github.com/users/algernon/received_events","type":"User","site_admin":false},"assignees":[{"login":"algernon","id":17243,"avatar_url":"https://avatars.githubusercontent.com/u/17243?v=3","gravatar_id":"","url":"https://api.github.com/users/algernon","html_url":"https://github.com/algernon","followers_url":"https://api.github.com/users/algernon/followers","following_url":"https://api.github.com/users/algernon/following{/other_user}","gists_url":"https://api.github.com/users/algernon/gists{/gist_id}","starred_url":"https://api.github.com/users/algernon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/algernon/subscriptions","organizations_url":"https://api.github.com/users/algernon/orgs","repos_url":"https://api.github.com/users/algernon/repos","events_url":"https://api.github.com/users/algernon/events{/privacy}","received_events_url":"https://api.github.com/users/algernon/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/algernon/Akela/milestones/3","html_url":"https://github.com/algernon/Akela/milestones/Tap-dance%20and%20the%20rest","labels_url":"https://api.github.com/repos/algernon/Akela/milestones/3/labels","id":2090388,"number":3,"title":"Tap-dance and the rest","description":"All of these shall be implemented as a separate library, outside of the `SysFn` scope.\r\n\r\nReusing the existing code in algernon/arduino-kbd-tap-dance would be great, too.","creator":{"login":"algernon","id":17243,"avatar_url":"https://avatars.githubusercontent.com/u/17243?v=3","gravatar_id":"","url":"https://api.github.com/users/algernon","html_url":"https://github.com/algernon","followers_url":"https://api.github.com/users/algernon/followers","following_url":"https://api.github.com/users/algernon/following{/other_user}","gists_url":"https://api.github.com/users/algernon/gists{/gist_id}","starred_url":"https://api.github.com/users/algernon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/algernon/subscriptions","organizations_url":"https://api.github.com/users/algernon/orgs","repos_url":"https://api.github.com/users/algernon/repos","events_url":"https://api.github.com/users/algernon/events{/privacy}","received_events_url":"https://api.github.com/users/algernon/received_events","type":"User","site_admin":false},"open_issues":3,"closed_issues":3,"state":"open","created_at":"2016-10-24T19:26:05Z","updated_at":"2016-10-28T14:16:49Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2016-10-28T14:16:49Z","updated_at":"2016-10-28T14:16:49Z","closed_at":null,"body":"Sometimes one would want to consume the one-shot modifier/layer, and do their own thing. For example, to enter `Ö`, I'd hit `HUN`, `Shift`, `q` (assuming a Dvorak layout). This in turn taps in `RAlt`, `RShift+'`, `LShift + o`. But for `Ű`, I need `RAlt`, `=`, `LShift + u`.\r\n\r\nThat is, the Shift is needed at different times, so we can't have it active for the whole duration. Unregistering and re-registering it would be a waste, so in this case we should be able to ask the system if shift is active, and if so, uppercase the last part, and cancel OSM early.\r\n\r\nI think this is only needed for OSM, but may be useful for other OneShot stuff too."}}
{"actor":{"display_login":"algernon"}}