Skip to content

Common extension integration in favor of custom installation #385

@Jelmerro

Description

@Jelmerro

Checklist

Addition or change

As had been the case for a few years, extension support in Electron isn't good, neither is the support in Vieb. For this reason, I propose to deprecate and remove the current extension support in favor of integrating commonly requested features into Vieb without the need for an extension. The current list of extensions (or features of said extensions) that are considered are:

  • Darkreader (see :help darkreader)
  • Sponsorblock (see :help sponsorblock)
  • Password manager, see Implement a password manager #106
  • Greasemonkey and userscripts (see Add greasemonkey script support #64 and :help userscript)
  • Stylus or similar (to apply custom styling to a page, see :help userstyle)
    • Scrollbar customization of some sort (see :help userstyle and :help guiscrollbar)
    • Scrolling behavior controlled with scroll-behavior and scroll-snap-type
  • Built-in dictionary (as in, show the definition of a word, not just correct misspelled ones, possibly with Anki integration)
  • Word replacer (replace random words on the page with different language words with definition, as to learn languages)
  • Page translator (see :help :translatepage)
  • Text-to-speech, read pages or section of it (selected with visual) out loud
  • Automatic clearing of cookies, localstorage and cache, based on a timer and/or domain name
  • Bookmarks Add special page for managing and tagging bookmarks #100
  • Markdown viewer (as suggested by @Melandel, see :help toggleMarkdownViewer)
  • Script blocking functionality (see Feature Request: Javascript enable/disable #264 and :help resourcetypes)
  • Edit request headers with list setting (override built-in ones or add custom ones, see :help requestheaders)
  • Copy RSS feed urls (as suggested and implemented by @saltrafael, see :help pageRSSLinksList)

All of these should be OPTIONALLY activated, as is already the case for the ones that are marked as done. Please feel free to suggest additional extensions/features you use often and for which there is no existing way to do so in Vieb, either in the comments below or as a new ticket.

Alternatives considered

An alternative to the above scenario would be to create and support browser extensions, but please DO NOT underestimate this task. I have tried and failed for years, as have many others. The enormous size of this task is what led to the deprecation of extension support in the first place. If you think you are up for the task, please go ahead: write the code and make a PR for it, but until then, know that building optional features into Vieb will be the current way forward. For info about the previous extension approach, see #130.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions