this post was submitted on 14 Jun 2023
14 points (93.8% liked)

Lemmy Plugins and Userscripts

2175 readers
1 users here now

A general repository for user scripts and plugins used to enhance the Lemmy browsing experience.

Post (or cross-post) your favorite Lemmy enhancements here!

General posting suggestions:

Thanks!

founded 1 year ago
MODERATORS
 

Edit: @[email protected] has designed a better solution using only CSS, and this should be used instead of the old script! If you're reading this page for the first time, ignore this message.

This userstyle adds a red heart next to people that are from your home server, and any other servers that you manually define. Spot your server buddies out in the wild!

Instructions:

  1. Install Stylus extension for firefox/chrome

  2. "Write new style" in the addon settings

  3. Copy paste the CSS code below in

  4. Modify the code around line ~11 in order to reflect your homeserver and any additional frendservers that you want to highlight

  5. Modify the code around line ~19 to reflect your homeserver

  6. (Optional) If you’d like your homeserver buddies to have a different marker, uncomment the various sections around line ~27 through ~50 by removing the /* and */ bits

  7. (Optional) Play around with different markers and colors!

CSS/Userstyle: https://gist.github.com/redyoshi49q/f1b2d1da0a8f7536aba1f8c3110d2dd8

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 1 year ago (2 children)

You just need to rewrite it so the first part matches your homeserver I think.

There are many url schemes that potential usernames can show up on, e.g. /c/, /post/, /comment/, /u/, and worst of all, any top level site like https://pawb.social/ or https://google.com/ could be a lemmy front-page with usernames on it. Instead of running the userscript on every website you visit and then checking if we were on lemmy afterwards, I thought it was just easier to only run on your personal homeserver, which is where you should generally always be anyway (if I understand lemmy UX correctly)

[–] mershed_perderders 3 points 1 year ago

yeah, that makes sense.

[–] god 2 points 1 year ago (1 children)

The way I've done mine is to detect universally if it's a lemmy instance, and if it is, run. Otherwise just return.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (1 children)

Yeah, that's definitely an option, but then the script will have to check on every website you visit. Practically it's not a problem but it feels a little weird. If there's a good reason to run this script on foreign lemmy servers it's not a problem to change to that style, but for right now I didn't see a reason to make it global.

[–] god 1 points 1 year ago (1 children)

when i install it i'll just make it run globally, i see no reason why not x) i'm always visiting all the instances anyway cuz it's better that way for now until better fedtools come out

[–] [email protected] 3 points 1 year ago (1 children)

I've made some updates to this script and fixed a bug - was not expecting the way that lemmy lazy-loads stuff later in the page lifespan. Now it works globally and the internals are set up to handle that properly.

https://greasyfork.org/en/scripts/468689-frend-detector-lemmy

[–] god 1 points 1 year ago (1 children)

i'm trying it out and it doesn't seem to do anything, at least here

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (1 children)

Did you edit the variables at the top of the script? It no longer assumes your homeserver, since it works globally.

I put in sh.itjust.works as the homeserver and this is the view from sh.itjust.works server:

and this is the view from pawb.social side (identical):

Edit: Also, at least in my experience I had to refresh old pages once or twice before the new script would start working. Try a few new tabs and see if that fixes it.

[–] god 2 points 1 year ago* (last edited 1 year ago) (1 children)
  1. i had to edit many things, and then in the end i realized it wasn't running bc the top @match did not match sh.itjust.works. in the end i'm using https://**/*, idk what that does but it matches.
  2. I excluded myself from the hearts. If you also don't wanna add hearts to yourself because, well, you already know you are from your server, then you can add this to the line:
const yourUsername = "username goes here"
if ((fromHomeServer || endsWithFrendServer) && username.href.split('/u/')[1] !== yourUsername)
[–] [email protected] 1 points 1 year ago (1 children)

weird. the screenshots I took were with the normal match - I'm using violentmonkey so maybe they have different match behavior? Does https://*/* work? I may just change the default to that if it doesn't matter either way

[–] god 2 points 1 year ago* (last edited 1 year ago)

hmmm seems to work now?? idk what happened before. (using https://*/*)