A userscript-based client mod for Bluesky
0

Configure Feed

Select the types of activity you want to include in your feed.

28 1 0

Clone this repository

https://git.vm.fail/rini.tngl.sh/UserSky https://git.vm.fail/did:plc:baemi2ez7njhoei57u7os6iu
ssh://git@knot1.tangled.sh:2222/rini.tngl.sh/UserSky ssh://git@knot1.tangled.sh:2222/did:plc:baemi2ez7njhoei57u7os6iu

For self-hosted knots, clone URLs may differ based on your setup.


README.md

UserSky#

A userscript-based client mod for Bluesky.

But why?#

I just can't be bothered to use custom clients or social-app forks. I am used to accessing bsky.app on my phone and computer and I don't really care about installing an App. But sometimes vanilla Bluesky is annoying. So, this serves as a way for me or anyone masochistic enough to look at minified code of an already open-source project to change just about anything in the web client.

The pitch is you install the userscript and you or anyone (please let me know if you make plugins!) can make other userscripts which add patches:

// ==UserScript==
// @name    My UserSky Plugin
// @author  Linus Torvalds
// @match   https://bsky.app/*
// @grant   none
// ==/UserScript==

const { declarePlugin, re } = UserSky;

declarePlugin({
    name: "MyPlugin",
    patches: [{
        find: ["UserAvatar:()=>", "usePlainRNImage:"], // src/view/com/util/UserAvatar.tsx
        replacement: {
            match: re`(?g)\i??("user"===\i?"circle":"square")`,
            // or plain regex.. note re`(?g)foo` == /foo/g
            match: /\w+\?\?\("user"===\w+\?"circle"\:"square"\)/g,
            replace: '"square"',
        },
    }],
})