{"id":19369008,"url":"https://github.com/darkstego/wakib-keys","last_synced_at":"2025-04-23T15:31:12.876Z","repository":{"id":149807128,"uuid":"128509678","full_name":"darkstego/wakib-keys","owner":"darkstego","description":"Emacs mode that moves to modern keybindings","archived":false,"fork":false,"pushed_at":"2025-01-19T06:42:56.000Z","size":81,"stargazers_count":55,"open_issues_count":3,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T16:53:43.795Z","etag":null,"topics":["convenience","cua","easy","emacs","modern"],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darkstego.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-07T08:19:53.000Z","updated_at":"2025-03-31T03:34:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"a2e7810a-520c-43dc-bfa5-4c5381a851ea","html_url":"https://github.com/darkstego/wakib-keys","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkstego%2Fwakib-keys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkstego%2Fwakib-keys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkstego%2Fwakib-keys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkstego%2Fwakib-keys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darkstego","download_url":"https://codeload.github.com/darkstego/wakib-keys/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250460309,"owners_count":21434238,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["convenience","cua","easy","emacs","modern"],"created_at":"2024-11-10T08:09:29.906Z","updated_at":"2025-04-23T15:31:12.132Z","avatar_url":"https://github.com/darkstego.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch2 align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/2610287/236253542-ab75c56d-0bbc-457a-8587-d5d2c78d0eb3.svg\" height=\"128\"\u003e\u003cbr\u003eWakib Keys\u003c/h2\u003e\n\nEmacs minor mode that provides a modern, efficient and easy\nto learn keybindings. For the full Emacs starter kit that is based\non the concepts found here, please check out [wakib-emacs](https://github.com/darkstego/wakib-emacs).\nIf you like these keybindings checkout the [Wakib project](https://github.com/darkstego/wakib-project) to use these bindings outside of Emacs.\n\n## Changelog\n\n* Move to beginning of line now stops at first Non-Whitespace, press again for beginning of line\n\n## Features\n\n### Proper Prefix Key Remapping\n\nUsing Ctrl+C and Ctrl+X as copy and paste respectively has always been tricky\nin Emacs. CUA mode is fidly and most attempts to replace those keys end up breaking\ndown certain scenarios.\n\nThis mode converts those keys to copy/paste while providing new remapping keys\nthat all behave properly.\n\n* C-c and C-x now implement proper Copy/Paste. Not Emacs CUA.\n* New prefixes C-d and C-e work in all contexts.\n* Pressing C-d shows up as C-d in the minibuffer\n* These prefixes only act as the old key to start the prefix mode. So the vanilla\nEmacs C-c C-c press becomes C-d C-c in this mode.\n\n\n### Easy to learn\n\nThis mode makes it easy to pick up Emacs and start unlocking its potential without having\nto sacrifice its power. The point of this mode it to leverage common shortcuts that\nyou are used to while making it easy to learn Emacs.\n\nOne of the ways this is done is by making individual shortcuts more powerful. So they give\naccess to many features without having to memorize individual keys for each.\nSome keys perform non-repeatable tasks that can be utilized to do more. An example\nis the Ctrl+A key that is typically mapped to Select All. Selecting they entire buffer is\nnot something that occurs often enough in emacs to merit occupying an entire shortcut, also\nit is non-repeatable. In this mode Ctrl+A becomes select region, so on first press it selects\ncurrent line, on next press it selects current block(Paragraph). Press again and you get the Select\nAll. That makes it easy to memorize shortcuts as similar behaviour are grouped together.\n\n## Bindings\n\nThe following images show the general ideas behind the bindings. Please note that some of the bindings only exist through seperate packages available through the starter kit.\n\nCTRL\n-----\n![CTRL-KEYS](https://s15.postimg.cc/9bmeocmqz/Keyboard_CTRL_Layout.png \"wakib-keys ctrl bindings\")\n\nALT\n---\n![ALT-KEYS](https://i.postimg.cc/Fz0qq6DQ/Keyboard-ALT-Layout3.png \"wakib-keys alt bindings\")\n\n\n\nThe tables below show the bindings\nThis is just the start, I hope to expand on it very soon\n(I explicitly mention the shift key so don't get thrown off by letter capitalization)\n\n\n\n### Movement\n\n| Key            | Binding                            |\n| ---            | ---                                |\n| Alt + I/J/K/L  | Inverse T movement by Char         |\n| Alt+Shift+ I/K | Page Up/Down                       |\n| Alt+ U/O       | Back/Forward Word                  |\n| Alt+Shift+ U/O | Beginning/End of Line or Paragraph |\n\n### Editing\n\n| Key         | Binding                     |\n| ---         | ---                         |\n| Alt + E/R   | Delete Word Back/Forward    |\n| Alt+ D/F    | Delete Char Back/Forward    |\n| Alt + Space | Set/Stop Mark for Selection |\n\n\n### CUA\n\n| Key              | Binding               |\n| ---              | ---                   |\n| Ctrl + O         | Open File             |\n| Ctrl + P         | Print                 |\n| Ctrl + F         | Search                |\n| Ctrl + Shift + F | Search Backwards      |\n| Ctrl + W         | Close Buffer          |\n| Ctrl + S         | Save                  |\n| Ctrl + Z         | Undo                  |\n| Ctrl + X         | Cut                   |\n| Ctrl + C         | Copy                  |\n| Ctrl + V         | Paste                 |\n| Ctrl + A         | Select Line/Block/All |\n| Ctrl + Q         | Quit                  |\n\n\n\n### UI\n\n| Key             | Binding            |\n| ---             | ---                |\n| Ctrl + =        | Increase Font Size |\n| Ctrl + -        | Decrease Font Size |\n| Alt + 4         | Split Window Right |\n| Alt + Shift + 4 | Split Window Below |\n| Alt + H         | Switch Window      |\n| Ctrl + B        | Swith to Buffer    |\n| Alt + Shift + 3 | Close Pane         |\n| Alt + 3         | Close Other Panes  |\n\n### Emacs Keys\n\nYes, those have finally moved\n\n| Old Key                          | New Key  |\n| ---                              | ---      |\n| Ctrl + C (prefix only)           | Ctrl + D |\n| Ctrl + X (prefix only)           | Ctrl + E |\n\n\n\n## Installation\n\n\nYou can install wakib-keys from melpa or save the *wakib-keys.el* file\nanywhere in your emacs loadpath then place\n\n```\n(require 'wakib-keys)\n(wakib-keys 1)\n```\nin your init.el file\n\n## Removing Unwanted Shortcuts\n\nIf there is a shortcut you would want to disable it can be achieved by removing it from the `wakib-keys-overriding-map`. \n\nE.g. if you want to remove the \"C-q\" binding just add the following to your init.el after requiring wakib-keys. Replace \"C-q\" with whatever key you wish to remove.\n\n```\n(define-key wakib-keys-overriding-map (kbd \"C-q\") nil)\n```\n\n## Contribution\n\nIf you have any issues, suggestions then please post them on the\nproject's github page. I would like to hear what is working and what\nisn't with these keybindings.\n\n## Other keybingings\n\nOther projects that provide different keybindings for Emacs include\n\nModifier based: [Ergoemacs](https://ergoemacs.github.io/)\nModal: [Xah-Fly-Keys](https://github.com/xahlee/xah-fly-keys)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarkstego%2Fwakib-keys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarkstego%2Fwakib-keys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarkstego%2Fwakib-keys/lists"}