{"id":17687857,"url":"https://github.com/mogenson/ctrl2esc","last_synced_at":"2025-05-13T00:44:30.470Z","repository":{"id":93827532,"uuid":"173231997","full_name":"mogenson/ctrl2esc","owner":"mogenson","description":"Like caps2esc, but for Chrome OS","archived":false,"fork":false,"pushed_at":"2023-11-27T01:29:26.000Z","size":10,"stargazers_count":16,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-01T05:11:52.921Z","etag":null,"topics":["chrome","chrome-extension","chrome-os","extension","keyboard"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mogenson.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":"2019-03-01T03:58:10.000Z","updated_at":"2024-12-20T23:18:27.000Z","dependencies_parsed_at":"2024-10-24T13:56:51.854Z","dependency_job_id":"fe672a9c-dc8d-467a-b82e-ace7da9cb9ec","html_url":"https://github.com/mogenson/ctrl2esc","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/mogenson%2Fctrl2esc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogenson%2Fctrl2esc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogenson%2Fctrl2esc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogenson%2Fctrl2esc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mogenson","download_url":"https://codeload.github.com/mogenson/ctrl2esc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253850875,"owners_count":21973671,"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":["chrome","chrome-extension","chrome-os","extension","keyboard"],"created_at":"2024-10-24T11:23:23.877Z","updated_at":"2025-05-13T00:44:30.441Z","avatar_url":"https://github.com/mogenson.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ctrl2esc\n\nLike [caps2esc](https://github.com/oblitum/caps2esc), but for Chrome OS.\n\n## Description\n\nIt is my factual opinion that the best keyboard mapping is to have the\n\u003ckbd\u003eSearch\u003c/kbd\u003e key (\u003ckbd\u003eCaps\u003c/kbd\u003e on a normal keyboard) send an\n\u003ckbd\u003eEsc\u003c/kbd\u003e key event when pressed by itself and a \u003ckbd\u003eCtrl\u003c/kbd\u003e key event\nwhen used a modifier with another key. Try this out when using Vim or Tmux and\nthank me later.\n\nThe `caps2esc` utility for Linux does this perfectly. `ctrl2esc` is my attempt\nto mimic this behavior on Chrome OS. It creates an \u003ckbd\u003eEsc\u003c/kbd\u003e key event\nwhen the \u003ckbd\u003eCtrl\u003c/kbd\u003e key is pressed by itself and otherwise leaves things\nalone. This works best when mapping the \u003ckbd\u003e🔍\u003c/kbd\u003e key and \u003ckbd\u003eCaps\u003c/kbd\u003e\nto \u003ckbd\u003eCtrl\u003c/kbd\u003e in the Chrome OS keyboard settings.\n\n## Usage\n\n1. Set _Caps Lock_ and _Search_ to _Control_ in Settings-\u003eDevice-\u003eKeyboard\n2. Enable the _Developer mode_ switch in the top right of `chrome://extensions`\n3. Press the _Load unpacked_ button and select the `ctrl2esc` folder\n4. Press _Input method_ -\u003e _Manage input methods_ and select `ctrl2esc` in `chrome://settings/languages`\n5. Enable _Show input options in the shelf_\n6. Select `EN ctrl2esc` in the Chrome OS shelf, near the notifications\n\n## Caveats\n\nThe Chrome [input method\neditor](https://developer.chrome.com/extensions/input_ime) system only provides\na valid context for text field entries. `ctrl2esc` will work for apps that are\ntext fields like the [Secure\nShell](https://chrome.google.com/webstore/detail/secure-shell-app/pnhechapfaindjhompbnflcldabbghjo?hl=en)\napp and the [hterm](https://hterm.org/) based Crostini Terminal app.\n\nThanks to [gbishop](https://github.com/gbishop/ctrl2esc) for the improved implementation!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmogenson%2Fctrl2esc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmogenson%2Fctrl2esc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmogenson%2Fctrl2esc/lists"}