{"action":"created","issue":{"url":"https://api.github.com/repos/eczarny/spectacle/issues/397","labels_url":"https://api.github.com/repos/eczarny/spectacle/issues/397/labels{/name}","comments_url":"https://api.github.com/repos/eczarny/spectacle/issues/397/comments","events_url":"https://api.github.com/repos/eczarny/spectacle/issues/397/events","html_url":"https://github.com/eczarny/spectacle/issues/397","id":82934137,"number":397,"title":"Simplify shortcuts/commands","user":{"login":"ProLoser","id":67395,"avatar_url":"https://avatars.githubusercontent.com/u/67395?v=3","gravatar_id":"","url":"https://api.github.com/users/ProLoser","html_url":"https://github.com/ProLoser","followers_url":"https://api.github.com/users/ProLoser/followers","following_url":"https://api.github.com/users/ProLoser/following{/other_user}","gists_url":"https://api.github.com/users/ProLoser/gists{/gist_id}","starred_url":"https://api.github.com/users/ProLoser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ProLoser/subscriptions","organizations_url":"https://api.github.com/users/ProLoser/orgs","repos_url":"https://api.github.com/users/ProLoser/repos","events_url":"https://api.github.com/users/ProLoser/events{/privacy}","received_events_url":"https://api.github.com/users/ProLoser/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-05-30T22:38:30Z","updated_at":"2015-05-30T22:39:23Z","closed_at":null,"body":"So I've been trying to build out something like this in slate but I'm not very good with algorithms. Here's what I would like to propose as an alternative approach to window management:\r\n\r\nUse the concept of \"squeezing\" windows against the edge of the screen. Then once the window is shrunken down to the desired dimensions, you can move it around. This can theoretically be used to reduce all the shortcuts down to just 5 different shortcuts:\r\n\r\nleft, right, up, down, and reset\r\n\r\nBy cycling through iterations and changing behaviors of these shortcuts based on position of the window, you can simplify the controls and make it ridiculously intuitive.\r\n\r\nConsecutive Reset Presses:  (order can optionally be reversed)\r\n  1. First time: Maximizes a window to full screen\r\n  2. Second time: 'centers' a window (if necessary)\r\n\r\nUsually, to start laying out a window, you reset to fullscreen, then you use the arrows:\r\n\r\nConsecutive Left/Right Presses:  \r\n  1. Squeeze window to 2/3 width\r\n  2. Squeeze window to 1/2 width\r\n  3. Squeeze window to 1/3 width\r\n  4. Move window to next monitor (in respective direction)\r\n\r\nNon-consecutive Left/Right presses:\r\n  1. If the window is 2/3, the window simply retains the 2/3 dimension and is now aligned to the new direction\r\n  2. If the window is 1/2, the window simply retains the 1/2 dimension and is now aligned to the new direction\r\n  3. If the window is 1/3, the window moves into the center column.\r\n  4. If the window is 1/3 and in the center column, the window moves to the new direction\r\n\r\nThe same process is then applied to Up/Down.\r\n\r\nThe point is that you shrink the window down to the vertical/horizontal dimensions you want and then you can move the window around the screen.\r\n\r\nIf you go too far, simply call `reset` and start over. This may seem tedious, but the simplification of the controls (since no one ever remembers more than 4 anyway) and the rarity of resizing windows will make it far more convenient."},"comment":{"url":"https://api.github.com/repos/eczarny/spectacle/issues/comments/107097339","html_url":"https://github.com/eczarny/spectacle/issues/397#issuecomment-107097339","issue_url":"https://api.github.com/repos/eczarny/spectacle/issues/397","id":107097339,"user":{"login":"ProLoser","id":67395,"avatar_url":"https://avatars.githubusercontent.com/u/67395?v=3","gravatar_id":"","url":"https://api.github.com/users/ProLoser","html_url":"https://github.com/ProLoser","followers_url":"https://api.github.com/users/ProLoser/followers","following_url":"https://api.github.com/users/ProLoser/following{/other_user}","gists_url":"https://api.github.com/users/ProLoser/gists{/gist_id}","starred_url":"https://api.github.com/users/ProLoser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ProLoser/subscriptions","organizations_url":"https://api.github.com/users/ProLoser/orgs","repos_url":"https://api.github.com/users/ProLoser/repos","events_url":"https://api.github.com/users/ProLoser/events{/privacy}","received_events_url":"https://api.github.com/users/ProLoser/received_events","type":"User","site_admin":false},"created_at":"2015-05-30T22:39:23Z","updated_at":"2015-05-30T22:39:23Z","body":"I can create a gif or some sketches to illustrate this desired behavior. I was also looking into adding an option to enable 4 column/row mode or simply detect large high-resolution monitors and enable it on them automatically."}}