{"action":"created","issue":{"url":"https://api.github.com/repos/akrasuski1/akrOS/issues/7","labels_url":"https://api.github.com/repos/akrasuski1/akrOS/issues/7/labels{/name}","comments_url":"https://api.github.com/repos/akrasuski1/akrOS/issues/7/comments","events_url":"https://api.github.com/repos/akrasuski1/akrOS/issues/7/events","html_url":"https://github.com/akrasuski1/akrOS/issues/7","id":71363057,"number":7,"title":"Implement window manager.","user":{"login":"akrasuski1","id":5507813,"avatar_url":"https://avatars.githubusercontent.com/u/5507813?v=3","gravatar_id":"","url":"https://api.github.com/users/akrasuski1","html_url":"https://github.com/akrasuski1","followers_url":"https://api.github.com/users/akrasuski1/followers","following_url":"https://api.github.com/users/akrasuski1/following{/other_user}","gists_url":"https://api.github.com/users/akrasuski1/gists{/gist_id}","starred_url":"https://api.github.com/users/akrasuski1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akrasuski1/subscriptions","organizations_url":"https://api.github.com/users/akrasuski1/orgs","repos_url":"https://api.github.com/users/akrasuski1/repos","events_url":"https://api.github.com/users/akrasuski1/events{/privacy}","received_events_url":"https://api.github.com/users/akrasuski1/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-04-27T18:21:23Z","updated_at":"2015-04-27T20:41:06Z","closed_at":null,"body":"This is a bit hard to do. My proposition is that we don't do it as a widget, because it's very close to the OS layer, and as such, it should be ran as child process of main menu.\r\n> Yeah, I thought of a simple interface like that:\r\nAG0 - accept current window and go to next one.\r\nAG9 - cycle vertical split, horizontal split, no split at all at current window.\r\nAG7/8 - decrease/increase split ratio of the current window.\r\nWhen window is accepted, if it was split, the new window go to the end of the to-do queue, otherwise, the window is accepted and no longer needs thought. When no more windows are in queue, accept new window configuration.\r\nThe currently editted window would be somehow marked as selected, I don't know how though yet. Perhaps the background of that window should be made of dots (\".\") instead of spaces?\r\n\r\n-\r\n> I think that at the exact moment you click \"window manager\" option from program selection, the whole screen should turn into one window covering whole terminal. Inside this window there are instructions for window manager (and note on the bottom, saying: ag9 to start. Also ag1 should be able to abort window selection at any time and revert to old configuration). After clicking continue, I don't think any instructions should stay on screen (instructions should warn about that). And then window selection process starts. When you're done (provided you didn't abort), the main menu should show on window 0, and any processes that had previously been on windows that are curently still visible, should be still visible. Those, which had too big window index, go to background (e.g. you had windows 0,1,2, each of which had a process running, then you resize to just two windows, so only 0,1 stay. Process in window 2 goes to background and is reachable only via process manager)."},"comment":{"url":"https://api.github.com/repos/akrasuski1/akrOS/issues/comments/96813792","html_url":"https://github.com/akrasuski1/akrOS/issues/7#issuecomment-96813792","issue_url":"https://api.github.com/repos/akrasuski1/akrOS/issues/7","id":96813792,"user":{"login":"akrasuski1","id":5507813,"avatar_url":"https://avatars.githubusercontent.com/u/5507813?v=3","gravatar_id":"","url":"https://api.github.com/users/akrasuski1","html_url":"https://github.com/akrasuski1","followers_url":"https://api.github.com/users/akrasuski1/followers","following_url":"https://api.github.com/users/akrasuski1/following{/other_user}","gists_url":"https://api.github.com/users/akrasuski1/gists{/gist_id}","starred_url":"https://api.github.com/users/akrasuski1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akrasuski1/subscriptions","organizations_url":"https://api.github.com/users/akrasuski1/orgs","repos_url":"https://api.github.com/users/akrasuski1/repos","events_url":"https://api.github.com/users/akrasuski1/events{/privacy}","received_events_url":"https://api.github.com/users/akrasuski1/received_events","type":"User","site_admin":false},"created_at":"2015-04-27T20:41:06Z","updated_at":"2015-04-27T20:41:06Z","body":"Right now I've added a backbone of the window management system - functions to recursively draw divided windows to screen (btw, got idea for better function name than os_draw_divided_window?)\r\nDoes it look sensible?"}}