#userscripts

2025-04-03

If you happen to use #Narwhal as your #reddit client of choice, I made a little something if your iOS browser can load #UserScripts.

[UserScript] Reddit links to Narwhal

#narwhalapp #ios #userScript #greaseMonkey #tamperMonley #violentMonkey #OrionBrowser

はぬべき⁂hanubeki@fedibird.com
2024-12-18

Android版Microsoft Edge :MS_edge: ってTampermonkey入れられるようになってるんだ、スマホのウェブサイトでUserScriptsを使う場面あんまりないけど

#MSEdge #UserScripts

2024-11-23

He estado experimentando (finalmente!) con #userscripts en #ios.
Por el momento estoy usando #STAY for Safari (apps.apple.com/mx/app/stay-for), pero hay más en la lista de pruebas (tampermonkey, entre ellas). El #userscript de #Pagetual ha sido muy interesante de usar.

2024-11-21

I feel like the more time I spend in #jira, the more #userscripts I land up needing to make it work in some sensible way. All of which could easily be solved by some user (and I mean user, not project admin) preferences.

Ciourte Piailleciourte@piaille.fr
2024-06-20

#FireMonkey est une #extension qui permet d'écrire ou de trouver des #userscripts (en #JavaScript) et #userstyles (en #CSS) pour modifier le comportement et l'apparence de sites web dans #Firefox sans avoir besoin de nombreuses extensions pour ça.
Contrairement à la plupart des extensions existantes comme #GreaseMonkey, #Tampermonkey ou #ViolentMonkey, celle-ci utilise l'API #WebExtension Userscripts ajoutée à Firefox en 2019. En conséquence, elle est plus légère et plus sécurisée, puisque les scripts sont isolés dans leurs bacs à sable, mais n'est disponible que pour Firefox, cette API n'étant pas implémentée par Chrome ou autres.

addons.mozilla.org/fr/firefox/

𝕵𝖔𝖍𝖆𝖓 ⛧johan@qoto.org
2024-02-25

@stefan #Mastodon has clear enough web interface code that it can be extended with #userscripts. You can make yourself such a plugin.

