{"id":28948127,"url":"https://github.com/alexferrari88/vskeys","last_synced_at":"2026-04-24T22:33:35.233Z","repository":{"id":294370258,"uuid":"986747420","full_name":"alexferrari88/vskeys","owner":"alexferrari88","description":"Bring VS Code shortcuts to every text field in Chrome⌨️","archived":false,"fork":false,"pushed_at":"2025-07-28T09:23:37.000Z","size":9713,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-08T13:03:58.280Z","etag":null,"topics":["chrome-extension","dev-productivity","productivity","shortcuts","vscode","vscode-shortcuts"],"latest_commit_sha":null,"homepage":"","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/alexferrari88.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,"zenodo":null}},"created_at":"2025-05-20T04:25:16.000Z","updated_at":"2025-07-28T09:23:41.000Z","dependencies_parsed_at":"2025-05-20T05:38:13.130Z","dependency_job_id":null,"html_url":"https://github.com/alexferrari88/vskeys","commit_stats":null,"previous_names":["alexferrari88/vskeys"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alexferrari88/vskeys","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexferrari88%2Fvskeys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexferrari88%2Fvskeys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexferrari88%2Fvskeys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexferrari88%2Fvskeys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexferrari88","download_url":"https://codeload.github.com/alexferrari88/vskeys/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexferrari88%2Fvskeys/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32243309,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-extension","dev-productivity","productivity","shortcuts","vscode","vscode-shortcuts"],"created_at":"2025-06-23T10:06:42.548Z","updated_at":"2026-04-24T22:33:35.223Z","avatar_url":"https://github.com/alexferrari88.png","language":"JavaScript","funding_links":["https://github.com/sponsors/alexferrari88"],"categories":[],"sub_categories":[],"readme":"# VS Keys ⌨️✨\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/logo.png\" alt=\"VS Keys Logo\" width=\"200\" /\u003e\n\u003c/p\u003e\n\n**Bring your favorite VS Code text editing shortcuts to any text field on the web!**\n\nVS Keys is a Chrome extension that empowers you to use a wide range of Visual Studio Code's powerful text editing shortcuts directly within `\u003cinput\u003e`, `\u003ctextarea\u003e`, and `contenteditable` elements on any webpage. Boost your productivity and maintain a consistent editing workflow across your browser.\n\n[![GitHub stars](https://img.shields.io/github/stars/alexferrari88/vskeys?style=social)](https://github.com/alexferrari88/vskeys)\n[![GitHub license](https://img.shields.io/github/license/alexferrari88/vskeys)](https://github.com/alexferrari88/vskeys/blob/main/LICENSE)\n\u003c!-- Add this line once you publish to the Chrome Web Store --\u003e\n\u003c!-- [![Chrome Web Store](https://img.shields.io/chrome-web-store/v/YOUR_EXTENSION_ID_HERE?label=Chrome%20Web%20Store)](https://chrome.google.com/webstore/detail/YOUR_EXTENSION_ID_HERE) --\u003e\n\n## Features\n\n*   **Comprehensive Shortcut Support:** Implements many essential VS Code shortcuts, including:\n    *   Line operations (cut, copy, delete, move, duplicate)\n    *   Indentation (indent/outdent lines)\n    *   Commenting (toggle line/block comments)\n    *   Selection enhancements (select line, smart home)\n    *   Case transformation (uppercase, lowercase, title case)\n    *   Whitespace management (trim trailing whitespace)\n    *   And more!\n*   **Works Everywhere:** Enhances standard input fields, textareas, and rich text editors using `contenteditable`.\n*   **Customizable:**\n    *   Enable/disable individual shortcuts globally.\n    *   Modify the default global shortcuts and make them your own.\n    *   **Per-Site Customization (New!):**\n        *   Disable or modify specific shortcuts on a per-website basis (e.g., keep \"Copy Line\" enabled globally but disable it on `github.com`, or change its key just for `docs.google.com`).\n        *   This allows fine-grained control to prevent conflicts with website-native shortcuts while keeping the extension active.\n    *   Disable the entire extension on specific websites (global disable list).\n    *   Configure visual feedback for actions.\n*   **Visual Feedback:** Get subtle on-screen confirmations for actions like \"Line Copied\" or \"Text Uppercased\".\n*   **Mac-Friendly Display:** Shows Mac-specific key symbols (⌘, ⌥, ⇧) in the options page if you're on a Mac.\n*   **Lightweight and Efficient:** Designed to be non-intrusive and performant.\n\n## Implemented Shortcuts (Default)\n\nHere's a list of commonly used shortcuts available by default (these can be toggled in settings):\n\n**Editing \u0026 Clipboard:**\n*   `Ctrl+X` / `⌘X`: Cut line (empty selection) / Cut selection\n*   `Ctrl+C` / `⌘C`: Copy line (empty selection) / Copy selection\n*   `Ctrl+V` / `⌘V`: Paste (with VS Code-like line pasting behavior)\n\n**Line Operations:**\n*   `Ctrl+Shift+K` / `⌘⇧K`: Delete Line\n*   `Ctrl+Enter` / `⌘↵`: Insert Line Below\n*   `Ctrl+Shift+Enter` / `⌘⇧↵`: Insert Line Above\n*   `Alt+DownArrow` / `⌥↓`: Move Line Down (Textarea)\n*   `Alt+UpArrow` / `⌥↑`: Move Line Up (Textarea)\n*   `Shift+Alt+DownArrow` / `⇧⌥↓`: Copy Line Down\n*   `Shift+Alt+UpArrow` / `⇧⌥↑`: Copy Line Up\n\n**Selection \u0026 Navigation:**\n*   `Ctrl+L` / `⌘L`: Select current line\n*   `Home`: Smart Home (to first non-whitespace/line start for Textarea/Input; native behavior for `contenteditable`)\n*   `Ctrl+D` / `⌘D`: Select word / Find next occurrence (single selection)\n\n**Indentation \u0026 Comments:**\n*   `Ctrl+]` / `⌘]`: Indent Line/Selection\n*   `Ctrl+[` / `⌘[`: Outdent Line/Selection\n*   `Ctrl+/` / `⌘/`: Toggle Line Comment\n*   `Shift+Alt+A` / `⇧⌥A`: Toggle Block Comment\n*   `Ctrl+K Ctrl+C` / `⌘K ⌘C`: Add Line Comment\n*   `Ctrl+K Ctrl+U` / `⌘K ⌘U`: Remove Line Comment\n\n**Case Transformation \u0026 Whitespace:**\n*   `Ctrl+Alt+U` / `⌘⌥U`: Selection to UPPERCASE\n*   `Ctrl+Alt+L` / `⌘⌥L`: Selection to lowercase\n*   `Ctrl+Alt+T` / `⌘⌥T`: Selection to Title Case\n*   `Ctrl+K Ctrl+W` / `⌘K ⌘W`: Trim Trailing Whitespace (Selection/Current Line; Textarea/Input only)\n\n*(For a complete list and to customize, check the extension's options page!)*\n\n## Installation\n\n### From Chrome Web Store (Recommended - Coming Soon!)\n\n1.  Visit the VS Keys page on the Chrome Web Store: [https://chromewebstore.google.com/detail/vs-keys/mkelbmonkfkljnakbomaoodaigpnepjl](https://chromewebstore.google.com/detail/vs-keys/mkelbmonkfkljnakbomaoodaigpnepjl).\n2.  Click \"Add to Chrome\".\n3.  Enjoy your enhanced text editing!\n\n### Manual Installation (for Development or Testing)\n\n1.  **Clone or Download:**\n    *   Clone this repository: `git clone https://github.com/alexferrari88/vskeys.git`\n    *   Or, download the ZIP and extract it.\n2.  **Build:**\n    *   Execute `npm run build` in the terminal.\n3.  **Open Chrome Extensions:**\n    *   Navigate to `chrome://extensions` in your Chrome browser.\n4.  **Enable Developer Mode:**\n    *   Ensure the \"Developer mode\" toggle in the top-right corner is switched on.\n5.  **Load Unpacked:**\n    *   Click the \"Load unpacked\" button.\n    *   Select the `dist` directory created by the Build step.\n6.  **Pin the Extension (Optional):**\n    *   Click the puzzle icon (Extensions) in the Chrome toolbar and pin VS Keys for easy access to its options.\n\n## Usage\n\nOnce installed, VS Keys will automatically be active on web pages. Simply focus an editable text field and use your familiar VS Code shortcuts!\n\n*   **Accessing Options:** Click the VS Keys icon in your Chrome toolbar (or find it in the Extensions menu) to open the settings page. Here you can:\n    *   Toggle individual shortcuts on or off (these are your global defaults).\n    *   Modify the keybindings for these global default shortcuts.\n    *   **Manage Per-Site Configurations:**\n        *   Enter a website hostname (e.g., `yourproject.app.com` or `*.github.com`).\n        *   For that specific site, you can then:\n            *   Disable individual shortcuts.\n            *   Set a custom keybinding for any shortcut, overriding the global default just for that site.\n            *   Reset site-specific changes to use global defaults.\n    *   Add websites to a global \"Disabled Websites\" list where VS Keys will be completely inactive.\n    *   Configure visual feedback settings.\n\n## Contributing\n\nContributions are welcome! Whether it's reporting a bug, suggesting a feature, or submitting a pull request, your help is appreciated.\n\n1.  **Fork the repository.**\n2.  **Create a new branch** for your feature or bug fix: `git checkout -b feature/your-feature-name` or `bugfix/issue-description`.\n3.  **Make your changes.**\n4.  **Test thoroughly.**\n5.  **Commit your changes:** `git commit -m \"feat: Implement amazing new feature\"` (Follow Conventional Commits if possible).\n6.  **Push to your branch:** `git push origin feature/your-feature-name`.\n7.  **Open a Pull Request** against the `main` branch of this repository.\n\nPlease ensure your code follows the existing style and that any new features are well-documented.\n\n## Support VS Keys\n\nIf you find VS Keys helpful and want to support its development, you can become a sponsor! Your support helps me dedicate more time to improving this extension and creating [other useful open-source projects](https://github.com/alexferrari88).\n\n[![Sponsor me on GitHub Sponsors](https://img.shields.io/badge/Sponsor%20on%20GitHub-%E2%9D%A4-%23db61a2?style=flat\u0026logo=github)](https://github.com/sponsors/alexferrari88)\n\nEvery contribution, no matter the size, is greatly appreciated!\n\n## Known Limitations \u0026 Considerations\n\n*   **`contenteditable` Complexity:** While VS Keys strives to work well with `contenteditable` elements (used by many rich text editors), the diverse and complex nature of their HTML structures means some shortcuts might behave differently or less predictably compared to standard `\u003ctextarea\u003e` elements.\n*   **Web App Conflicts:** Some web applications have their own extensive keyboard shortcuts. While VS Keys allows disabling on specific sites, an undiscovered conflict might occur. Please report such issues!\n*   **Multi-Cursor Features:** Advanced VS Code features like multi-cursor editing are extremely complex to replicate reliably in a browser environment and are currently outside the scope of this extension.\n\n## License\n\nThis project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for details.\n\n---\n\nMade with ❤️ by [alexferrari88](https://github.com/alexferrari88)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexferrari88%2Fvskeys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexferrari88%2Fvskeys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexferrari88%2Fvskeys/lists"}