A couple of weeks ago, @shazbot made this post about a project that they were working on. Since then, @shazbot, @ori, @minnieo and I have been hard at work, and we are excited to finally announce the official release of kbin Enhancement Suite (KES)!

kbin has seen an explosion of user-made add-ons, but keeping track of them in one place, letting them share settings with one another, and toggling them on and off can be a challenge. KES is an expandable add-on manager that aims to rectify this by providing a unified interface and framework for script makers to collaborate, and letting you use them all in one place.

KES brings together userscripts from the community, with a built-in settings menu that lets you tailor your experience to your liking. It also offers a flexible framework that empowers script authors to effortlessly integrate scripts into KES and set up custom input fields with no additional code.

KES gives you a single window onto a collection of enhancements that is growing by the day. And those features can be added to by you!

The KES settings menu

What the feed looks like with everything enabled

The comments with everything turned on

Features

We’ve focused on making customizing your kbin experience as easy as possible, whether you are on mobile or desktop. After we sort out the bug reports from this release, we plan on adding many more features! Here’s what we have so far:

  • Collapsible comments with nesting (by @artillect)
  • Use slash commands to add emoticons in text areas (by @minnieo)
  • Add syntax highlighting (with customizable themes) to code blocks (by @ori)
  • Show instance names next to non-local users and communities (by @artillect)
  • Add a link to message users on your instance next to their usernames (by @shazbot)
  • Hide upvote/downvote buttons and reputation (by @artillect)
  • Show more detailed timestamps on threads and comments (by @shazbot)
  • Hide thumbnails on threads (by @shazbot)
  • Add link to subscribed magazines to the navbar (by @shazbot)
  • Replace or hide the kbin logo in the navbar (by @shazbot)
  • Add “OP” label next to thread author’s username in comments (by @shazbot)
  • Convert navigation links on profile pages into a dropdown (by @shazbot)

Each of these can be toggled in the settings menu, and some of them have additional configuration options, such as setting custom labels, colors, etc.

New features are added on a rolling basis and the menu pages will update on the fly to reflect this new content.

Installation

Click here to install KES, and follow your userscript manager’s prompt to complete the installation.

If you don’t have a userscript management extension, you can install one of these, and then install KES using the link above:

Once KES is successfully installed, access the settings menu by clicking on the wrench icon located at the top-right corner next to your username. From there, you can enable the features you like, and customize your browsing experience.

More information

For bug reports and feature requests, visit our GitHub repository’s issues page. If you have any questions or need assistance, don’t hesitate to ask here or make a post on /m/enhancement!

Developers

If you are a userscript author, we’d love it if you could try porting your userscripts into KES, or try writing completely new ones for it! @shazbot has made it easy to integrate your scripts: you just need to add your script’s information to manifest.json, make a few small modifications to your script, add it all to the GitHub repository, and you’re good to go!

KES benefits:

  • Turnkey integration: a simple, declarative framework for dynamically adding features to the UI without touching the underlying code
  • Sharing of user-defined settings through script namespaces: access your script settings, and those from other scripts, through a well-defined object
  • Automatically responds to infinite scroll and page reload events
  • Attribution of script authors
  • Easily toggle scripts on/off

Explore KES’s documentation here to get started. If you have any questions, feel free to reach out here, on /m/enhancement, or at our GitHub repository.

11 points

Very cool. I hope that some of these nice features will eventually be upstreamed/ported to vanilla Kbin, but it’s great to already have a strong community of add-ons. Keep up the great work!

permalink
report
reply
5 points

Ernest is definitely aware of some of these (he’s been spying on us over at @kbinStyles lol), it’d be great to have them be built in! I love that we’ve got so many people making mods for kbin, it allows you to make things at a super quick pace

permalink
report
parent
reply
11 points

I appreciate the effort, but am curious as to why this is needed in an open source project. I would much prefer these types of things be part of the default experience instead of a third party solution. Is this just my own ignorance showing? Is there a reason to handle this with a third party tool instead of a pull request in the kbin code?

RES was needed because reddit went closed source and didn’t prioritize the things people wanted.

Please don’t take my comment as being ungrateful for the great work you’ve done. It’s just an idle question that will probably serve only to demonstrate how little I know. haha

permalink
report
reply
16 points

Honestly, it’s a great question! While kbin is open source, making userscripts allows you to iterate on changes and get updates out very quickly. It’s also much easier to start making userscripts than it is to contribute directly to the project, since you only really need to be familiar with JS, HTML, and CSS. To contribute to kbin, you need to be familiar with PHP and Twig, and set up your own instance for testing your changes.

Plus, while kbin is open source, not every single change will be merged, and there will likely always be features “missing” from it. Userscripts also give you a ton of freedom and flexibility in how you use sites, so you could make crazy changes that aren’t remotely possible to merge into it.

Hope that answers your questions!

permalink
report
parent
reply
4 points

It does, thank you.

permalink
report
parent
reply
4 points

this is a fantastic answer ★

permalink
report
parent
reply
2 points

I’ll also add, from the POV of a kbin contributor (not writing code, but triaging issues, answering questions, opening a lot of tickets, etc) that it makes sense to have user scripts to add some settings that are like…too much.

For example, I proposed that we have a preference for “delay before the user profile popover shows” and the user can enter a time between 0ms and 15 seconds. It was decided this is too much customization to have built in, and maybe we can do “off,” “slow,” and “fast.” But this seems like a great thing for a project like KES (though i love the suggestion to call it KEK) to add and overwrite, for power users.

^^^^^^^^^^^^^^^^^ note all of this is unofficial and not the opinion of /kbin the project. It’s my own personal opinion, and just educated from having seen both sides of the discussion.

permalink
report
parent
reply
4 points

I think the analogy is akin to hotrodding. Some third party modifications may make their way back to the original manufacturer, but there is always a desire/need among enthusiasts for more outlandish proposals that may not align with the vision of the original maker. Particularly when they involve subjective aesthetic details. If anything, the open-source ecosystem has shown itself to be robust to fragmentation, with 19,000 ways of solving the same problem that are generally interoperable with each other, so I don’t think it’s a bad thing per se, but rather a strength.

permalink
report
parent
reply
2 points

Yeah. I guess my concern (perhaps unfounded) is that changes won’t get pushed to the software because there is no presumed need since “the user can already do this with a user script”.

permalink
report
parent
reply
3 points

i wouldn’t worry about that. if anything, userscripts only give ernest and his team the time to focus on more important issues that make sure the site runs properly and quickly, which in turn gets them done faster, so they can get to QOL improvements later on based on our ideas.

permalink
report
parent
reply
3 points

I don’t think that’s ever proven to be the case, sounds more like something cynical that Reddit would do. If it were me, I’d rather focus on actual structural, backend improvements than entertaining the whims of users who want rainbow-colored buttons or dancing emoji. We are talking about utterly trivial changes here like nudging an element here or recoloring an element there. Individually, they are rather pointless, but in aggregate, it can be helpful for a user to dial things in to their liking via a centralized HUD. I still mod every site, game, and every piece of software I use to my liking, that’s just the nature of the beast IMO. Incidentally, I think the owner of the site has been fairly encouraging and accommodating towards our cottage industry of modders!

permalink
report
parent
reply
10 points
*

Fantastic project and fantastic work.

For what it’s worth I’d love to see the following userscripts ported to KES:

  • Better Navigation Page - makes the page number at the bottom more readable
  • Kbin Notifications Panel - adds a notification panel to the navigation bar
  • Kbin Subscriptions Panel - adds a collapsible, filterable side panel with a list of all magazine subscriptions (KES has an “Add subs to navbar” option, but the subscriptions panel is a more sophisticated and user-friendly alternative)

I’m still running these three scripts in addition to KES, but if they were ported to KES it would make managing them easier (via a common interface for options) and reduce the potential for conflicts.

For example, running Kbin Subscriptions Panel a well as KES produces this visual glitch in the navbar, where the icons get mixed up:

permalink
report
reply
4 points

notifications panel i’d love to see especially, that has been so useful! i hope @blobcat considers inserting their script (´꒳`)

permalink
report
parent
reply
2 points

Would love to! I’m trying to figure out how, I’ve never used git much and I’m still really new to doing anything JS related (ㅠ﹏ㅠ)

permalink
report
parent
reply
2 points
*

Kbin Notification Panel for sure, it’s SO much better than the vanilla notifications.

I’d like to see @raltsm4k 's Floating Subs List make the cut instead of that Subscription Panel though. Its the same functionally, just more aesthetically pleasing.

permalink
report
parent
reply
2 points

The author of the notification panel has submitted their script for inclusion and it is ready to be integrated after the next version bump.

permalink
report
parent
reply
1 point

Phenomenal news!

permalink
report
parent
reply
2 points

Why not both? ((eyebrows))

permalink
report
parent
reply
1 point

Both is good!

permalink
report
parent
reply
1 point

i also prefer this, i even made a customizable userstyle for it

permalink
report
parent
reply
2 points

Thanks, this is noted, and it seems eminently doable. Is there a particular add-on that is enabled that causes this glitch?

permalink
report
parent
reply
1 point

Thanks @shazbot !

Not that I’ve been able to identify after toggling various options KES on and off.

The visual glitch also appears if I disable the Notifications Panel and Better Page Navigation scripts, so it seems to be something in the interaction between KES and Subscriptions Panel.

If it makes a difference, I use Firefox on Windows with Tampermonkey.

permalink
report
parent
reply
2 points

Thanks, I’ve made a stub for it here if you wish to track its progress.

permalink
report
parent
reply
7 points

Collapsing comments is really smooth and the tap anywhere to collapse is something I didn’t knew I needed. Good job, thank you!

permalink
report
reply
4 points

Thanks! I worked really hard on that before working on KES, and it was super easy to integrate my script into it

permalink
report
parent
reply
2 points
*

vger.app web app for Lemmy is annoyingly stuttery when collapsing comments, this is much better!

I’m hoping there will eventually be a kbin update or userscript that allows you to change the text size of comments separately from the rest of the site. The text is too small for me.

permalink
report
parent
reply
2 points

I’m hoping there will eventually be kbin update or userscript that allows you to change the text size of comments separately from the rest of the site.

That should actually be somewhat easy to do, I just created an issue for it on GitHub. I’m gonna be busy the next few days so I won’t be able to work on it until later, but maybe someone else will beat me to it!

permalink
report
parent
reply
5 points

I would have called it Kbin Enhancement Kit (KEK)

permalink
report
reply

/kbin meta

!kbinMeta@kbin.social

Create post

Magazine dedicated to discussions about the kbin itself. Provide feedback, ask questions, suggest improvements, and engage in conversations related to the platform organization, policies, features, and community dynamics. ---- * Roadmap 2023 * m/kbinDevlog * m/kbinDesign

Community stats

  • 1

    Monthly active users

  • 653

    Posts

  • 5.5K

    Comments

Community moderators