Jelmerro / Vieb

Vim Inspired Electron Browser - Vim bindings for the web by design
https://vieb.dev
GNU General Public License v3.0
1.32k stars 62 forks source link

Common extension integration in favor of custom installation #385

Open Jelmerro opened 2 years ago

Jelmerro commented 2 years ago

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:

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.

yosoymau commented 2 years ago

Something that would be very nice to have related to the word translator and builtiin dictionary would be integration with anki, like the way yomichan on firefox has.

Melandel commented 2 years ago

I would definitely enjoy a markdown viewer.

Example on firefox: markdown-viewer-webext

rafael-xmr commented 1 year ago

https://github.com/SimonBrazell/privacy-redirect

Jelmerro commented 1 year ago

That seems like it is already possible with the redirects setting, so not adding to the list for now.

Nosp1 commented 1 year ago

Hi, I've just discovered the browser, and I'm in love! But I need Modheader plugin for day to day development for injecting certain env variables in the http requests. As I've just discovered this browser i'm not sure if you already support this, but It could be a great feature to integrate (if at all possible).

(I do apologise if my comment here is out of place)

Jelmerro commented 1 year ago

This seems like a nice addition, would you need multiple profiles with filters, or would a general method to edit the request headers be enough? And if not, how should we organize the config?

Nosp1 commented 1 year ago

Thanks for the quick reply and positive onlook. I use about three modheaders at the same time.So perhaps a simple way to toggle them on and off. Here is an example from the extension: image. It might be difficult to implement, I havn't had the time to look at the source code for Vieb yet. It may be more feasible with a config file with simple key-value pairs. Or maybe one could use the command mode and do something in lines of set modheader <key> <value> and a command for clearing a mod header. set modheader <blank> to clear all mod headers or unset modheader <key> to clear a single one. I think at least being able to have several would be convenient.

In regards to filtering and profiles they would be nice to have, but currently I only need one profile, and filtering has not been a need of mine, but maybe some other users might.

Jelmerro commented 1 year ago

@Nosp1 Implemented, will land in the upcoming 10.0.0 release, see https://github.com/Jelmerro/Vieb/commit/faf9ca4019c77475c79a328f1f8f99affdfb4751.

Nosp1 commented 1 year ago

Wow, thats great! Then I can use the browser at work! Awsome!

rafael-xmr commented 1 year ago

suggestion: https://github.com/shevabam/get-rss-feed-url-extension (yank page's RSS feed?)

Jelmerro commented 1 year ago

Looked at this briefly, and while it does seem cool and useful to add, the example extension sends every request to the "api url", which is hosted by the owner of the extension, where the logic for extracting the feed urls is abstracted away. This is both a security issue and cannot be used as an example of how to implement this. I would accept contributions to implement client-side feed url extraction, but sending the url to a server to get a list of feed urls seems illogical and overcomplex. Since I have never used RSS in my life for anything, I will not be working on this personally, but I do accept PRs that implement this (again, if parsing of the page is done client-side in Vieb, not sending every url to a server like the extension linked).

moneylcj commented 1 year ago

Is it possible to add the ability to access vieb internal resources and execute commands from runjsinpage, just like vimperator liberator.execute did. This will open a new door for users to customize plugins.

Jelmerro commented 1 year ago

Not currently, but that is tracked in this ticket https://github.com/Jelmerro/Vieb/issues/192, so please continue discussion for such a feature there.

r3k2 commented 11 months ago

something like libredirect https://libredirect.github.io/ I know vieb has set redirect but is limited in comparation with this one I point out..

ALSO: please gemini/gopher support will be great

Jelmerro commented 11 months ago

Redirects in Vieb are less easy to configure, but absolutely more powerful than regular redirect libraries, as you get complete freedom to change any url to a completely different url. While not directly aimed at replacing services with a different (possibly compatible instance) of it, with the right replacement patterns you can achieve the same functionality, but also for custom redirects or configs.

prescientmoon commented 8 months ago

People use many external password managers. Is the goal to bake in integration for all of them?

Jelmerro commented 8 months ago

Not exactly, but since extension support is pretty much impossible (as per #130), the current approach is to integrate the functionality of extensions for regular feature requests. For password management, there is a separate ticket that should ideally have custom integration with any password manager, see #106.