[⤴️ https://octospacc.altervista.org/2024/02/01/emmebi-telegrammico/]

L’ultimissimo miglioramento che ho in ogni caso poi fatto ad #MBViewer è stato l’aggiunta di una funzione per importare codice #CSS e #JavaScript, per modificare come i post possono essere visualizzati. Entrambi funzionano allo stesso modo, con i relativi parametri URL che accettano sia #URL esterni che data URI. Niente di particolare per gli stili, semplicemente importo nella pagina la qualunque cosa venga data lì, ma per gli #userscripts è stato leggermente più #complicato. 😕️

Il punto sta nel voler evitare che #script essenzialmente non affidabili siano iniettati nel contesto della pagina semplicemente da URL, perché potrebbero fare tante cosine cattive; prima fra tutte, rubare #dati dall’archiviazione del #browser del mio dominio, cosa che è un #problema, perché gli utenti inesperti che aprono la app da #link non andranno a cercare di investigare cosa accade dietro le quinte (e, molto probabilmente, non lo farei realisticamente nemmeno io, seguendo la logica del “i miei siti sono miei e li conosco, sui siti altrui ho le protezioni del browser attive“). E quindi inizio a scendere in un rabbithole… ☠️

  • #Iframe? Hmm… non so, non è il caso, sarebbero insicuri, ci sono alcuni modi in cui una pagina in frame può fare robe fastidiose. Non può essere assolutamente un’idea, proprio mai (foreshadowing). 🪟️
  • Trovo un bel po’ di #librerie vecchie che ricompilano codice #JS per rimuovere pericoli, o lo analizzano preventivamente per la presenza di operazioni dannose così che possa non essere mai eseguito… praticamente tutte abbandonate, qualcuna esplicitamente dichiarata insicura e non patchata, e per qualcun’altra lo possiamo dare per scontato. 🐛️
  • Forse questa libreria più recente, jailed, che sfrutta un iframe assieme ad un Web Worker per creare una sandbox forte e bloccare tutte le #API eccetto alcune che si decidono… No, l’ho provata e non va bene, non si riescono a passare alla sandbox oggetti complessi, tra cui i costruttori, è impossibile far funzionare API tipo quella del DOM. 🚧️
    • Sarebbe stata un’idea usare qualche reimplementazione del #DOM per NodeJS tramite browserify, tipo Cheerio, ma farla anche solo girare lì dentro è un altro casino allucinante. 🥴️
  • WASM tecnicamente è una #sandbox a sua volta, e non accede alle API del browser se non con codice colla, quindi magari… teoricamente ok, ma nella pratica non ho trovato nessuna soluzione già bella e pronta che potessi usare per questo specifico scopo. 🕳️
  • La #pazzia: PyScript… sarebbe quasi già pronto, ma avrei dovuto comunque modificarlo per bloccare tutte le API insicure (rimuovere #codice), e poi richiede 15+ MB di dipendenze di runtime… non ideale. 🗿️

Alla fine ci ho pensato meglio, e sono arrivata alla conclusione che è abbastanza sicuro far girare gli script in un iframe con proprietà src="data:[...]" e sandbox="allow-scripts" (che significa, “blocca tutte le proprietà sensibili eccetto gli script”)… voglio dire, nel visualizzare il contenuto dei siti, già permetto eventuali iframe provenienti dai post, e quelli teoricamente possono già fare quello che vogliono eccetto accedere ai dati della finestra root. Nella pratica, i programmini degli utenti quindi hanno accesso a (quasi) l’intera API JavaScript senza poter fare cose bruttissime. 🎉️

Ecco un esempio di tutto, alla fine: questo URL carica il mio MicroBlog, importa un foglio di #stile che mette questo font buffo, e uno script che colora le parole dei #messaggi in base a come si ripetono man mano (inutile, ma serve giusto per dare idea delle potenzialità)… https://hub.octt.eu.org/MBViewer/#/siteUrl=https://octospacc.altervista.org|platform=wordpress.org|includeStyle=[...]|includeScript=[...] (il link con tutta quella roba messa inline è una stringa di quasi 1 KB!). Userò tutta la cosa per rendere gli hashtag nel testo meno intrusivi per il mio sito anche lì, oltre che sul dominio originale. 👋️

Finisco con dati ancora più tecnici, per chi non ha una vita: con questo #design, ogni #userscript deve provvedere ad esporre una funzione che, tramite la Channel Messaging API, viene richiamata dalla #app per ogni messaggio appena questo viene aggiunto al documento visibile; questa funzione riceve dati utili (per ora, solo l’HTML del contenuto; oltre a dati come l’id del messaggio nel flusso, che non sono granché utili all’utente ma devono essere restituiti alla app) e può rimandare nuovi dati indietro richiamando una funzione che è invece l’applicazione ad esporre allo script. Tutto questo ambaradan permetterebbe agli script di effettuare anche operazioni asincrone, comunque, non per forza di dover agire immediatamente alla chiamata. 🤓️

https://octospacc.altervista.org/2024/02/01/emmebi-javascriptico/

#API #app #browser #codice #complicato #CSS #dati #design #DOM #JavaScript #JS #librerie #link #MBViewer #messaggi #pazzia #problema #sandbox #script #stile #URL #userscript #userscripts

2023-12-22

I've created a userscript that loads sp.css if <head> has no defined styles. I hoped that this improve appearance of some HTML docs generated by man2html and texi2html. And it does, e. g. for /usr/share/doc/bash/bash.html on my system or termutils

#userscript #userscripts #texinfo

original tput html documentationtput html documentation with sp.css loaded
pink :gts: :bb8: :pl:pink@menoize.nohost.me
2023-10-26

#Tampermonkey saved me from YouTube ads

You should try it!

#Userscripts

Home | Tampermonkey
https://www.tampermonkey.net/index.php?browser=chrome&locale=en

2023-09-18

so is nobody gonna point out how js bundlers and fucked up web #frontEnd tooling is slowly killing #webExtensions and #userScripts by making custom code injection a pain in the ass?

i mean, this is all the same people who'd love for the likes of
#adBlockers to also not work so it's probably a Feature for them but still

just waiting for the day they somehow manage to fuck up css injection. we can still work our way around auto generated css-in-js class names and complex selectors. shadow dom, perhaps?

TribesmanJohn 🇦🇺🌏👨🏼‍💻📷bcshort@aus.social
2023-08-29

TIL a userscript extension is available for Safari on iPad/iPhone.

One of the big things I was missing between desktop and mobile device browsers was the ability to run tampermonkey-like scripts, and now I can :) It also means I can remove some apps that have a better web browser + userscript experience than their actual apps (yes, looking at you #twitch)

apps.apple.com/au/app/userscri

#browsers #userscripts #ipad #iphone

2023-08-19

For those of you with clumsy left pinkies:

greasyfork.org/scripts/57383-c

Defaults to Shift-F3 hotkey, which apparently is the same in Word. I wonder where else it's valid that I'm not aware of.

#CapsLock #UserScripts

2023-07-26

It was #GreaseMonkey for the win. Not the friendliest of UIs but did the job very nicely.

greasespot.net/

#UserScripts #AugmentedBrowsing #OpenWeb

Antonio Buenoatnbueno
2023-07-23

@czottmann @thomasfuchs I do that kind of things with , files in Firefox’s profile, and some command line tools (and/or , lately). Not easy, but no more difficult than assembling an AppleScript incantation from zero 😂

2023-07-13

@dalias #Userscripts to patch the function responsible for that, maybe?

2023-05-27

Before I start tinkering with adding a Site Health check to PLU Redux, I got a wild hair and made a userscript to hide the welcome box on `make.wordpress.org` sites:

raw.githubusercontent.com/boog

P.S. If you don't have any extensions installed that can handle userscripts, Greasy Fork has a good set of resources for both desktop and mobile.

greasyfork.org/en

#WordPress #Userscripts

wakest ⁂liaizon@wake.st
2022-11-25

and while we're at at this one by @kirakiratter could probably use updating too cause its so godawful tacky that its great

userstyles.org/styles/141350/k #userscripts

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst