Even something as simple as a uBlock Origin static filter like this will work:
!!! Asshole maintains lists of people like he's a god https://news.ycombinator.com/item?id=33365189
news.ycombinator.com##.default:has(.hnuser[href$="=Arnavion"]) .comment > .commtext:style(color: #f6f6ef !important)
That makes it so all comments by user Arnavion are colored with the default background color that HN uses, and are thus invisible. You'll be able to see the text if you really want to by selecting it, but resist the urge. The `!!!` line will remind you why you blocked them if you ever decide to relent / trim your list later.You'll also need:
news.ycombinator.com##.commtext a:style(color: inherit !important)
... to hide links in those hidden comments.Apart from that, I recommend having showdead on because I've seen good comments get flagged just because they went against the groupthink of the timezone that happened to be on lunch at that moment, but that'll also display banned users, so you'll need:
news.ycombinator.com##^.comtr:has(.comhead:has-text([banned]))
... to hide them again.Edit to reply to notrealhnuser's dead comment:
>A lot easier with a user script where the names are an array rather than selector per user as you've shown.
Yes, I wrote one such extension in https://gist.github.com/Arnavion/a6d68f5e1071ab3fa23fc614c66... I don't use this myself any more since I already have uBO. Adding new entries isn't really a hassle since I just start by copy-pasting an existing one. But any option that you find convenient is fine.
>Also I suggest `display:none` on the entire comment, username, etc.
The problem is that HN does not lay out comment trees in nested HTML elements but as a flat list. So hiding a comment with `display: none` leaves its replies still visible, giving the impression that they're replying to the previous visible comment.
But yes, if you're doing something dynamic with userscripts as you suggested, you could indeed write JS to detect all the nested replies and hide them too.