{"action":"opened","issue":{"url":"https://api.github.com/repos/seanyeh/vibreoffice/issues/27","labels_url":"https://api.github.com/repos/seanyeh/vibreoffice/issues/27/labels{/name}","comments_url":"https://api.github.com/repos/seanyeh/vibreoffice/issues/27/comments","events_url":"https://api.github.com/repos/seanyeh/vibreoffice/issues/27/events","html_url":"https://github.com/seanyeh/vibreoffice/issues/27","id":108923896,"number":27,"title":"Is it possible to rebind commands? (Colemak/Dvorak/etc. support)","user":{"login":"krompus","id":12161878,"avatar_url":"https://avatars.githubusercontent.com/u/12161878?v=3","gravatar_id":"","url":"https://api.github.com/users/krompus","html_url":"https://github.com/krompus","followers_url":"https://api.github.com/users/krompus/followers","following_url":"https://api.github.com/users/krompus/following{/other_user}","gists_url":"https://api.github.com/users/krompus/gists{/gist_id}","starred_url":"https://api.github.com/users/krompus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krompus/subscriptions","organizations_url":"https://api.github.com/users/krompus/orgs","repos_url":"https://api.github.com/users/krompus/repos","events_url":"https://api.github.com/users/krompus/events{/privacy}","received_events_url":"https://api.github.com/users/krompus/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-09-29T18:01:12Z","updated_at":"2015-09-29T18:01:12Z","closed_at":null,"body":"I am a Colemak touch typist (http://colemak.com/), and I have gotten used to lightly modified keybinds. It would be nice to be able to rebind some of the keys in Vibreoffice, and use my non-standard muscle memory more fluidly.\r\n\r\nIs this already possible? A config file, such as ~/.vibreofficerc would be great!\r\n\r\nIf it's not possible yet, there's no rush, and if this functionality is low priority or undesired, I would understand.\r\n\r\nHere's an excerpt from my .vimrc to demonstrate what I mean (it looks much more complicated than it is in practice):\r\n\r\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\r\n\" Colemak-Vim Mappings\r\n\"\r\n\" Vi's traditional Qwerty-centric `H` `J` `K` `L` \"arrow\" keybinds are swapped for the Colemak\r\n\" homerow equivalent `H` `N` `E` `I`. As little else as possible is changed. As such, `J` `K` `L` are\r\n\" free to use and `N` `E` `I` need new keys.\r\n\"\r\n\" Therefore, we shall assign:\r\n\"\r\n\" - `k`/`K` as the new `n`/`N`.\r\n\" - `s`/`S` as the new `i`/`I` [\"in`S`ert\"].\r\n\" - `j`/`J` as the new `e/E` [\"`J`ump\" to end of word].\r\n\" - `l`/`L` to skip to the beginning and end of lines. More intuitive than `^` and `$`.\r\n\" - `Ctrl-l` to join lines, making `l`/`L` the veritable \"`L`ine\" key.\r\n\" - `r` to replace i as the \"inne`R`\" modifier [e.g. \"`diw`\" becomes \"`drw`\"].\r\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\r\n\" HNEI arrows. Swap 'gn'/'ge' and 'n'/'e'.\r\nnoremap n gj|noremap e gk|noremap i l|noremap gn j|noremap ge k\r\n\" In(s)ert. (The default s/S is synonymous with cl/cc and is not very useful.)\r\nnoremap s i|noremap S I\r\n\" Last search.\r\nnoremap k n|noremap K N\r\n\" Beginning of line / End of line / Join Lines.\r\nnoremap l ^|noremap L $|noremap <C-l> J\r\n\" r = inneR text objects.\r\nonoremap r i\r\n\" 'Jump' to end of word\r\nnoremap j e|noremap J E"}}