Qutebrowser – A keyboard-driven, Vim-like browser based on PyQt5
qutebrowser.org
qutebrowser.org
I have used qutebrowser as my primary browser on Linux for years. I have no complaints. In fact, qutebrowser runs smoothly on some of my older machines where Firefox struggles to run.
Unfortunately, I also use Windows a lot. QTWebEngine builds for Windows do not have some codecs most of the internet expects you to have, and some js laden sites seem to perform poorly on the Windows builds. Both of these problems are with the qtwebengine project and there's nothing qutebrowser can do about that. Even so, I would recommend Windows users give it a try anyway.
Not sure where he finds so much time and affords to do what he does living on one of the most countries in the world (Switzerland) but dude is truly inspiring!
I truly hope he doesn't ever leave FLOSS.
As for affording it: I still live with my mother (I'm 25 and a full-time student), so that works out well so far.
Not sure yet what'll happen after the studies, from how things look like now I might end up moving to my girlfriend's place in Vorarlberg (Austria, but close to the Swiss border) where things are cheaper, and try to live off qutebrowser donations and some freelancing gigs. We'll see!
To be fair, I've not done enough research to KNOW whether or not that poses any real security risk but it's still a concern. There's also the FOMO that I'm missing some modern browser features that I can only test out in other browsers :/
It's OSS though, so I should probably shut up and roll up my sleeves
Good shout, I did not realise this, however the last release (5.11.2) was relatively recently in June... however I can't find release details for qtwebengine, where are you getting your release information from RE chromium?
This was the main reason I was attracted to this browser because the old webkit2 based vim-like browsers were hopelessly out of date to point of being very dangerous.
> This was the main reason I was attracted to this browser because the old webkit2 based vim-like browsers were hopelessly out of date to point of being very dangerous.
Same here. I had to forgo other browsers I quite like because of their older versions of webkit
However they do claim to backport security patches on their front page so it should technically be secure.
I suppose it would take a lot of repetetive effort going through the same process to pull apart chromium each major release, so perhaps they settle on backporting patches in between larger breaks.
Yeah that sounds truly horrifying, I guess they must employ some degree of automation though.
I usually check their script, which also lets you switch between versions easily: http://code.qt.io/cgit/qt/qtwebengine.git/tree/tools/scripts...
And I also have an overview here: https://github.com/qutebrowser/qutebrowser/blob/master/quteb...
On Chrome I rely on 3 extensions: 1Password, uBlock Origin and Vimium. I obviously don't need Vimium on Qutebrowser. I could possibly get by without 1Password if I switched to something like Pass. However, I can't give up uBlock Origin. I run it in "medium mode" (3rd party frames/js blocked by default) and I can't give this up.
I would pay decent money to be able to run uBlock Origin on Qutebrowser.
Run :adblock-update to download adblock lists and activate adblocking
I'd absolutely like something like uMatrix in qutebrowser (see [1]), and since I recently started work on a plugin API[2], that'll hopefully happen soon-ish.
As for password manager integration, check qutebrowser's userscripts[3] (which are unrelated to Greasemonkey scripts), but a plugin API should provide a better foundation for that as well.
[1] https://github.com/qutebrowser/qutebrowser/issues/28
[2] https://lists.schokokeks.org/pipermail/qutebrowser-announce/...
[3] https://github.com/qutebrowser/qutebrowser/tree/master/misc/...
However, since I stumbled about this project, I've got no need for that anymore: https://github.com/purduelug/passhole
I really like the suckless approach to GUIs in this case. Yes, you don't get stuff like automatic url matching with this, and you have to manually add new entries, but its functionality is works great for me nontheless.
Maybe, there's also an easy way for you to get (or write) a dmenu interface for 1password?
You definitely can. I do: https://cretz.github.io/doogie/. Prebuilt versions are available at http://opensource.spotify.com/cefbuilds/index.html. In fact, I'd say shipping with the browser is ideal for a few reasons. It's not a lib that should be shared across the system IMO.
Could you elaborate why you'd prefer shipping it with the browser rather than sharing it?
And because everyone's on the latest version, it's harder for individuals to downgrade or stay on old versions for longer without getting obsoleted.
It's actually closing the web. The excuse for aggressive upgrades & auto-updates are mainly for security purposes, with the side benefit of reducing the work of web developers. But on the flip side, it's actually huge centralization move.
It's a bigger issue if you're on a distribution like Debian Stable, which ships an ancient Qt version without security updates[4]. There, you get Qt 5.7.1 based on Chromium 49 (2016-03-02) with security fixes up to 54 (2016-10-19)... I'll probably drop support for that soon even if it's annoying for some Debian Stable users, but people really should stop using such old QtWebEngine versions.
Missing web features usually isn't much of a problem in my experience, as most sites still wait a bit before they start using them.
FWIW I agree something based on Servo would be cool, and as soon as there's some project making Servo embeddable from Python with Qt integration, I'll get my hands dirty to at least have a proof of concept!
[1] http://code.qt.io/cgit/qt/qtwebengine.git/tree/dist/changes-...
[2] https://wiki.qt.io/Qt_5.12_Release
[3] http://code.qt.io/cgit/qt/qtwebengine.git/tree/tools/scripts...
[4] https://www.debian.org/releases/stable/amd64/release-notes/c... - only mentions QtWebKit, but applies to QtWebEngine too
> This is still under research, but there seem to be quite tangible benefits from carving out Qt WebEngine to a separate item. Current thinking it that as a separate item we should be able to release Qt WebEngine every three months, following nicely the schedule of Chromium releases every six weeks. For Qt 5.12 LTS users this would mean the possibility to get not only the security updates, but a full new Chromium version supported on top of the long-term-supported release of Qt.
A plugin API seems to be in the works with a recent announcement; https://lists.schokokeks.org/pipermail/qutebrowser/2018-Sept...
Does anyone know if it is possible integrate? If so, how difficult would it be?
https://github.com/qutebrowser/qutebrowser/tree/master/misc/...
Hopefully, things will also get easier in the future with the upcoming plugin API:
https://lists.schokokeks.org/pipermail/qutebrowser-announce/...
Can't live without Vimium.
Look in the settings for VimFX and Vimium preset schemes, I don't really change anything else.
I'm always quite amused by this. The only reason we made Tridactyl was because there was an issue on the Vimperator GitHub about it dying with FF57 and no-one seemed like they were going to step up and make something, so we reluctantly did.
Then, come November, Saka-key, Vim Vixen and VVimpulation all came out of nowhere.
[0] https://github.com/qutebrowser/qutebrowser#similar-projects
- Keybinds are lost when page is loading or on special pages, which is a huge break in flow
- Some keys cannot be bound (eg, unbinding Ctrl-q, binding Ctrl-w)
- Lack of options when customizing the UI (I can't get my nyan fix, can't move tabs to the bottom/right of the screen)
- The omnibar (firefox, chrome, vimium) feels extremely slow, especially compared to lighter weight history searches.
- (sometimes) lack of an insert/passthrough mode, to send keys to js running on the page
- Inability to integrate cleanly with the rest of my system (:spawn mpv {url}, qb userscripts)
- Much harder to hack on the browser itselfCustomising browser interface is possible with userChrome.css on Firefox, and there's something similar for Vivaldi but it's actually supported. I'm not sure if anyone has bothered releasing a Vim add-on for it though.
`composite js document.location.href | !s mpv`
Should work. I think we might have a `currenturl` ex command that you could replace the js bit with but I can't remember.
I've tried all of the previous lightweight vim-like incarnations of the webkit2-lib based browsers. Not being much of a browser customisations person beyond adblocking my issues were solely with the inadiquate browser engine "webkit2" which was ultimately abandoned, it was always slow to be updated, increadibly slow and insecure.
This is why I thought qutebrowser was worth a post on HN, because it's the first of these lightweight keyboard driven type browsers that I have found with a completely useable modern up-to-date engine behind it (QTWebEngine[1]):
Relationship to Chromium
Qt WebEngine uses code from the Chromium project. However, it is not containing
all of Chrome/Chromium:
- Binary files are stripped out
- Auxiliary services that talk to Google platforms are stripped out
- The codebase is modularized to allow use of system libraries like OpenSSL
We do update to the latest Chromium version in use before a Qt release. After a
release some bug fixes and security patches are backported. For LTS releases of
Qt we might also update Chromium in a patch level release.
This is why it basically feels like using chrome, because it's essentially the same core engine.I've not used qutebrowser extensively enough yet to comment much on the front-end, but the most important part is there, the nice engine without any nasty privacy violating services built in. But my first impressions with the front end are pretty good, and i'm not even a vim user.
However, QtWebEngine is probably still ahead of WebKit, both security- (sandboxing) and feature-wise.
I'm a big fan of surf for example, but it leaves it up to the users to implement features like history, which I never got around to doing. Sure, someone's probably already posted his implementation for that, but nonetheless the sad pragmatics of not investing the time into that eventually helped drive me towards the bloated, but featureful point and click browsers. To be clear, I'm completely in favor of this kind of modularity in systems, but at the same time the tinkering is a two edge sword, if I had found a good premade surf setup to fork, then I would have been left with only the positive aspects, I guess.
Another example, which is a bit more serious, is that these projects seemed to be chronically out-of-date, or not fully compatible with my systems, because I'd have some rendering or interaction problems from time to time.
Which kind of brings me to my next point. Web, the platform, sucks. It's complex and bloated. It suffers from the system within a system syndrome. That's why it keeps moving. By consequence, the browsers have to not only be complex as well, but also keep moving equally fast. The big browsers just have a large advantage in situations like this.
If you are using a big DE consider switching to something lighter and you might be surprised how little RAM you can use.
(My anecdote is from using both Chromium, FireFox and qutebrowser more recently - I haven't noticed much performance difference in the latter but it wasn't struggling to beggin with)
https://github.com/qutebrowser/qutebrowser/blob/master/misc/...
Disclaimer: I wrote passhole.
One can never have too many browser to separate tasks out, although Firefox containers are a solid replacement oftentimes.
Also they assert the right to decide how bsd/linux distributions package their work on pain of lawsuit.
https://github.com/jasperla/openbsd-wip/issues/86
Their behavior was tactless and poorly considered. I wouldn't trust them to make me a ham sandwich let alone maintain my browser.
Just install tridactyl which is about feature complete compared to pentadactyl by now.
Toxic behaviour, misunderstandings of how BSD works, and no interest in working with people doing the hard work for Palemoon.
They demand their own patched versions get included with their browser... With no consideration that they may not even run on BSD.
i have been using it and pentadactyl ever since vimperator stopped working and i love it. it gets updated frequently and fairly recently had a rebase to a newer ff build. also their theming support is really nice and their logo isnt as obtrusive. give it a chance and you won't regret it.
As a project lead, you get to decide things like what goes in the project or leaves. Not everything needs a discussion once it has been decided.
I suspect the "not allowed to be discussed" is implemented so that these discussions are bypassed and those that don't like the decision can simply vote with their feet.
I will say that I understand the need to try to keep control of one's projects and what others do with them. See the recent linux mess for details.
Actually on second thoughts extensions probably don't have a relationship with layout engine but with browser GUI so maybe no.
However, there's a built-in adblocker (which only blacklists hosts right now), and there are plans for something like uMatrix: https://github.com/qutebrowser/qutebrowser/issues/28
This info on QTWebEngine is among the top comments on the page if you care to look.