Giter VIP home page Giter VIP logo

bluesky-overhaul's Introduction

Bluesky Overhaul

Chrome Web Store Mozilla Add-on

ENS Liberapay Patreon

This is a small extension for Chrome (and partially Firefox) that adds some nice and handy functionality to Bluesky, the greatest media platform of all time.

Right now (as of December 2023), the app is invite-only and the web app is running at bsky.app (you may find yours truly at @blisstweeting.xyz).

Table of contents

Features

Implemented features are listed here. For the planned ones, see Issues. Also, some new ideas may appear in this Bluesky thread (login required). You can also create an issue if you have a feature request.

Auto quote-posting

When you paste a link to someone's post:

  • removes "staging." from the URL
  • clicks the "Add link card" button for you
  • only works if the URL is at the end of the pasted text
  • you can remove the link from the text after the card is loaded

YouTube embeds in feed, profile, and post pages

YouTube player now appears beside YouTube links on some pages (not in search results yet).

img.png

Vim keybindings

You can now use j and k to traverse posts, l to like, and ? to look up the list of all keybindings. (There are 11 or more different actions configured, depending on the extension version.)

Hide followers, following, and posts counts from profiles

Pretty self-explanatory!

Settings popup

You can now change some settings in the extension popup window. You can also disable the extension from that popup if something is buggy, and it will turn back on when the next version is released.

Popovers with precise time for post links

When you hover over a link to a post, you'll see a popover with the exact time of the post.

Development

Local build

npm install
npm run build:dev

Development guide

Unsorted temporary notes about how to approach development:

  1. If you want to implement a feature, please:
    • Add an issue to the Issues section if it's not there already.
    • Discuss it with Phil and draft an approximate plan.
    • Assign it to yourself.
    • Implement and test it.
      • It should pass the eslint checks.
    • Create a pull request.
  2. Please, make sure to run the pre-commit hook.
    • Soon, I'll add a CI pipeline that will run it on GitHub.
  3. So far, there are two major abstractions for any behavior: Watcher and Pipeline:
    • Watchers wait for events globally and react to those.
    • Pipelines are deployed and terminated for specific DOM elements.
    • If you need a new abstraction, please discuss it with Phil first.
  4. Finding elements in the DOM is a mess right now. It's on my personal vendetta refactoring list.
    • Some of it happens in the elementsFinder.js file (because it's needed in more than one place) and some of it does not. I'll probably put everything into that one file, but I have to organize it better.

bluesky-overhaul's People

Contributors

aliceisjustplaying avatar foxydevloper avatar xenohunter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

bluesky-overhaul's Issues

Remove a specific notification

Probably impossible to do that for all types of notifications but may be realistic to store some kind of ID and match that.

bad ux on dark mode

i prefer to use dark mode and there are two things i have issues with:

  1. the emoji button in new posts is always black so you can't see it in dark mode.
  2. you can't see what skeet you have focused with vim keybinds if you have dark mode on.

Show a posts exact date and time

I would like to request a feature where one can hover on the relative date/time and it shows the exact time of posting.

Also, do you accept PRs? I might work on this myself if I can find some time ๐Ÿ˜€

advanced search

I'm working on adding some advanced search keywords inspired by Twitter search ("from:" and "follows:" to start)

Improve Vim keybinding UX and fix minor bugs

Features and fixes to be implemented:

  • traverse thread delimiters (moving with arrows or j and k gets stuck upon reaching a "View full thread" element)
  • press Esc to unfocus post
  • use arrows to choose how to repost (simple repost or quote post) + Esc to cancel the choice modal
  • use Tab and side arrows to switch between tabs on main ("Following" and "What's hot")
  • mute threads and accounts from keyboard
  • pause Vim keybindings when any modal appears (including "show help")
  • remove the browser focus outline and make Enter work again

YouTube previews

Add the YouTube embedded player on the post page if it contains a link to a YouTube video. (Adding it to the timeline is more complicated because inserting and removing of elements is needed to avoid memory leaks, so that should be a different issue.)

Completely muting accounts in the browser

Following this post:

  • block in the contexts where user-linked elements appear (notifications, posts, replies, search results, etc)
  • the only identifier to rely on is the handle (it can be changed to avoid block)

dist folder missing from latest build

The latest build (v1.2.1) does not include the dist folder, which is needed to install the package.

It is fixable without dev support by grabbing the dist folder from the previous build and pasting it in the main folder.

User profile popups

Once a link to a profile (including in-text handles) is hovered, there should appear a popup with basic user information and the buttons "follow" and "unfollow."

Dark theme on desktop

Dark theme on desktop

Currently only the mobile app has a dark theme whereas desktop users are stuck using the default light theme.

You can enable a temporary dark theme in the Settings -> Storybook but it looks unfinished and resets when you leave the settings. Hoping to extend that into a functional dark theme.

Screenshot 2023-04-12 at 10 12 13 AM

Key for scrolldown

Hi Phil,

would it be possible to create a key binding which is able to just scroll down any bluesky page?
That would be very helpful for me.

Thank you very much and kind regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.