# My Google Chrome Extensions.md
# Copyright (c) 2019 Evandro Coan
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.-
- To disable Chrome’s media control key extension to the Windows 10 volume OSD, follow these steps:
- Using Chrome, browse to “chrome://flags/” to access the experimental hidden settings.
- Search for the “Hardware Media Key Handling” function.
- Disable it by changing the dropdown selection from Default to Disabled.
- Click the “Relaunch Now” button on the popup at the bottom.
-
Tampermonkey
- The world's most popular userscript manager
- https://github.com/CertainPerformance/Stack-Exchange-Userscripts/raw/master/Preview-Antifocus/StackPreviewAntifocus.user.js
- https://github.com/CertainPerformance/Stack-Exchange-Userscripts/raw/master/Three-Columns/dist/StackThreeColumns.user.js
- https://stackapps.com/questions/4486/the-stack-overflow-unofficial-patch-soup
-
Fix GitHub snippet edit small size
// ==UserScript== // @name Fix GitHub snippet edit small size // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://gist.github.com/evandrocoan/* // @require http://code.jquery.com/jquery-3.4.1.min.js // ==/UserScript== (function() { 'use strict'; let keepclosing = async () => { let viewedbar = $('div[class="CodeMirror cm-s-github-light CodeMirror-wrap"]').not('span[data-donot-process-this-again]'); // console.log('running'); // console.log(viewedbar); if(viewedbar.length) { viewedbar.css("height", "700px"); viewedbar.attr('data-donot-process-this-again', true); } setTimeout(keepclosing, 500); } setTimeout(keepclosing, 500); })();
-
Force GMail Archive button to go to back after clicking on it
// ==UserScript== // @name Force GMail Archive button to go to back after clicking on it // @namespace * // @version 0.1 // @description Force GMail Archive button to go to back after clicking on it // @author Evandro Coan // // @include https://mail.google.com/* // @require http://code.jquery.com/jquery-3.4.1.min.js // ==/UserScript== (function() { 'use strict'; let keepclosing = async () => { let viewedbar = $('div[data-tooltip="Archive"][tabindex="0"]').not('span[data-donot-process-this-again]'); // console.log('running'); // console.log(viewedbar); if(viewedbar.length) { let previousItem = function() { // let viewedbar = $('div[data-tooltip][tabindex="0"][role="button"]').filter(function() { // return $(this).attr('data-tooltip').match(/.*Back.*/); // }); let viewedbar = $('div[data-tooltip="All Mail"]'); if(viewedbar.length) { viewedbar.click(); } return false; }; viewedbar.on('click', previousItem); viewedbar.attr('data-donot-process-this-again', true); } setTimeout(keepclosing, 500); } setTimeout(keepclosing, 500); let keepopening = async () => { let expandbutton = $('div[data-tooltip="Show trimmed content"]'); setTimeout(keepopening, 500); if( expandbutton.length ) { expandbutton.click(); } } setTimeout(keepopening, 500); })();
-
Force GMail Archive refresh page every 5 seconds
// ==UserScript== // @name Force GMail Archive refresh page every 5 seconds // @namespace * // @version 0.1 // @description This is because on Linux the page some times takes long time to refresh // @author Evandro Coan // // @include https://mail.google.com/* // @require http://code.jquery.com/jquery-3.4.1.min.js // ==/UserScript== (function() { 'use strict'; let keepclosing = async () => { let viewedbar = $('div[aria-label="Refresh"]'); if(viewedbar.length) { console.log('Clicking refresh'); viewedbar.click(); } else { console.log(viewedbar); } } setInterval(keepclosing, 5000); })();
-
Remove youtube channels logo and always show all videos
// ==UserScript== // @name Remove youtube channels logo and always show all videos // @namespace * // @version 0.1 // @description https://stackoverflow.com/questions/60480918/how-to-simulate-click-in-react-app-using-tampermonkey // @author You // // @include https://*youtube.com/* // @require http://code.jquery.com/jquery-3.4.1.min.js // ==/UserScript== (function() { 'use strict'; let showmoreregex = new RegExp("Show \\d+ more"); // expression here let keepclosing = async () => { let menubuttons = $('tp-yt-paper-tab'); if( menubuttons.length ) { // console.log("removing running..."); let videosButton = menubuttons[1]; let ariaSelected = $(videosButton).attr('aria-selected'); // console.log(`ariaSelected ${ariaSelected}`); if( ariaSelected == 'false' ) { menubuttons[1].click(); } // delete youtube useless top bar/logo let topbar = $('.style-scope.ytd-c4-tabbed-header-renderer'); if(topbar.length) { topbar.hide(); } } let showmorebutton = $('tp-yt-paper-item[class="style-scope ytd-guide-entry-renderer"]').filter(function () { return showmoreregex.test($(this).text()); }); // console.log(`showmorebutton ${showmorebutton.text()}`); if( showmorebutton.length ) { showmorebutton[0].click(); } setTimeout(keepclosing, 1000); } setTimeout(keepclosing, 1000); })();
-
Remove youtube viewed videos
// ==UserScript== // @name Remove youtube viewed videos // @namespace * // @version 0.1 // @description https://webapps.stackexchange.com/questions/145612/how-to-stop-the // @author You // // @include https://*youtube.com/* // @require http://code.jquery.com/jquery-3.4.1.min.js // ==/UserScript== (function() { 'use strict'; let keepclosing = async () => { let viewedbar = $('.style-scope.ytd-thumbnail-overlay-resume-playback-renderer'); if(viewedbar.length) { // console.log("removing running..."); let parent = viewedbar.closest('.style-scope.ytd-rich-grid-renderer'); if(parent.length) { // use hide instead of remove to avoid mass flickering of the page parent.hide(); } } // console.log("running"); setTimeout(keepclosing, 500); } setTimeout(keepclosing, 500); })();
-
Close GitHub Notifications bar
// ==UserScript== // @name Close GitHub Notifications bar // @namespace * // @version 0.1 // @description https://github.com/sindresorhus/refined-github/issues/3061 // https://gist.github.com/evandrocoan/0e25dd233f3f99352a8147041809ba8d // // @author You // @include http://*github.com/* // @include https://*github.com/* // @require http://code.jquery.com/jquery-3.4.1.min.js // ==/UserScript== (function() { 'use strict'; clickButton('button[aria-label="Close notification controls"].btn-octicon.js-flash-close'); deleteElement('.js-sticky.js-sticky-offset-scroll.top-0.gh-header-sticky.is-stuck'); // http://en.enisozgen.com/hide-github-academic-discount-coupon-error/ deleteElement('.flash.flash-full.js-notice.flash-error'); function deleteElement(selector) { let delayed = () => { let element = $(String(selector)); if(element.length) { console.log(`Deleting '${element.text().replace(/\s+/g, ' ').trim()}' button`); element.remove(); } setTimeout(delayed, 2000); } setTimeout(delayed, 2000); } function clickButton(selector) { let delayed = () => { let element = $(String(selector)); if(element.length) { console.log(`Closing element '${element.html()}' button`); element.click(); } setTimeout(delayed, 2000); } setTimeout(delayed, 2000); } })();
-
Close stackexchange up vote beg bar
// ==UserScript== // @name Close Stackexchange Up Vote Notifications bar // @namespace * // @version 0.1 // @description https://meta.stackexchange.com/questions/89045/disable // @author You // // https://meta.stackexchange.com/questions/81379/can-we-have-a-list-of-all // @include https://*askubuntu.com/* // @include https://*mathoverflow.net/* // @include https://*blogoverflow.com/* // @include https://*serverfault.com/* // @include https://*stackoverflow.com/* // @include https://*stackexchange.com/* // @include https://*stackapps.com/* // @include https://*stackmod.blog/* // @include https://*stackoverflow.blog/* // @include https://*stackoverflowbusiness.com/* // @include https://*superuser.com/* // @include https://*tex-talk.net/* // @include https://*thesffblog.com/* // @require http://code.jquery.com/jquery-3.4.1.min.js // ==/UserScript== (function() { 'use strict'; let keepclosing = async () => { let closebutton = $('#overlay-header'); if(closebutton.length) { console.log('Close Stackexchange Up Vote Notifications bar'); closebutton.remove(); setTimeout(keepclosing, 2000); } let begteampromotion = $('.teams-promo.overflow-hidden.z-active.bs-md.bg-black-750.fc-white.fs-body2.js-teams-promo'); if(begteampromotion.length) { console.log('Close Stackexchange Team Bag Notifications bar'); begteampromotion.remove(); setTimeout(keepclosing, 2000); } } setTimeout(keepclosing, 2000); })();
-
Close Lastfm top bar player
// ==UserScript== // @name Close Lastfm player bar // @namespace * // @version 0.1 // @description https://github.com/sindresorhus/refined-github/issues/3061 // @author You // https://meta.stackexchange.com/questions/81379/can-we-have-a-list-of-all // @include https://*last.fm/* // @require http://code.jquery.com/jquery-3.4.1.min.js // ==/UserScript== let things = ` // https://stackoverflow.com/questions/7474354/include-jquery-in-the-javascript-console var jq = document.createElement('script'); jq.src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"; document.getElementsByTagName('head')[0].appendChild(jq); // ... give time for script to load, then type (or see below for non wait option) jQuery.noConflict(); `; (function() { 'use strict'; deleteElement('div[data-more-string="More…"].navlist.navlist--more.masthead-nav.hidden-xs'); deleteElement('.masthead-logo'); deleteElement('.top-bar'); function deleteElement(selector) { let delayed = () => { // Avoid reprocessing when on background/not focused if (document.hasFocus()) { // console.log('Tab is active'); } else { // console.log('Tab is not active'); setTimeout(delayed, 1000); return; } let element = $(String(selector)); if(element.length) { console.log(`Deleting element '${element.text().replace(/\s+/g, ' ').trim()}' button`); element.remove(); } setTimeout(delayed, 2000); } setTimeout(delayed, 200); } $('#content').css({'padding-top': '0px'}); if( String(window.location.href).toLowerCase().includes('ironhead4life') ) { setTimeout(fixScrobleLink, 1000); } function fixScrobleLink() { // Avoid reprocessing when on background/not focused if (document.hasFocus()) { // console.log('Tab is active'); } else { // console.log('Tab is not active'); setTimeout(fixScrobleLink, 1000); return; } $('.chartlist-name>a').each(function(index, item) { // console.log(index) let newitem = $(item).attr('href'); if( ! String(newitem).includes('IronHead4Life') ) { let newitemsrc = String(newitem).replace('/music/', '/user/IronHead4Life/library/music/'); // console.log(newitemsrc); $(item).attr('href', newitemsrc); $(item).attr ('target', '_blank'); } }); setTimeout(fixScrobleLink, 1000); } })();
-
W Zoom, 1.0.17
- A Chrome extension which can perform per-tab/per-origin/per-path zooming
-
Discourse Forum Notifications
- Shows notifications of all added discourse forum sites. Version 1.1.4
- https://meta.discourse.org/t/discourse-push-notifications-for-desktop/86941
-
Application Launcher for Drive (by Google)
- Open Drive files directly from your browser in compatible applications installed on your computer.
-
Full Page Screen Capture
- Capture a screenshot of your current page in entirety and reliably—without requesting any extra permissions!
-
GitHub Repository Size
- Automatically adds repository size to GitHub's repository summary
-
BackStop
- Stop Backspace returning to previous page
-
Google Docs Offline
- Get things done offline with the Google Docs family of products.
-
Isometric Contributions
- Renders an isometric pixel view of GitHub contribution graphs.
-
Notifier for GitHub
- Displays your GitHub notifications unread count
-
Open in new tab
- Open links in new tab for a list of specified domains. Useful for sites such as hackernews
-
Mute Tab 1.4
- Restores the 'Mute Tab' functionality of versions prior to Chrome 71.
-
Refined GitHub
- Simplifies the GitHub interface and adds useful features
- Features to disable, by filename:
shorten-links add- move-marketplace-link-to-profile-dropdown set-default-repositories-type-to-sources infinite-scroll hide-useless-comments hide-watch-and-fork-count fit-textareas - *Custom CSS
/* fix GitHub Actions console output last line being half-cut */ body { line-height: 150%; } /* Stop adding scroll bar on quoted blocks/images */ /* https://github.com/sindresorhus/refined-github/issues/2491 */ .comment-body blockquote, .comment-body pre { max-height: none !important; overflow-y: visible !important; } /* How to remove the sticky issues top bar? */ /* https://github.com/sindresorhus/refined-github/issues/3086 */ .Box-header#js-issues-toolbar, .Box#js-issues-toolbar > .Box-header { position: relative; }
-
Save to Pocket
- Pocket Extension for Chrome - The best way to save articles, videos and more
-
Shortkeys (Custom Keyboard Shortcuts)
- Custom keyboard shortcuts for your browser
-
Simple Speed Dial
- A speed dial functionally similar to the one used in Opera.
-
Ultra light newtab page with bookmarks on it
- Ultra light new tab with bookmark navigator
-
Web Scrobbler
- Scrobble music all around the web!
-
Session Buddy
- Manage Browser Tabs and Bookmarks with Ease
-
Selection Highlighter
- Passively highlights occurrences of selected text. Maintains current text selection.
-
Disable HTML5 Autoplay (Reloaded)
- Disable autoplay and preloading of HTML5 video and audio players.
-
Notifier for Gmail™
- Multiple label and account notifier for Google Mail (Gmail)
-
Change Timezone (Time Shift)
- Easily change your timezone to a desired value and protect your privacy.
-
Chromium Wheel Smooth Scroller
- Make scroll behavior smooth, ease-in-out manner, customizable with dynamically plotted curve. With bouncy edge feature.
-
Calculadora de jornada - Ahgora
- Adiciona uma tabela com informações adicionais e a hora estimada de saída do trabalho na pagina de batidas de ponto do ahgora.
-
Checker Plus for Google Calendar
- See your next events, get meeting notifications and snooze events without opening the Google Calendar page!
-
jQuery Inject
- Injects jQuery in the page.
-
Chrome extension source viewer
- View source code of Chrome extensions, Firefox addons or Opera extensions (crx/nex/xpi) from the Chrome web store and elsewhere.
-
OpenList
- Utilities to create and open lists of tabs.
-
TabCopy
- Quickly copy tabs to the clipboard