℞ Proxified Links
An opinionated script that automatically changes links to a proxy
Quickly see or customize where a link goes before opening it
Proxified hyperlinks to proxied sites or redirect through Farside with no nonsense
Why is everything highlighted?
- By default, links will change to a shortlisted proxied site
- Hold X to go through Farside (for up-to-date instances or randomization)
- Hold Z to revert the link back to the original, bona fide site
- Hold B+F while selecting an iframe (embedded YouTube) to change to a proxy. Can be combined with above controls.
Mobile touch gestures
- Tap/hold 2 fingers on the page to reset links to shortlisted proxied sites
- Tap/hold 3 fingers on the page to set links to go through Farside
- Tap/hold 5 fingers on the page to revert links to original, bona fide sites
- Tap/hold 4 fingers on the root page to enable iframes proxification (embedded YouTube)
- Tap/hold on an iframe to change to a proxy. Can be followed by any of the above touch controls.
- Repeat 4-finger gesture to disable iframe proxification
If you find a bug or want to request a change, see the Suggestions section
If you have questions, try not to bother me before asking
No nonsense
This is not an AIO solution. If you want nonsense, add it in yourself or use the other extensions or userscripts that fit your needs.
- No browser extensions or dependencies aside from your userscript manager.
Or load the js directly yourself if you don't trust Greasemonkey or Tampermonkey
- No request redirects or routing.
See the exact link before opening it
- No non-
proxied "alternative frontends" by default (see Services list below).
No services that phone home to the official servers. Manually enable or add as needed.
- No interfering with the official, bona fide site.
Use the first-party frontend at your discretion without linking out to a proxy of itself
- No search engine proxies.
Configure your browser search yourself. Who's messing around linking LMGTFY or broken proxied Google scrapers?
- No non-clearnet instances by default, due to instance availability and Farside support.
TOR and I2P is good, but add your own public or private P2P instances if needed
Bonus nonsense (yes, free nonsense with your no-nonsense):
- Automatically set
noreferer
on all links by default to hide your link Referer
headers. Limit to proxified links or disable completely.
- Set search engine search box to GET method in combination with
noreferer
. Customize or disable completely.
Need changes or fixes?
Enable console error logs with the DEBUG
flag.
If you want to suggest a change to the included services
Refer to the No nonsense guide to ensure the suggestion isn't nonsense. A Farside redirect is not a requirement but may indicate a poorly supported service. Include a preliminary code change to the PROXIES
and EXCLUSIONS
collections if you are able to, to share your testing with others.
If you want to report a suggest a fix
Go for it. Include additional information if it occurs on a specific site or element. I'll fix it if I need it myself and update the userscript here. If I don't fix it, do it yourself. I might be on vacation or I might just not care.
Where's the git?
Too bad. I'm just an anonymous proxy user. I don't care to maintain this beyond personal needs. Make a git repo yourself and watch for the inherited GPL.
Services
A maybily comprehensive list of services included in the script in the order they're defined. First class services at the top are the most mature and fully featured, and probably the best tested in this script.
Included services, as of v0.3.0:
Bona fide |
Proxied site |
Farside |
youtube.com youtu.be youtube-nocookie.com |
Piped Invidious (specific instances that enable proxying by default, if any) |
Supported |
reddit.com |
libreddit
teddit* (Discontinued) |
Supported |
twitter.com x.com |
nitter* (Discontinued) |
Supported |
stackoverflow.com stackexchange.com |
AnonymousOverflow |
Supported |
quora.com |
quetre |
Supported |
bandcamp.com |
Tent |
N/A |
instagram.com |
Proxigram* |
Supported |
tiktok.com |
ProxiTok* |
Supported |
github.com gist.github.com |
GotHub* |
Supported |
imdb.com |
libremdb |
Supported |
genius.com |
dumb* |
Supported |
medium.com |
Scribe‡ |
Supported |
fandom.com |
BreezeWiki‡ |
Supported |
wikipedia.org |
wikiless† |
Supported |
* Low feature parity or support
† Disabled by default, see PROXIES
list in code to reenable
‡ Not a proxy and therefore disabled by default, see PROXIES
list in code to reenable
Don't bother me
I'm lost, how do I enable a disabled proxy?
Open the installed script in your userscripts manager. Under the site you want to enable, delete the line of text that includes --- Remove this line to use ---
. Save the script and reload any pages you want updated.
A service is not on here, what gives?
See the Suggestions section before suggesting a proxy. If it's in the No nonsense list, add it for yourself or fork it for yourself.
An instance for a service is missing or dead, plz update?
A specific instance may intentionally be left out if it doesn't appear stable or mature, but feel free to suggest it or add it yourself in the meantime. If an instance is dead or unstable, report it and it'll be removed when I get to it. Changes to this script will happen on my own time and for my own needs. If you want to hold someone accountable, look in the mirror and then look at the code.
I bet this change totally makes the script better. Maybe. Implement it or fork it for yourself and come back. See the Suggestions section to make sure it's not a bunch of nonsense. This script has a small scope and I don't care to expand it beyond my personal needs.
I'm sick of getting redirected to this site again and again!! Search and remove it from the list in the code. Post a suggestion if you think that instance sucks and should be removed for everyone. If you know which instance you always want to go to, remove all but one.
I hate the link style . Why?
Know where your link is going visually by taking a highlighter to it, or change the styling yourself. The browser may not update its status bar to reflect changes to the link destination. Strong styling on the anchor element and its children means that proxified links are usually obvious even if they aren't simple text links.
I like the link style , but they're missing?
Check the developer console for your browser to see if the inline stylesheet is blocked by the page's Content-Security-Policy. Feel free to report these occurrences if they are frequent. I might change the styling to suit all CSP or at least have a visible fallback.
Why are X and Z the modifier keys? This can be configured to your preferred key at the top of the code. Control or Alt may already be used for click or keyboard navigation, depending on OS.
Is keyboard navigation supported? Yes. If you have an issue, consider it a bug and report it.
This shi is laggy. I kind of tried to keep things light, but consider it a bug and report it. Meanwhile, you can exclude this script on specific sites in your userscript manager. There are also several const
knobs you can tweak in the code or you can post a fix if you have the knowhow.
I'm troubleshooting or debugging. Onramp me? Enable the DEBUG
flag and look for any errors in the dev console. Functions are likely to change names or refactored, but you can step in starting from the handleElement()
function on hover/navigation to any element. The event target element will be handled directly as an anchor, but will also be treated as a potential child element wrapped by an anchor by looking up at its ancestors or querying other hovered elements.
This readme or the code comments suuuck. They were written to document alongside the code. I'll take suggestions in mind and update and refactor things when I feel like it.
This thing is totally broken?? See the Suggestions section before reporting a bug. When this thing is verifiably not totally broken, it'll totally get promoted to v1.0.