open-source-ideas / ideas

💡 Looking for inspiration for your next open source project? Or perhaps you've got a brilliant idea you can't wait to share with others? Open Source Ideas is a community built specifically for this! 👋
6.52k stars 222 forks source link

Spacemacs/Emacs inspired web browser #9

Open bendiksolheim opened 7 years ago

bendiksolheim commented 7 years ago

Project description

As a computer nerd, I spend a lot of time in my web broser. I constantly try to make this a more pleasant experience, but I can't seem to become completely happy. What annoys me the most is the lack og good hotkeys. Hotkeys are mostly modelled after the well known [modifier] + [key] system, which is quite limiting when you have experienced the power of Vi or Emacs.

A project which gets quite close to this is Vimperator. It is heavily inspired by Vim, with normal mode and insert mode, known hotkeys, searching and so on. The main problem with Vimperator is that it is an addon, and sort of feels "non-native". It is certainly a very good alternative, but there are so many more interesting ideas I would like to explore:

These are just a few of the ideas for such a browser. The main idea is to make browsing feel more like editing in Emacs (or Vi, as a lot of the ideas exists there as well). It will certainly not be a mainstream browser, but the hope is that it will give "advanced users" a more pleasant experience when browsing the web.

This is very much inspired by the editor Spacemacs (which really is just a heavily configured Emacs distribution), so a few of the concepts might make less sence if you haven't used it.

Relevant Technology

Making a web browser completely from scratch is a more or less impossible task today. It would probably be a good idea to base the browser on Webkit (or similar). When it comes to language, that is a though one. The first thing that comes to mind is using a technology such as Electron since that already is integrated with Webkit and is quite widely accessible as it is Javascript based. However, one needs to be certain that this is a task Javascript can handle.

The most important thing, I believe, it that the browser should run on "all" major desktop operating systems. We are already limiting the user base to advanced users, so it would be bad to limit it even further by supporting only on desktop operating system.

Who is this for

This project will definitely need experienced developers on the board. Some of the tasks required by a web browser (security, to name one) are really complex. But there will definitely be room for more novice or beginner programmers as well.

This idea is probably better suited for a team, and not just a single person (but please prove me wrong!).

FredrikAugust commented 7 years ago

Sounds a bit like vimb :)

tbodt commented 7 years ago

Sounds pretty cool. The other day I tried to close a browser tab using :q.

bendiksolheim commented 7 years ago

Do you know if vimb is being actively developed @FredrikAugust ? I had a look at it a before I made this issue, but I could not find a link to the source back then so I was a bit unsure if it was still actively developed. Poked around a bit more just now, and the last commit was actually just 16 days ago. Have you tried it?

FredrikAugust commented 7 years ago

@bendiksolheim I used it on and off for about a month now, and it seems to be pretty complete. Only thing I was missing was flexbox support, which is kind of a deal-breaker for me, as I use them a lot for web dev. As far as development goes I have no clue.

tbodt commented 7 years ago

Likely good idea for implementation would be to use Electron.

Thrilleratplay commented 7 years ago

@bendiksolheim Have you tried Vimium?

bendiksolheim commented 7 years ago

@Thrilleratplay : yeah, I used it back when I used Chrome :) It is about the same as Vimperator for Firefox, and as far as I remember also suffers a bit from being an extension.

I haven't had the time to try out Vimb yet, but I definitely will.

azer commented 7 years ago

kaktüs aims to achieve this, you can give it a try. You can open 100 tabs with it and filter everything (tabs, bookmarks and history) by keywords. Feel free to contribute it.

Previously in Linux, I had much more minimal solution with delicious surf but it needed a tiling window manager like Xmonad.

ethanhs commented 7 years ago

Well, there is Qutebrowser, which does something like this for VIM.

edrex commented 7 years ago

qutebrowser is the closest thing I've found.

IMO browser extension APIs are too limited to provide a complete keyboard-driven UI (both on the display and control end) - you need a dedicated browser like qutebrowser to provide a cohesive experience.

These niche projects need support, both in testing and donations (@The-Compiler ran an indiegogo for qutebrowser and you can donate directly) or they will fizzle out, so if you have the resources and motivation, consider contributing.

bendiksolheim commented 6 years ago

I have ended up giving qutebrowser a go now that Firefox has decided to remove support for XUL, and I have to admit that it has a lot of the things I am looking for in a browser. People coming from Vimperator should feel right at home! It would be nice if it could be integrated with my password manager, but I can live with copy pasting passwords.

edrex commented 6 years ago

I use password-store (the "pass" command) to manage my passwords, and there is a qutebrowser userscript (background) which can auto-fill forms from that. I haven't tried it but it's on my list.

update I bound password fill to ,p and it works well.

koppor commented 6 years ago

Related work:

edrex commented 6 years ago

interesting to see webmacs also using pyqt/qtwebengine. the more downstream projects use that platform, the better blazed the trail will be for other alt browsers.