I’ve been working on 1.4.20 for the last couple of weeks. Was originally going to release it last week, but feature creep has gotten hold of it.

There are also a lot of minor bugfixes (and one major one), but those will be covered in the release notes. For now, here’s a list of the new stuff that’s either ready, going through final testing, and/or is being wrapped up:

Hybrid View Mode

Rather than a binary choice of “card” or “compact”, hybrid view will let you set a list of post types (image, video, article, etc) that you want to render as cards while displaying everything else as compact.

This is useful to let memes and articles co-exist without having to expand every meme image manually.

It also has an option to keep read posts compact that would otherwise expand.

More details will be provided in the release notes.

Post Rendering Updates and General UI Polishes

Both card and compact views have gotten refreshes.

  • Post action menus have been moved to the top of the post

  • All posts except text posts can now be individually toggled between compact and card view regardless of what the View setting is set to. Before, only compact posts could be expanded/collapsed.

  • Community link pill buttons are now gray instead of orange. The orange was just…too much. User link buttons are still blue.

  • Better display of metadata from posted links

  • Cleaner compact view (also incorporates metadata display better)

  • Feed images are limited to a maximum of 40% viewport height. This still gives the nice “card” effect while also not making posts massive. They were formerly limited to 80vh, but even this is no longer needed since the ZoomableImage component was integrated.

  • Removed user settings for post and feed image sizes since they’re no longer needed with the new compact and card view tweaks described above.

  • Post body images are now hidden in the feed and a link shown in their place. Clicking the link will open them in a preview modal. Unless the option to disable inline images is turned on, then they will still show as embeds when opening the post. This should help compact mode stay compact rather than some of them being massive with one or more post body images slipping through.

  • Direct video (mp4, webm, etc) posts now use the video metadata for the thumbnail if OP didn’t post a custom one. Also works in compact view now.

  • Bandcamp embeds are now smaller.

  • All media renderers now show the embed metadata alongside the post details.

  • Direct audio links (MP3, etc) now have renderers; they only rendered in the markdown post body and comments previously. Now if the post URL is an audio link, a player will embed.

  • Show link selector, link, and MBFC even if metadata fails to load in preview modal. Also show that info while fetching metadata.

Post Form Now Automatically Searches for Crossposts and Duplicates in the Community

When you are creating a post, the URL will be searched to see if you’re posting something that’s already been posted. It should do this automatically when the URL field changes or the URL is set and the community changes. The behavior is slightly different depending on if a community is defined:

  1. If the community is not set, then it will search for any posts on your instance matching that URL. The label will be “Crossposts”.

  2. If the community is set, then it will do a remote API call to search the home instance of that community for any posts to that community with that URL. The label will be "Existing posts in {community}@{instance}.

The latter behavior is particularly useful if you want to avoid accidentally posting a duplicate that may have been posted by someone you’ve blocked or by someone your instance doesn’t federate with. Those posts may not be visible to you locally, so the remote search should help identify them so you don’t clutter up the feed and/or add extra work for the moderator who usually removes duplicate posts.

If for whatever reason it doesn’t trigger automatically, the “Magnifying Glass” icon to the right of the URL field can trigger the search manually.

Also note that behavior #2 only works if you’re posting to a Lemmy community since it makes a remote API call to the community’s home instance using the Lemmy API. Thus, it cannot search a remote Kbin/Piefed, etc instance.

Can Now Vote on Crossposts

Vote buttons have been added to the crosspost items, so you can now vote on them from the feed and post without having to click directly into them. Let’s show original OP some love :)

Moderation Menu Has Been Replaced With New Moderation Modal

The moderation menu on posts and comments has been removed. The reason is that the menus were getting cluttered when new things are added, especially for admins who have more options available than regular mods. Rather than creating sub-menus (yuck!) or introducing separate UI elements for admin controls, I’ve just scrapped the whole thing and started over.

The “mod” button will now open a modal containing all the mod tools that are appropriate for the item.

The cool thing about the new mod modal is that all of the tools are packaged into it. It doesn’t open separate modals for banning/unbanning, removing/restoring, etc. It even has the community details available so that mods can reference the rules when issuing actions without leaving the item they’re working with.

Current Capabilities and Features

  • A mini-banner heading showing the current community with its icon and the creator of the item and their avatar/info.
    • Both communtiy and user are clickable to bring up their respective profile modals to get more info (these pop up in separate modals and aren’t integrated into the mod modal)
  • Pin/Unpin the post to the community
  • Feature/Unfeature the post on the instance (admins only)
  • Lock/Unlock the post
  • View the community details/sidebar info relevant to the current item (post or comment)
  • View the votes for the item (admins only until whatever version of Lemmy lets mods do this for their communities)
  • Remove/Restore the post or comment (shows the post meta header or the comment meta header and comment previews)
  • Purge the post or comment (admin only)
  • Ban/Unban the user from the community
  • Ban/Unban the user from the instance (admins only)
  • Distinguish/undistinguish mod comments
  • View the user’s modlog history
    • Defaults to their history in the community relevant to the current item
    • Can toggle between their modlog history in the community and their full modlog history
    • Also has link to the full modlog viewer filtered for that user.
  • Remove/Restore the community (admin only)
  • Hide/Un-hide the community (admin only)

All tools stay within the same modal, and it shrinks/expands to accommodate the various integrated tools.

Piped/Invidious Support Changes

Since YouTube has gone to war against alternate frontends (and is sadly winning), most public instances no longer work. However, I believe that private/small instances may still function as expected.

Since the public instances are pretty much all broken or only partially working, Invidious/Piped support has been modified to only be enabled if the user supplies their own instance.

The distinction between Invidious and Piped has also been removed since the link formats are interchangeable. Now, in Settings, the YT frontend has been changed to just “YouTube” and “Custom”. The custom instance list can contain Invidious and/or Piped instances.

The alternate link selector for YouTube videos will now also only show “Invidious/Piped” option if you have defined at least one.

As before, multiple custom instances can be defined but one will need to be selected as the default. That one will be used for the alternate source selector and, optionally/separately, as the embed player.

Note: You can keep YouTube as the default embed player while also adding a custom Invidious/Piped instance to act as alternate links in the alternate source link menu.

The internal lists of public Invidious and Piped instances has been combined and are only used for detection; formerly, these could be selected as frontends.