mirror of
https://github.com/chylex/Userscripts.git
synced 2025-09-15 08:32:09 +02:00
Compare commits
15 Commits
b0cb624873
...
master
Author | SHA1 | Date | |
---|---|---|---|
bcaebeca36
|
|||
6b2f3698dc
|
|||
7319ee255e
|
|||
de4fa3b7a5
|
|||
035aed7554
|
|||
602ad9298d
|
|||
98097ef8c1
|
|||
1bf299d4fe
|
|||
9dc53e3e1d
|
|||
bd10edeb73
|
|||
fa104cf684
|
|||
8e20444d16
|
|||
ba272bbe4a
|
|||
98aed91112
|
|||
2b6bad9b2b
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.idea
|
20
Patreon/ClickAnywhereToCloseImageDialog.user.js
Normal file
20
Patreon/ClickAnywhereToCloseImageDialog.user.js
Normal file
@@ -0,0 +1,20 @@
|
||||
// ==UserScript==
|
||||
// @name Patreon - Click Anywhere to Close Image Dialog
|
||||
// @description Close modal image dialog by clicking anywhere on the page.
|
||||
// @version 1
|
||||
// @license MPL-2.0
|
||||
// @namespace https://chylex.com
|
||||
// @homepageURL https://github.com/chylex/Userscripts
|
||||
// @supportURL https://github.com/chylex/Userscripts/issues
|
||||
// @include https://www.patreon.com/*
|
||||
// @run-at document-idle
|
||||
// @grant none
|
||||
// ==/UserScript==
|
||||
|
||||
document.body.addEventListener("click", e => {
|
||||
if (e.target.tagName === "IMG" && e.target.getAttribute("data-tag") === "lightboxImage") {
|
||||
document.querySelector("[data-tag='close']")?.click();
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
}
|
||||
});
|
106
README.md
106
README.md
@@ -1,13 +1,19 @@
|
||||
## Userscripts
|
||||
This repository contains my userscripts and userstyles (custom scripts and styles) for various websites. Most of them are licensed under [MPL-2.0](LICENSE.txt), but you can see the license and additional authors of each individual script or style in the metadata comment at the top of the file.
|
||||
|
||||
## How to Install
|
||||
If you don't already have a userscript manager installed in your browser, I would recommend one of these:
|
||||
If you don't already have a userscript or userstyle manager installed in your browser, I would recommend one of these:
|
||||
|
||||
* [Violentmonkey](https://violentmonkey.github.io/get-it/) (**Firefox 57+**, **Chrome**)
|
||||
* [Tampermonkey](https://tampermonkey.net/) (**Edge**, **Opera**, **Safari**)
|
||||
* [Greasemonkey 3](https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/?page=1#version-3.17) (**Firefox 56 or older**, make sure to prevent it from updating)
|
||||
* **Userscript managers**
|
||||
* [Violentmonkey](https://violentmonkey.github.io/get-it/) (**Firefox 57+**, **Chrome**)
|
||||
* [Tampermonkey](https://tampermonkey.net/) (**Edge**, **Opera**, **Safari**)
|
||||
* [Greasemonkey 3](https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/versions/?page=1#version-3.17) (**Firefox 56 or older**, make sure to prevent it from updating)
|
||||
* **Userstyle managers**
|
||||
* [Stylus](https://github.com/openstyles/stylus)
|
||||
|
||||
Pick whichever scripts you want from the list below, and click the link to install them. The userscript manager will automatically update all installed scripts, however since these scripts are quite simple and updates may change how they work, each of them has an alternative link that will never update.
|
||||
Pick whichever scripts or styles you want from the list below, and click the link to install them. The userscript or userstyle manager will automatically update all installed scripts, however since these scripts and styles are quite simple and updates may change how they work, each of them has an alternative link that will never update.
|
||||
|
||||
If you want to [report an issue](https://github.com/chylex/Userscripts/issues/new) (bug report or feature request) for one of the scripts, please make sure you're using the most recent version of that script, and search for [existing issues](https://github.com/chylex/Userscripts/issues) in case it's already been reported.
|
||||
Before you [report an issue](https://github.com/chylex/Userscripts/issues/new) (bug report or feature request), please make sure you're using the most recent version of that script or style, and search for [existing issues](https://github.com/chylex/Userscripts/issues) in case it's already been reported.
|
||||
|
||||
## Summary
|
||||
|
||||
@@ -16,6 +22,7 @@ If you want to [report an issue](https://github.com/chylex/Userscripts/issues/ne
|
||||
<tr>
|
||||
<th width="110px" rowspan="1">(General)</th>
|
||||
<td width="325px"><a href="#stop-fucking-with-my-mouse--keyboard">Stop Fucking With My Mouse & Keyboard</a></td>
|
||||
<td>Script</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -24,6 +31,7 @@ If you want to [report an issue](https://github.com/chylex/Userscripts/issues/ne
|
||||
<tr>
|
||||
<th width="110px" rowspan="1">Discord</th>
|
||||
<td width="325px"><a href="#discord-history-tracker">Discord History Tracker</a></td>
|
||||
<td>Script</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -32,6 +40,16 @@ If you want to [report an issue](https://github.com/chylex/Userscripts/issues/ne
|
||||
<tr>
|
||||
<th width="110px" rowspan="1">OpenEye</th>
|
||||
<td width="325px"><a href="#load--filter-openeye-crashes">Load & Filter OpenEye Crashes</a></td>
|
||||
<td>Script</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th width="110px" rowspan="1">Patreon</th>
|
||||
<td width="325px"><a href="#click-anywhere-to-close-image-dialog">Click Anywhere to Close Image Dialog</a></td>
|
||||
<td>Script</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -40,6 +58,7 @@ If you want to [report an issue](https://github.com/chylex/Userscripts/issues/ne
|
||||
<tr>
|
||||
<th width="110px" rowspan="1">Reddit</th>
|
||||
<td width="325px"><a href="#wholesome-reddit">Wholesome Reddit</a></td>
|
||||
<td>Script</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -48,6 +67,7 @@ If you want to [report an issue](https://github.com/chylex/Userscripts/issues/ne
|
||||
<tr>
|
||||
<th width="110px" rowspan="1">Twitch</th>
|
||||
<td width="325px"><a href="#transparent-twitch-chat">Transparent Twitch Chat</a></td>
|
||||
<td>Script</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -55,19 +75,37 @@ If you want to [report an issue](https://github.com/chylex/Userscripts/issues/ne
|
||||
<tbody>
|
||||
<tr>
|
||||
<th width="110px" rowspan="5">YouTube</th>
|
||||
<td width="325px"><a href="#activity-check-removal">Activity Check Removal</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="#block-youtube-playlists">Block YouTube Playlists</a></td>
|
||||
<td width="325px"><a href="#block-youtube-playlists">Block YouTube Playlists</a></td>
|
||||
<td>Script</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="#fix-youtube-fullscreen-text-selection">Fix YouTube Fullscreen Text Selection</a></td>
|
||||
<td>Script</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="#hide-youtube-seek-bar--duration">Hide YouTube Seek Bar & Duration</a></td>
|
||||
<td>Script</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="#redirect-youtube-shorts">Redirect YouTube Shorts</a></td>
|
||||
<td>Script</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="#theater-fullscreen--transparent-chat">Theater Fullscreen + Transparent Chat</a></td>
|
||||
<td>Script</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th width="110px" rowspan="2">Wikipedia</th>
|
||||
<td width="325px"><a href="#old-design">Old Design</a></td>
|
||||
<td>Script</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="325px"><a href="#show-all-languages">Show All Languages</a></td>
|
||||
<td>Style</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -102,6 +140,17 @@ Adds a button to load all pages in the [Crashes](https://openeye.openmods.info/c
|
||||
\-
|
||||
\[ [Source code](https://github.com/chylex/Userscripts/blob/master/OpenEye/LoadAllPages.user.js) \]
|
||||
|
||||
---
|
||||
### Patreon
|
||||
|
||||
#### Click Anywhere to Close Image Dialog
|
||||
Close modal image dialog by clicking anywhere on the page.
|
||||
\[ [Automatically updated](https://github.com/chylex/Userscripts/raw/master/Patreon/ClickAnywhereToCloseImageDialog.user.js) \]
|
||||
\-
|
||||
\[ [Manually updated](https://github.com/chylex/Userscripts/raw/6b2f3698dc7082a57afa82470422f5c3418f1938/Patreon/ClickAnywhereToCloseImageDialog.user.js) \]
|
||||
\-
|
||||
\[ [Source code](https://github.com/chylex/Userscripts/blob/master/Patreon/ClickAnywhereToCloseImageDialog.user.js) \]
|
||||
|
||||
---
|
||||
### Reddit
|
||||
|
||||
@@ -125,19 +174,11 @@ Overlays Twitch chat over the video to save space. Includes many customizations
|
||||
---
|
||||
### YouTube
|
||||
|
||||
#### Activity Check Removal
|
||||
Removes activity check that interrupts video playback. **This script is obsolete**.
|
||||
\[ [Automatically updated](https://github.com/chylex/Userscripts/raw/master/YouTube/ActivityCheckRemoval.user.js) \]
|
||||
\-
|
||||
\[ [Manually updated](https://github.com/chylex/Userscripts/raw/2ddfdcd8cffb796830ff04847f43f2bf91fb0ffc/YouTube/ActivityCheckRemoval.user.js) \]
|
||||
\-
|
||||
\[ [Source code](https://github.com/chylex/Userscripts/blob/master/YouTube/ActivityCheckRemoval.user.js) \]
|
||||
|
||||
#### Block YouTube Playlists
|
||||
Removes playlists from YouTube video URLs.
|
||||
\[ [Automatically updated](https://github.com/chylex/Userscripts/raw/master/YouTube/BlockPlaylists.user.js) \]
|
||||
\-
|
||||
\[ [Manually updated](https://github.com/chylex/Userscripts/raw/b74c26ed01640db4f6d0a06f67d6e25627fb07be/YouTube/BlockPlaylists.user.js) \]
|
||||
\[ [Manually updated](https://github.com/chylex/Userscripts/raw/98097ef8c14ab84ff0dc7463bbe55a363890bb6d/YouTube/BlockPlaylists.user.js) \]
|
||||
\-
|
||||
\[ [Source code](https://github.com/chylex/Userscripts/blob/master/YouTube/BlockPlaylists.user.js) \]
|
||||
|
||||
@@ -157,6 +198,14 @@ Hides all mentions of video durations by default. Press 'AltGr' to toggle.
|
||||
\-
|
||||
\[ [Source code](https://github.com/chylex/Userscripts/blob/master/YouTube/HideSeekBarAndDuration.user.js) \]
|
||||
|
||||
#### Redirect YouTube Shorts
|
||||
Redirects YouTube shorts to normal video URLs.
|
||||
\[ [Automatically updated](https://github.com/chylex/Userscripts/raw/master/YouTube/RedirectShorts.user.js) \]
|
||||
\-
|
||||
\[ [Manually updated](https://github.com/chylex/Userscripts/raw/035aed7554c89fee66a6278f4fcf73292821b7f5/YouTube/RedirectShorts.user.js) \]
|
||||
\-
|
||||
\[ [Source code](https://github.com/chylex/Userscripts/blob/master/YouTube/RedirectShorts.user.js) \]
|
||||
|
||||
#### Theater Fullscreen + Transparent Chat
|
||||
In theater mode, it expands video to full screen, makes chat transparent and overlays it over the video. Note that colors of images in chat will be inverted, and the player controls may behave strangely. **Requires classic YouTube layout,** you can use the third-party [Youtube - Restore Classic](https://greasyfork.org/en/scripts/34818-youtube-restore-classic) script for that.
|
||||
\[ [Automatically updated](https://github.com/chylex/Userscripts/raw/master/YouTube/TheaterFullscreenTransparentChat.user.js) \]
|
||||
@@ -166,3 +215,22 @@ In theater mode, it expands video to full screen, makes chat transparent and ove
|
||||
\[ [Source code](https://github.com/chylex/Userscripts/blob/master/YouTube/TheaterFullscreenTransparentChat.user.js) \]
|
||||
|
||||
<img src="https://repo.chylex.com/transparent-youtube-chat.png?" width="400">
|
||||
|
||||
---
|
||||
### Wikipedia
|
||||
|
||||
#### Old Design
|
||||
Reverts to the old Vector design.
|
||||
\[ [Automatically updated](https://github.com/chylex/Userscripts/raw/master/Wikipedia/OldDesign.user.js) \]
|
||||
\-
|
||||
\[ [Manually updated](https://github.com/chylex/Userscripts/raw/bd10edeb73ded1b0af0c4c715ef4399e9db248e8/Wikipedia/OldDesign.user.js) \]
|
||||
\-
|
||||
\[ [Source code](https://github.com/chylex/Userscripts/blob/master/Wikipedia/OldDesign.user.js) \]
|
||||
|
||||
#### Show All Languages
|
||||
Shows all languages in the sidebar instead of collapsing them into a drop-down.
|
||||
\[ [Automatically updated](https://github.com/chylex/Userscripts/raw/master/Wikipedia/ShowAllLanguages.user.css) \]
|
||||
\-
|
||||
\[ [Manually updated](https://github.com/chylex/Userscripts/raw/8e20444d16c3214f8bf9d0f72c5df9ccd9d29e6a/Wikipedia/ShowAllLanguages.user.css) \]
|
||||
\-
|
||||
\[ [Source code](https://github.com/chylex/Userscripts/blob/master/Wikipedia/ShowAllLanguages.user.css) \]
|
||||
|
35
Wikipedia/OldDesign.user.js
Normal file
35
Wikipedia/OldDesign.user.js
Normal file
@@ -0,0 +1,35 @@
|
||||
// ==UserScript==
|
||||
// @name Old Wikipedia Design
|
||||
// @description Reverts to the old Vector design.
|
||||
// @author Vusys, chylex
|
||||
// @version 2
|
||||
// @license MIT
|
||||
// @namespace https://chylex.com
|
||||
// @homepageURL https://github.com/chylex/Userscripts
|
||||
// @supportURL https://github.com/chylex/Userscripts/issues
|
||||
// @include https://*.wikipedia.org/*
|
||||
// @exclude https://*.wikipedia.org/
|
||||
// @run-at document-start
|
||||
// @grant none
|
||||
// ==/UserScript==
|
||||
|
||||
(function() {
|
||||
function fixUrl(href) {
|
||||
const url = new URL(href);
|
||||
url.searchParams.set("useskin", "vector");
|
||||
return url.href;
|
||||
}
|
||||
|
||||
if (!window.location.search.includes("useskin=")) {
|
||||
location.replace(fixUrl(window.location.href));
|
||||
return;
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
for (const a of document.getElementsByTagName("a")) {
|
||||
if (a.hostname.includes("wikipedia.org")) {
|
||||
a.href = fixUrl(a.href);
|
||||
}
|
||||
}
|
||||
});
|
||||
})();
|
20
Wikipedia/ShowAllLanguages.user.css
Normal file
20
Wikipedia/ShowAllLanguages.user.css
Normal file
@@ -0,0 +1,20 @@
|
||||
/* ==UserStyle==
|
||||
@name Show All Languages on Wikipedia
|
||||
@description Shows all languages in the sidebar instead of collapsing them into a drop-down.
|
||||
@version 1
|
||||
@author chylex
|
||||
@license MPL-2.0
|
||||
@namespace https://chylex.com
|
||||
@homepageURL https://github.com/chylex/Userscripts
|
||||
@supportURL https://github.com/chylex/Userscripts/issues
|
||||
==/UserStyle== */
|
||||
|
||||
@-moz-document domain("wikipedia.org") {
|
||||
.mw-interlanguage-selector {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.interlanguage-link {
|
||||
display: block !important;
|
||||
}
|
||||
}
|
@@ -1,35 +0,0 @@
|
||||
// ==UserScript==
|
||||
// @name YouTube Activity Check Removal
|
||||
// @description Removes activity check that interrupts video playback.
|
||||
// @version 1
|
||||
// @license MPL-2.0
|
||||
// @namespace https://chylex.com
|
||||
// @homepageURL https://github.com/chylex/Userscripts
|
||||
// @supportURL https://github.com/chylex/Userscripts/issues
|
||||
// @include https://youtube.com/*
|
||||
// @include https://*.youtube.com/*
|
||||
// @run-at document-end
|
||||
// @grant none
|
||||
// @noframes
|
||||
// ==/UserScript==
|
||||
|
||||
var timeout = 0;
|
||||
|
||||
var check = setInterval(function(){
|
||||
if (_yt_www.J){
|
||||
clearInterval(check);
|
||||
|
||||
var prev = _yt_www.J;
|
||||
|
||||
_yt_www.J = function(cls){
|
||||
if (cls && cls.startsWith("youthere-")){
|
||||
return null;
|
||||
}
|
||||
|
||||
return prev.apply(this, arguments);
|
||||
};
|
||||
}
|
||||
else if (++timeout > 500){ // average should be about 5-10
|
||||
clearInterval(check);
|
||||
}
|
||||
}, 1);
|
@@ -1,7 +1,7 @@
|
||||
// ==UserScript==
|
||||
// @name Block YouTube Playlists
|
||||
// @description Removes playlists from YouTube video URLs.
|
||||
// @version 1
|
||||
// @version 2
|
||||
// @license MPL-2.0
|
||||
// @namespace https://chylex.com
|
||||
// @homepageURL https://github.com/chylex/Userscripts
|
||||
@@ -13,18 +13,11 @@
|
||||
// @noframes
|
||||
// ==/UserScript==
|
||||
|
||||
if (location.pathname == "/watch" && location.search.includes("&list=")){
|
||||
history.replaceState({}, document.title, location.search.replace(/&list=(.*)/, ""));
|
||||
location.reload();
|
||||
function redirectPlaylist() {
|
||||
if (location.pathname === "/watch" && location.search.includes("&list=")) {
|
||||
location.replace(location.href.replace(/&list=(.*)/, ""));
|
||||
}
|
||||
}
|
||||
|
||||
document.addEventListener("spfclick", function(e){
|
||||
var url = e.detail.url;
|
||||
|
||||
if (url.includes("youtube.com/watch?") && url.includes("&list=")){
|
||||
// forces a normal page load
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
e.stopImmediatePropagation();
|
||||
}
|
||||
}, true);
|
||||
redirectPlaylist();
|
||||
document.addEventListener("yt-navigate-start", redirectPlaylist);
|
||||
|
23
YouTube/RedirectShorts.user.js
Normal file
23
YouTube/RedirectShorts.user.js
Normal file
@@ -0,0 +1,23 @@
|
||||
// ==UserScript==
|
||||
// @name Redirect YouTube Shorts
|
||||
// @description Redirects YouTube shorts to normal video URLs.
|
||||
// @version 1
|
||||
// @license MPL-2.0
|
||||
// @namespace https://chylex.com
|
||||
// @homepageURL https://github.com/chylex/Userscripts
|
||||
// @supportURL https://github.com/chylex/Userscripts/issues
|
||||
// @include https://youtube.com/*
|
||||
// @include https://*.youtube.com/*
|
||||
// @run-at document-start
|
||||
// @grant none
|
||||
// @noframes
|
||||
// ==/UserScript==
|
||||
|
||||
function redirectShort() {
|
||||
if (location.pathname.startsWith("/shorts/")) {
|
||||
location.replace(location.href.replace("/shorts/", "/watch?v="));
|
||||
}
|
||||
}
|
||||
|
||||
redirectShort();
|
||||
document.addEventListener("yt-navigate-start", redirectShort);
|
Reference in New Issue
Block a user