{"id":13588646,"url":"https://github.com/SanderRonde/CustomRightClickMenu","last_synced_at":"2025-04-08T06:32:32.064Z","repository":{"id":31946925,"uuid":"35516667","full_name":"SanderRonde/CustomRightClickMenu","owner":"SanderRonde","description":"A browser extension to add links and run scripts/stylesheets all from your right-click menu","archived":false,"fork":false,"pushed_at":"2024-11-02T18:44:22.000Z","size":29078,"stargazers_count":219,"open_issues_count":7,"forks_count":33,"subscribers_count":22,"default_branch":"master","last_synced_at":"2024-11-06T08:42:19.820Z","etag":null,"topics":["chrome","chrome-extension","context-menu","css","javascript","userscripts","userstyles"],"latest_commit_sha":null,"homepage":"https://chrome.google.com/webstore/detail/custom-right-click-menu/onnbmgmepodkilcbdodhfepllfmafmlj","language":"TypeScript","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/SanderRonde.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2015-05-12T22:56:38.000Z","updated_at":"2024-09-24T15:41:25.000Z","dependencies_parsed_at":"2024-11-06T08:33:47.397Z","dependency_job_id":"f6251b8d-17ca-494f-8f27-cd4d99ee1901","html_url":"https://github.com/SanderRonde/CustomRightClickMenu","commit_stats":{"total_commits":3869,"total_committers":6,"mean_commits":644.8333333333334,"dds":0.004393900232618209,"last_synced_commit":"f32c11b0c9840ebc6ccf0ea365a7027500c272e5"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SanderRonde%2FCustomRightClickMenu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SanderRonde%2FCustomRightClickMenu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SanderRonde%2FCustomRightClickMenu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SanderRonde%2FCustomRightClickMenu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SanderRonde","download_url":"https://codeload.github.com/SanderRonde/CustomRightClickMenu/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247792146,"owners_count":20996878,"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","context-menu","css","javascript","userscripts","userstyles"],"created_at":"2024-08-01T15:06:50.507Z","updated_at":"2025-04-08T06:32:27.038Z","avatar_url":"https://github.com/SanderRonde.png","language":"TypeScript","readme":"# Custom Right-Click Menu - Create your own context menu\n\n\u003cimg align=\"right\" height=\"200\" src=\"https://github.com/SanderRonde/CustomRightClickMenu/blob/master/resources/logo/source/png/1.transparent.png\"\u003e\n\nCreate your own entry in the right-click menu. Add custom scripts, links, sub-menus or custom CSS in your right-click menu and\ndo anything you want all from your right-click menu. Featuring full GreaseMonkey compatibility for userscripts and Stylish compatibility for userstyles.\n\n![Chrome Web Store](https://img.shields.io/chrome-web-store/users/onnbmgmepodkilcbdodhfepllfmafmlj?label=chrome%20downloads)\n![Mozilla Add-on](https://img.shields.io/amo/users/custom-right-click-menu?label=firefox%20downloads)\n\n[![Tested with BrowserStack](http://i.imgur.com/3Mi2Fja.png)](https://www.browserstack.com/)\n\n## Demo\n\nA demo can be found over [here](https://sanderronde.github.io/CustomRightClickMenu/demo/). This demo does of course not offer\nfull functionality as it has no access to your actual browser APIs, but it does give a good view of the interface, a little bit of\na context menu demo on-page and access to settings.\n\n![example](https://github.com/SanderRonde/CustomRightClickMenu/blob/master/resources/store_images/screenshot1.png)\n\n## About\n\n### Custom CSS\n\nApply custom CSS styles on the current page based on the page you're visiting. Make them always apply or only when you toggle them on.\nCreate comprehensive changes using a CSS editor with lots of features in the application or simply use your editor by using the\nCRM External App ([source](https://github.com/SanderRonde/CRM-External-Editor-App), [app](https://chrome.google.com/webstore/detail/crm-external-editor-app/hkjjmhkhhlmkflpihbikfpcojeofbjgn) (chrome only)).\nIf you want you can also download userstyles from [userstyles.org](https://userstyles.org/) and you can even export your stylesheets\nas userstyles.\n\n### Custom Javascript\n\nRun your own javascript scripts on the current page or simply use ones that someone else wrote by sharing them. You can also write\nthe javascript in the extension itself or use your own editor with the external editor app ([source](https://github.com/SanderRonde/CRM-External-Editor-App), [app](https://chrome.google.com/webstore/detail/crm-external-editor-app/hkjjmhkhhlmkflpihbikfpcojeofbjgn) (chrome only)).\nYou can also write [TypeScript](typescriptlang.org), which is compiled in the extension.\nApart from using standard javascript APIs, you can also access the Custom Right-Click Menu's own APIs.\nThese allow you to extend the menu through your own code, which simplifies creating self-contained scripts or sub-menus. \nOf course featuring a permissions system for any external scripts to make sure they don't spam your menu with copies or\n run unauthorized scripts. Next to this you can access almost every single browser API\nwithout having to go through the hassle of creating a browser extension specifically for it. This allows you to easily increase your\nproductivity by for example automatically creating bookmarks, managing your tabs or even setting alarms. If you're using chromeOS\nthis becomes even better since then you can even change things like your wallpaper and things about the system itself.\nApart from creating your own scripts you can use other people's scripts and share your own. Using a very secure system\nthat allows you to manage a script's permissions no harm can be done.\n\n### Custom Menus\n\nCreate your own menus that are relevant for their own situations. For example, create a menu that lists all frequently used search\nengines and allows you to add one using a javascript snippet. Making menus and changing where they are visible allows you to make\na specific right-click menu for every page and re-use other menus, even being able to show different menu items based on the content\nyou clicked on (page, link, selection, image, video or audio).\n\n## Installing\n\n### Installing from your browser's web store\n\n\u003e [2.2.14](https://github.com/SanderRonde/CustomRightClickMenu/releases/tag/2.2.14) is the current latest version on Chrome. \n\u003e [2.2.8](https://github.com/SanderRonde/CustomRightClickMenu/releases/tag/2.2.8) is the current latest version on other platforms.\n\n* [Chrome Webstore](https://chrome.google.com/webstore/detail/custom-right-click-menu/onnbmgmepodkilcbdodhfepllfmafmlj) - On 2.2.14\n* [Firefox Add-on](https://addons.mozilla.org/nl/firefox/addon/custom-right-click-menu/) - On 2.2.8\n* [Edge Extension](https://www.microsoft.com/store/apps/9P6T9NZ0QML9) - On 2.2.8 certification in progress\n* Opera extension - Under certification for initial release (no changes in review status since submission in may 2018)\n\n**Note**: 2.2.9 and onwards are downgrades of 2.2.8 to comply with Google's mysterious web store policies, I wouldn't recommend upgrading from 2.2.8 to later versions if you have the choice since some functionality is removed (such as access to browser APIs) and some bugs may appear.\n\n### Installing from repo\n\nClone the repo, run [yarn --ignore-engines](https://yarnpkg.com) to install dependencies and run `yarn build` to build. Load the dist that matches your browser from dist/{browser}.\n\n## Developing Scripts\n\nYou can develop scripts inside the extension and outside of it. Editing inside the extension features code completion in the [Monaco Editor](https://microsoft.github.io/monaco-editor/) on both the [CRM API](http://sanderronde.github.io/CustomRightClickMenu/documentation) and regular browser functions. You can edit outside of the extension using your favorite editor while still having type hinting by using the type definition file. You can build these typescript definitions file by cloning the repo, installing all dependencies and running `gulp genDefs`. The file will then be in /dist/defs/. Alternatively, you can find the documentation for the CRM API [online](https://sanderronde.github.io/CustomRightClickMenu/documentation).\n\nThe CRM API allows you to edit the current state of the context menu right from a running script. This allows you to do things like create an \"add website to menu\" button, removing or adding subsections in a menu or even communicating with other running scripts. By also using a background script (which runs at all times and uses the same permissions/API), you can do pretty much everything a browser extension could. The CRM API also features full compatibility with the [GreaseMonkey API](https://wiki.greasespot.net/Greasemonkey_Manual:API), so you can use all userscripts. By using the CRM API you can do anything a regular browser extension also can. You can even [run this extension in itself](https://github.com/SanderRonde/CustomRightClickMenu/tree/crm-meta) (given a fast enough browser).\n\nEntering fullscreen mode brings up a hamburger menu on the left (see the image below) that allows access to the tools ribbon, containing features like using the external editor, adding (your own) libraries, easy search script generation or JSLint.\n\n![fullscreen editor](https://github.com/SanderRonde/CustomRightClickMenu/blob/master/resources/store_images/screenshot3.png)\n\n## Contributing\n\nIf you want to contribute but don't know how to code, you can become a beta tester. If you want to join, send me an email at [awsdfgvhbjn@gmail.com](mailto:awsdfgvhbjn@gmail.com).\nTo install the extension for contributing, simply clone this repo, run `yarn --ignore-engines \u0026\u0026 gulp prepareForHotReload`. This allows you to hot reload any changes by reloading the extension in your browser. Load the extension into your browser from the \"app/\" folder and you're done. Note that the background page uses modules and as such will only work in chrome \u003e= 66 when hot reloading.\nRun the `gulp defs \u0026\u0026 tsc -w -p app/tsconfig.json` command in order to compile any typescript files in the app/ directory as they are changed. You should be able to have your changes in the app folder be reflected to live instantly by hitting `ctrl/cmd + r` on the options page or clicking \"reload\" on your browser's extension page.\n\nTests can be built by running the `yarn pretest` command. `yarn test` will fail generally because by default, browser tests are done remotely on Browserstack which requires an access key. To do the browser tests locally, run a Selenium driver instance of the browser you want to test and run `yarn test-local`. You can run the unit tests (not in a browser environment) locally without a selenium instance by running `yarn test:global`.\n\n Building isn't really necessary as long as you don't need to export the files as it basically only minifies and removes unnecessary files.\n\n## License\n\n```text\nThe MIT License (MIT)\n\nCopyright (c) 2015 Sander Ronde\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSanderRonde%2FCustomRightClickMenu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSanderRonde%2FCustomRightClickMenu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSanderRonde%2FCustomRightClickMenu/lists"}