{"id":15062945,"url":"https://github.com/csmclaren/loco","last_synced_at":"2025-04-10T10:33:20.963Z","repository":{"id":244432876,"uuid":"815204489","full_name":"csmclaren/loco","owner":"csmclaren","description":"Enter complex key sequences with ease!","archived":false,"fork":false,"pushed_at":"2024-07-18T01:26:18.000Z","size":177,"stargazers_count":14,"open_issues_count":3,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-24T09:21:19.297Z","etag":null,"topics":["emacs","emacs-configuration","emacs-lisp","emacs-mode","keyboard","library"],"latest_commit_sha":null,"homepage":"","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/csmclaren.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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":"2024-06-14T15:22:36.000Z","updated_at":"2024-11-10T01:44:36.000Z","dependencies_parsed_at":"2024-06-26T16:48:27.016Z","dependency_job_id":"050d2951-80c4-4a80-9f12-10d782950ae3","html_url":"https://github.com/csmclaren/loco","commit_stats":null,"previous_names":["csmclaren/loco"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csmclaren%2Floco","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csmclaren%2Floco/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csmclaren%2Floco/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csmclaren%2Floco/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/csmclaren","download_url":"https://codeload.github.com/csmclaren/loco/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248199141,"owners_count":21063641,"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":["emacs","emacs-configuration","emacs-lisp","emacs-mode","keyboard","library"],"created_at":"2024-09-24T23:48:57.778Z","updated_at":"2025-04-10T10:33:20.945Z","avatar_url":"https://github.com/csmclaren.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Loco  🚋\n\nLoco is a library and minor mode to help you enter complex key sequences with ease.\n\n[![MELPA](https://www.melpa.org/packages/loco-badge.svg)](https://www.melpa.org/#/loco) [![MELPA Stable](https://stable.melpa.org/packages/loco-badge.svg)](https://stable.melpa.org/#/loco)\n\n## Introduction\n\nLoco is a [package](https://www.gnu.org/software/emacs/manual/html_node/emacs/Packages.html) for [Emacs](https://www.gnu.org/software/emacs/). Loco lets you type any [key sequence](docs/build/loco.md#keys-key-sequences-and-commands), including those requiring the modifiers \u003ckbd\u003eAlt\u003c/kbd\u003e, \u003ckbd\u003eControl\u003c/kbd\u003e, \u003ckbd\u003eHyper\u003c/kbd\u003e, \u003ckbd\u003eMeta\u003c/kbd\u003e, or \u003ckbd\u003eSuper\u003c/kbd\u003e, without using any physical modifier keys except \u003ckbd\u003eShift\u003c/kbd\u003e. This makes it easy to enter key sequences that are complicated or use hard-to-reach keys.\n\nLoco works by translating key sequences from one form to another. It does not redefine the [standard key bindings](https://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf), nor does it prevent you from [defining your own](https://www.gnu.org/software/emacs/manual/html_node/emacs/Key-Bindings.html). Learn the few rules of Loco and be productive immediately, using the key bindings you already know.\n\nLoco does not preclude the use of physical modifier keys; it integrates well with them. There may even be some key bindings for which you find using physical modifier keys preferable. And it works equally well in the [GUI](https://en.wikipedia.org/wiki/Graphical_user_interface) or the [terminal](https://en.wikipedia.org/wiki/Computer_terminal), working around the [limitations of terminals](docs/build/loco.md#considerations-when-using-a-terminal) that prevent the entry of certain keys, allowing you to move between both easily.\n\nWhen enabled, and using the default configuration, pressing \u003ckbd\u003eS-\\\u003creturn\\\u003e\u003c/kbd\u003e will activate Loco.\n\n\u003e In Emacs, \u003ckbd\u003eS-\\\u003creturn\\\u003e\u003c/kbd\u003e means hold \u003ckbd\u003eShift\u003c/kbd\u003e then press \u003ckbd\u003eReturn\u003c/kbd\u003e.\n\nOnce activated, you can type any key sequence, taking advantage of the following special keys to help you avoid pressing any physical modifier keys:\n\n- \u003ckbd\u003ej\u003c/kbd\u003e to apply the modifier \u003ckbd\u003eControl\u003c/kbd\u003e to the next non‑special key;\n- \u003ckbd\u003ek\u003c/kbd\u003e to apply the modifier \u003ckbd\u003eMeta\u003c/kbd\u003e to the next non‑special key; or\n- \u003ckbd\u003el\u003c/kbd\u003e to open a menu that includes options to:\n  - apply other modifiers (for example, \u003ckbd\u003eAlt\u003c/kbd\u003e, \u003ckbd\u003eHyper\u003c/kbd\u003e, or \u003ckbd\u003eSuper\u003c/kbd\u003e) to the next non‑special key; or\n  - enter the special keys themselves as the literal characters *j*, *k*, or *l*.\n\n### Examples (using the default configuration)\n\n| Typed Key Sequence | Translated Key Sequence | Command       |\n|--------------------|-------------------------|---------------|\n| \u003ckbd\u003ej d\u003c/kbd\u003e     | \u003ckbd\u003eC-d\u003c/kbd\u003e          | `delete-char` |\n| \u003ckbd\u003ek d\u003c/kbd\u003e     | \u003ckbd\u003eM-d\u003c/kbd\u003e          | `kill-word`   |\n| \u003ckbd\u003ej h i\u003c/kbd\u003e   | \u003ckbd\u003eC-h i\u003c/kbd\u003e        | `info`        |\n| \u003ckbd\u003ej x j s\u003c/kbd\u003e | \u003ckbd\u003eC-x C-s\u003c/kbd\u003e      | `save-buffer` |\n\nThis is only a brief overview; see [Usage](docs/build/loco.md#usage) for a detailed explanation.\n\nThe default configuration is not the only way to use Loco. Loco can be [extensively customized](docs/build/loco.md#customization) with just a few lines of code. Many options are possible, including:\n\n- Changing the key bindings used to enable, disable, or activate Loco;\n- Changing the keys used while Loco reads a key sequence;\n- Configuring activation keys that also function as modifiers; and\n- Configuring activation keys that avoid modifiers completely.\n\n## Documentation\n\nThis project includes a user manual which includes information on how to install this package.\n\nThe user manual is available here, in five formats:\n\n- [Markdown](docs/build/loco.md)\n- [HTML](docs/build/loco.html)\n- [HTML Standalone](docs/build/loco-standalone.html)\n- [Texinfo](docs/build/loco.texi)\n- [Info](docs/build/loco.info)\n\n## Author and copyright\n\nLoco was written and copyright in 2024 by Chris McLaren ([@csmclaren](https://www.github.com/csmclaren)).\n\n## License\n\nThis file is part of Loco.\n\nLoco is licensed under the [GNU](https://www.gnu.org) General Public License v3.0. See the [COPYING](COPYING) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsmclaren%2Floco","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcsmclaren%2Floco","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsmclaren%2Floco/lists"}