[HN Gopher] Qutebrowser 2.0
       ___________________________________________________________________
        
       Qutebrowser 2.0
        
       Author : Foxboron
       Score  : 193 points
       Date   : 2021-01-28 10:57 UTC (12 hours ago)
        
 (HTM) web link (lists.schokokeks.org)
 (TXT) w3m dump (lists.schokokeks.org)
        
       | basilisks wrote:
       | If anyone has any hints on getting qutebrowser to not suck up
       | battery and CPU on macOS Big Sur it would be much appreciated.
       | Maybe things will smooth out in 2.0?
        
         | The-Compiler wrote:
         | Some of those issues might be caused by the underlying
         | QtWebEngine. For others, qutebrowser might be responsible (I'm
         | mainly thinking of
         | https://github.com/qutebrowser/qutebrowser/issues/5376 which
         | might be relevant).
         | 
         | In my day-to-day work, I only use Linux - so the Windows/macOS
         | releases are pretty much "best effort" I'm afraid, until
         | someone steps up to fix platform-specific issues there.
        
       | dang wrote:
       | If curious see also
       | 
       | 2018 https://news.ycombinator.com/item?id=18070367
       | 
       | 2017 https://news.ycombinator.com/item?id=15458824
       | 
       | 2014 https://news.ycombinator.com/item?id=8774609
        
         | The-Compiler wrote:
         | Nice blast(s) from the past :)
        
       | albertzeyer wrote:
       | I wonder:
       | 
       | - I read many complaints about QtWebEngine. Is there still no
       | good alternative to this? In general, when you want to embed a
       | browser in some GUI app. There have been lots of attempts to
       | solve this in the past. But it seems like this is not really
       | solved. And making this cross platform makes it more difficult,
       | obviously. I thought now that we have Electron, this should maybe
       | be easier? (I remember, on Windows, it was quite easy to embed an
       | IE browser component in your app, even in the 90s. And this
       | worked well. Only problem was that it was IE, and Windows-only.)
       | 
       | - You could go the other way around, and write an extension for
       | an existing browser (Chrome, Firefox). There are also already a
       | couple of such extensions which have similar goals as this
       | project (keyboard-focused, minimal GUI). Why is this also
       | suboptimal, or why does this not work as well? Why is the
       | approach by qutebrowser better? (Some comments here seem to
       | suggest that.)
       | 
       | Both approaches seem suboptimal somehow.
        
         | The-Compiler wrote:
         | I agree, all approaches to this have some kind of major
         | drawback. The main pain point with the approach chosen by
         | qutebrowser is probably missing support for WebExtensions (i.e.
         | Chrome/Firefox extensions), though I still hope that'll change
         | with QtWebEngine some day:
         | https://bugreports.qt.io/browse/QTBUG-61676
         | 
         | Other similar projects are using WebKitGTK, or indeed Electron:
         | https://vieb.dev/ - again, probably not better/worse than
         | QtWebEngine, just a different set of problems.
         | 
         | qutebrowser actually has an abstraction layer over the backend
         | (which is why it can support QtWebEngine and the older/outdated
         | QtWebKit, with little effort needed to keep support for the
         | latter). If there is some new kind of library appearing some
         | day which can draw to a Qt window and used from Python, it'd
         | totally be possible to add support for it to qutebrowser
         | without too much effort.
         | 
         | I had hoped for Servo to fill that gap at some point, but so
         | far that hasn't happened yet:
         | https://github.com/servo/servo/issues/27579
         | 
         | Another possibility is for Geckoview to be ported to Desktop
         | platforms some day: https://mozilla.github.io/geckoview/ -
         | something the people behind Tridactyl would like to happen:
         | https://tridactyl.xyz/ideas/#port-geckoview-to-x86_64
         | 
         | As for extensions - other replies to your comment already
         | mention this, but the main problem is that the WebExtension API
         | is very constrained. On top of that, there's no API for
         | handling keyboard input, so those extensions work by injecting
         | JavaScript code handling keyboard inputs into every page you
         | visit. That works, but only barely - lots of hacks are required
         | for those kind of WebExtension limitations, and they won't work
         | on pages where Mozilla decides extensions can't inject JS (such
         | as internal pages or the Mozilla addons page). Again the folks
         | behind Tridactyl have some ideas on how to improve the
         | situation, but so far this hasn't happened yet:
         | https://tridactyl.xyz/ideas/#write-a-keyboard-api-for-firefo...
        
           | albertzeyer wrote:
           | Thanks for the detailed answer.
           | 
           | Many years ago, I considered adding an embedded browser (or
           | just HTML renderer) into a game, as a simple way to build the
           | game menu. The requirements mostly were:
           | 
           | - We needed the raw pixels as output. This was SDL, and the
           | game was purely pixel based. Should also support alpha
           | channel / transparency if possible. Also we would need to be
           | in full control of all input events (keyboard inputs, mouse
           | clicks), and have some easy way to handle some events like
           | button clicks etc.
           | 
           | - Cross-platform (at least Windows, Linux, Mac, iOS, Android,
           | and potentially more). Should also be easy to build, and not
           | have much dependencies.
           | 
           | - It should be a small dependency (WebKit was way overkill;
           | or maybe you can build a stripped down version?).
           | 
           | We gave up. Although we didn't really needed all the modern
           | HTML features, and also no JS. I guess for a projects like
           | yours, you have somewhat different requirements.
           | 
           | I wonder if it is worth it to fork an existing browser
           | (Chromium, Firefox) for your purpose. But this is probably
           | impossible to maintain and keep in sync with upstream.
           | 
           | I wonder whether there are other simple ways to hook into the
           | browser. After all, you are in control of the OS, and you can
           | inject some code. On MacOSX, there was actually some nice way
           | to script things like this. But I think they restricted that
           | very much now.
           | 
           | https://github.com/albertz/Pyjector https://github.com/albert
           | z/chromehacking/blob/master/chromeh... https://src.chromium.o
           | rg/viewvc/chrome/branches/874/src/chro...
        
         | Timothee wrote:
         | > Why is this also suboptimal, or why does this not work as
         | well? Why is the approach by qutebrowser better?
         | 
         | Building a browser extension will always have limitations.
         | 
         | For example, if you download a file, you usually don't have a
         | way to open/delete/retry it through a keyboard command or an
         | extension. Or moving tabs around between windows, change the
         | order in the current window. You have to go back to using the
         | mouse for many tasks, even with extensions.
         | 
         | Browsers also have a lot of minimal chrome UI which you can't
         | get rid of with an extension. (a while ago, I did use Safari in
         | a mode where it only had the very thin top bar, but it wasn't
         | super practical sometimes because it was not the intended use-
         | case)
         | 
         | Having qutebrowser built with the vim-like mode as first-class
         | citizen gives more control over what can be done and how it
         | looks.
         | 
         | I've been using it for a few years now and love the keyboard-
         | shortcut centric aspect (I also use Vim) and the minimalism and
         | customizability of the UI.
        
         | lufte wrote:
         | - I guess it depends on your environment. I run qutebrowser in
         | Debian testing and I have no issues with QtWebEngine. What
         | specific issues have you had?
         | 
         | - I've tried these but they fall short most of the time. The
         | JavaScript of the website interferes with the extension trying
         | to grab key presses, the UI of the browser is not navigable
         | with the keyboard or it uses its own shortcuts, and
         | webextensions being restricted on some special pages (like
         | about:config). The keyboard mode really needs to be a first-
         | class citizen in my opinion.
        
         | alexfrydl wrote:
         | There's webview (https://github.com/webview/webview) which has
         | bindings for many different languages, but it's a whole window
         | rather than a UI component you can embed. It's intended to be a
         | lightweight alternative to Electron.
        
       | z29LiTp5qUC30n wrote:
       | Let me know when they finally fix their SOCKS Proxy issue.
        
         | KingMachiavelli wrote:
         | What's the issue with using a SOCKS proxy? I do it all the time
         | in qutebrowser.
        
         | The-Compiler wrote:
         | If you want anything to be fixed, you'll really need to be more
         | specific... -\\_(tsu)_/-
        
       | gralx wrote:
       | Sessions (:session-save) have not been saving properly in v1.14,
       | a known issue related to QT. No news about it in changelog.
        
         | The-Compiler wrote:
         | I'm afraid I don't really have much news to share about that.
         | It requires a complete rewrite of session handling and the on-
         | disk session format, and that's just something I haven't gotten
         | around to finishing yet.
         | 
         | I've updated the related issue earlier this week though:
         | https://github.com/qutebrowser/qutebrowser/issues/5359#issue...
         | 
         | FWIW, _saving_ isn 't the problem - restoring a tab's
         | back/forward history from the saved file is.
        
           | gralx wrote:
           | Thanks for the reply, The-Compiler, and for your project.
           | 
           | I assumed my problem was related to the QT issue because it
           | started at the same time, but I was wrong. It's just a
           | configuration mistake. I had `session.default_name` set to no
           | value, and because I typically exit qutebrowser with "ZZ"
           | (`:quit --save`), the last session I created was getting
           | overwritten by the contents of my last-viewed windows.
           | 
           | Wouldn't have checked if you hadn't responded. Very grateful.
        
         | 3np wrote:
         | There was a note on the first startup tab for me, with a lonk
         | to this ticket:
         | https://github.com/qutebrowser/qutebrowser/issues/5359
        
       | fowlie wrote:
       | Qutebrowser is so awesome! Sadly, I had to switch back to Firefox
       | and Vimium because I never figured out how to enable Kerberos.
       | With Firefox, this easy, go to about:config and edit the
       | negotiate auth whitelist. I tried to set all kinds of flags but
       | gave up after a couple of days.
        
         | The-Compiler wrote:
         | It might just work if you're on Qt 5.12.1 or newer:
         | https://bugreports.qt.io/browse/QTBUG-51082
        
           | fowlie wrote:
           | Thanks a lot for the tip! Will give it another go :-)
        
       | simias wrote:
       | >This release integrates Brave's Rust adblocking library if the
       | "adblock" Python library is available.
       | 
       | I can't parse this. It's a Rust library in a C++ browser but you
       | need a Python library to use it?
       | 
       | Beyond that and given how glitchy Tridactyl is on firefox I'll be
       | sure to check this out. I'm just a bit bummed that it's yet
       | another chromium-based browser, but I guess there's no real
       | viable alternative these days.
       | 
       | EDIT:                   12:47:32 CRITICAL: Failed to create
       | OpenGL context for format QSurfaceFormat(version 2.0, options
       | QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24,
       | redBufferSize -1, greenBufferSize -1, blueBufferSize -1,
       | alphaBufferSize -1, stencilBufferSize 8, samples 0, swapBehavior
       | QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace
       | QSurfaceFormat::DefaultColorSpace, profile
       | QSurfaceFormat::NoProfile)         [1]    567012 abort (core
       | dumped)  qutebrowser
       | 
       | I guess I'll retry in a little while...
        
         | chaorace wrote:
         | Sounds like a display driver issue. Make sure to run a system
         | upgrade and reboot.
         | 
         | Some Nvidia users reported success after switching from nouveau
         | to proprietary drivers. If you're (understandably) unwilling to
         | change out your display drivers for a single application, you
         | might want to try forcing software rendering in qutebrowser via
         | the config [1]
         | 
         | [1]:
         | https://github.com/qutebrowser/qutebrowser/issues/3276#issue...
        
         | lcrz wrote:
         | > qutebrowser is a keyboard-focused browser with a minimal GUI.
         | It's based on Python and PyQt5 and free software, licensed
         | under the GPL.
         | 
         | So it's a python-based browser. If a certain python package is
         | installed that has bindings for the (rust-based) adblock
         | library, then it is used.
        
           | slightwinder wrote:
           | It's both. PyQt are python-bindings to the Qt-code in C++.
           | Python acts here mainly as the clue-language to connect and
           | control the parts in C++, and other parts like this rust-
           | based adblocker. It's a funny melting-pot...
        
             | The-Compiler wrote:
             | Yup! So far, we have C (Python runtime), C++ (Qt), Python
             | (qutebrowser itself), Rust (adblocker) and JavaScript (web
             | stuff and some of qutebrowser's code) involved. Probably
             | some other small things I'm not thinking of right now.
             | 
             | It's... challenging sometimes, but still working
             | surprisingly well overall.
        
         | ognarb wrote:
         | Interesting another QtWebEngine based browser also made a
         | similar move a few months ago to provide an adblock:
         | https://jbbgameich.github.io/misc/2020/12/21/rust-in-a-kde-p...
        
           | The-Compiler wrote:
           | Oh, that was an interesting read! I wasn't aware of Angelfish
           | or how it integrated the same library.
        
       | markstos wrote:
       | I added the patch for the `--desktop-file-name` flag. It's useful
       | for profile management on Linux. I wrote up a comparison of a
       | couple profile managers for Qutebrowser here:
       | 
       | https://www.reddit.com/r/qutebrowser/comments/l6zj0z/compari...
        
       | Semaphor wrote:
       | https://qutebrowser.org/
       | 
       | > qutebrowser is a keyboard-focused browser with a minimal GUI.
       | It's based on Python and PyQt5 and free software, licensed under
       | the GPL.
       | 
       | > It was inspired by other browsers/addons like dwb and
       | Vimperator/Pentadactyl.
        
       | v8engine wrote:
       | Any reason my Antivirus considers it a problem? " C:\Program
       | Files\qutebrowser\qutebrowser.exe is infected with
       | Gen:Variant.Mikey.118185 " This is with Bitdefender.
       | 
       | I downloaded the prebuilt windows binary from
       | https://github.com/qutebrowser/qutebrowser/releases
        
         | The-Compiler wrote:
         | Like mentioned by toyg, AV engines are really overzealous when
         | it comes to PyInstaller executables :(
         | 
         | Not much I can do about that, but I opened
         | https://github.com/qutebrowser/qutebrowser/issues/6081 to send
         | a couple of appeals whenever I'm bored enough to do so.
        
         | jnxx wrote:
         | Antivirus software can have random positives, and for niche
         | software they might not correct that.
         | 
         | But it is a good reason to only run stuff that has a pgp-signed
         | checksum.
        
         | toyg wrote:
         | Some AVs have an issue with PyInstaller:
         | https://github.com/qutebrowser/qutebrowser/issues/4269
         | 
         | I've also seen some AVs having an issue with QT dlls, probably
         | because some malware used them at some point.
        
       | jmercouris wrote:
       | Congratulations on this milestone!
        
         | The-Compiler wrote:
         | Thank you! :)
        
       | bendiksolheim wrote:
       | If you're into programs with Vim-like key bindings, I can
       | wholeheartedly recommend Qutebrowser. Back when Firefox
       | transitioned from the old extension system and Vimperator stopped
       | working, I started using Qutebrowser instead. I stopped due to
       | the lack of good ad blocking, but sorely miss the key bindings
       | every day. Will give it a new try now!
        
         | oftenwrong wrote:
         | I owe this a try as well. For me, vimperator/pentadactyl was an
         | absolute dream. I kept them running for a long time, but
         | eventually had to abandon them along with the old firefox
         | versions. The WebExtension imitations don't even come close.
        
         | The-Compiler wrote:
         | > I stopped due to the lack of good ad blocking, but sorely
         | miss the key bindings every day. Will give it a new try now!
         | 
         | Welcome back then! Happy about feedback if you miss something
         | else :)
         | 
         | If qutebrowser isn't for you, there are also various other
         | browser addons you might want to try:
         | 
         | https://github.com/qutebrowser/qutebrowser#similar-projects
        
         | notagoodidea wrote:
         | I use qutebrowser and Firefox + Vimium (as a lightweight layer
         | of vim functionalities on top of Firefow). You may look a it
         | but a little bit of configuration is needed to homogenize the
         | keybindings between qutebrowser and Vimium.
        
       | leephillips wrote:
       | I like the way qutebrowser works and the way it avoids wasting
       | space, and I wish I could use it. But over several versions of
       | Ubuntu and qutebrowser, I've encountered too many problems; I
       | think most are due to the qtwebengine and the fact that
       | qutebrowser is made with Python.
       | 
       | The latter often leads to the familiar dependency hell when
       | trying to install or upgrade the program.
       | 
       | I have frequent crashes, it's slow at rendering pages, it uses
       | more memory than (for example) chromium and seems to leak memory;
       | any kind of CSS animation causes the CPU to have a major workout.
       | After one upgrade most video stopped working.
       | 
       | I never cared about the ad blocker, as I use a hosts file for
       | that. Why doesn't everyone? It seems to be a better solution.
        
         | The-Compiler wrote:
         | > The latter often leads to the familiar dependency hell when
         | trying to install or upgrade the program.
         | 
         | Can you elaborate?
         | 
         | > I have frequent crashes, it's slow at rendering pages, it
         | uses more memory than (for example) chromium and seems to leak
         | memory; any kind of CSS animation causes the CPU to have a
         | major workout.
         | 
         | Those are indeed most likely caused by the underlying
         | QtWebEngine in some way - though there also have been some
         | performance improvements in qutebrowser itself, with some more
         | planned:
         | https://github.com/qutebrowser/qutebrowser/issues?q=is%3Aope...
         | 
         | > After one upgrade most video stopped working.
         | 
         | If you installed qutebrowser outside of Ubuntu's packages, that
         | might be caused by the prebuilt Qt lacking proprietary codec
         | support.
         | 
         | Despite that, it's what I'd recommend if you're on a Ubuntu LTS
         | with often grossly outdated Qt versions:
         | https://github.com/qutebrowser/qutebrowser/blob/master/doc/i...
         | 
         | > I never cared about the ad blocker, as I use a hosts file for
         | that. Why doesn't everyone? It seems to be a better solution.
         | 
         | That's essentially what qutebrowser did before this release as
         | well - but many ads and trackers are served from the visited
         | page directly rather than a third-party host.
        
           | leephillips wrote:
           | "Can you elaborate?"
           | 
           | First, thanks for your work on Qutebrowser. I'm sure it's
           | exhausting in many ways, and I know it's basically a hobby.
           | So despite my complaints I'm impressed and I love the
           | concept. And I've noticed you are consistently responsive to
           | users, despite this not being a job.
           | 
           | Pip installing QB usually leads to errors about missing or
           | wrong Python QT libraries, and attempts to install those lead
           | to other errors. I don't expect you to deal with these
           | problems; it's what I've come to expect with large Python
           | programs. Using a virtual env. did not solve the issues for
           | me.
           | 
           | EDIT: or it will install, but then when I run it, I get an
           | error about something missing or being the wrong version.
           | 
           | The nonworking video, I'm sure, is due to missing codecs.
           | 
           | "many ads and trackers are served from the visited page
           | directly"
           | 
           | True, but the hosts file seems to catch most everything.
        
             | The-Compiler wrote:
             | > despite this not being a job
             | 
             | Yes and no - I'm only employed for 2 days a week, and earn
             | enough in (recurring) donation income for this to be
             | considered a part-time job. I also do some
             | training/consulting around Python/pytest with my company
             | (Bruhin Software), but that's usually only a couple of days
             | per month.
             | 
             | > Using a virtual env. did not solve the issues for me.
             | 
             | That's weird, I'm not aware of any issues like that which
             | wouldn't be resolved by using a virtualenv. You might want
             | to try using qutebrowser's mkvenv.py which takes care of
             | everything (or at least tries to):
             | 
             | https://github.com/qutebrowser/qutebrowser/blob/master/doc/
             | i...
        
               | leephillips wrote:
               | "earn enough in (recurring) donation income for this to
               | be considered a part-time job"
               | 
               | Glad to hear that!
               | 
               | "I'm not aware of any issues like that which wouldn't be
               | resolved by using a virtualenv."
               | 
               | To be more accurate, if I recall correctly, I think it
               | did resolve the dependency issues, but the result was
               | that the version of QB installed this way was crashy, or
               | there was some other problem. Sorry, I didn't take notes.
               | I haven't tried mkvenv.py, thanks for suggesting that.
        
         | dijit wrote:
         | The hosts file solution doesn't help with elements on a page
         | (like cookie banners) which can load from allowed domains, or
         | elements on a page such as YouTube ad-rolls.
         | 
         | But I agree about the memory usage, qute uses insane amounts of
         | memory and it gets worse over time, I think this is caused
         | primarily by memory fragmentation in python- but it's more
         | evident with large memory hungry programs like a browser.
         | 
         | https://dzone.com/articles/python-memory-issues-tips-and-tri...
        
           | leephillips wrote:
           | "The hosts file solution doesn't help with elements on a page
           | (like cookie banners) which can load from allowed domains, or
           | elements on a page such as YouTube ad-rolls."
           | 
           | You're right about that.
           | 
           | I'm using Chromium v.87 now and it's the first graphical
           | browser I've encountered in a while that does not leak
           | memory. It's fast, stable, smooth, does not peg the CPU, and
           | I don't need to restart it periodically to reclaim RAM.
        
             | tomsmeding wrote:
             | How many browsers have you tried? Firefox regularly runs
             | for a long time on my machine, and I have no issues with
             | its memory usage.
        
               | leephillips wrote:
               | Firefox was my main browser for a long time. But after an
               | upgrade it starting misbehaving in some way that I don't
               | remember now.
               | 
               | It seems to be difficult to generalize about these
               | things. Someone will say that a particular version of a
               | browser leaks memory, or pegs the CPU, and someone else
               | will say that the same version has no problems.
        
               | The-Compiler wrote:
               | > It seems to be difficult to generalize about these
               | things. Someone will say that a particular version of a
               | browser leaks memory, or pegs the CPU, and someone else
               | will say that the same version has no problems.
               | 
               | FWIW that's indeed my experience with qutebrowser as
               | well. Everyone seems to have rather different experiences
               | (or expectations?) when it comes to performance and RAM
               | usage. Doesn't exactly make it easier to track issues
               | down, unfortunately.
        
               | leephillips wrote:
               | Yeah, I realize just saying "it leaks memory" is useless
               | to you in tracking down why. It could be due to any of a
               | dozen different things that QB interacts with. And the
               | next level of investigation is something that I don't
               | really have the skills, nor, probably, the time, to
               | undertake.
        
               | The-Compiler wrote:
               | I'm not blaming you for that - those things are insanely
               | hard to track down in a complex application spanning
               | multiple programming languages and approaches to memory
               | management... Unfortunately I have no idea where to start
               | either :-/
        
           | The-Compiler wrote:
           | > But I agree about the memory usage, qute uses insane
           | amounts of memory and it gets worse over time, I think this
           | is caused primarily by memory fragmentation in python- but
           | it's more evident with large memory hungry programs like a
           | browser.
           | 
           | Yeah, _something_ is leaking memory. Unfortunately, nobody
           | has figured out what exactly yet - and everything I 've seen
           | so far is not pointing to Python (or qutebrowser) as a
           | culprit:
           | 
           | https://github.com/qutebrowser/qutebrowser/issues/1476#issue.
           | ..
        
       | wernerb wrote:
       | Love using qutebrowser. Really an amazing opensource browser! The
       | only extension necessary for me was adblocking and now it's even
       | better!
       | 
       | I did/continue to have issues with qt-webengine though, like
       | 144hz monitor with qt webengine is limited to 60hz but these
       | things are unrelated to qutebrowser. In fact most of my "bugs"
       | can be related to upstream qt webengine and wayland support. I
       | feel bad for the authors of qutebrowser for so often getting
       | issues that is actually an upstream bug in qt. It doesn't help
       | that qt webengine work is rather slow (imo)
       | 
       | There's magic about pressing "o" and typing in what you want to
       | search from history or Google which is so fast and efficient. I
       | have tried similar setups on other browsers but in qutebrowser
       | the search algos are so simple and snappy, it works great. My
       | colleagues sometimes were amazed at how fast I could navigate
       | across the browser all thanks to this great software
       | 
       | Thank you qutebrowser!
        
         | RMPR wrote:
         | > There's magic about pressing "o" and typing in what you want
         | to search from history or Google which is so fast and
         | efficient. I have tried similar setups on other browsers but in
         | qutebrowser the search algos are so simple and snappy, it works
         | great.
         | 
         | Nailed it. I also like the fact that the search also works on
         | bookmarks. I've the feeling that it actually helped me forget
         | less about them.
        
         | jamesbvaughan wrote:
         | > There's magic about pressing "o" and typing in what you want
         | to search from history or Google which is so fast and
         | efficient.
         | 
         | I moved from linux+qutebrowser to macos+safari a couple years
         | ago (mostly because I needed to for my work computer and was
         | getting tired of fighting ableton+wine on my personal computer)
         | but I really love qb (I even wrote a blog post on it:
         | https://jamesbvaughan.com/qutebrowser). I miss a lot of things
         | about it, with "o" being one of the big ones.
         | 
         | I know that I can use qutebrowser on macos, but using safari
         | (with Vimari) just feels more integrated with the OS and my
         | other Apple devices, and that's been something I've enjoyed
         | more than I expected to.
         | 
         | Writing this is making me think I should give qb on macos
         | another shot though...
        
         | 3np wrote:
         | Wow, you're not kidding. Been aware of it for years and just
         | trying it for the first time in ages now after a long time on
         | Firefox with Tridactyl.
         | 
         | Zero configuration or reading docs and most of the default
         | keybindings just stick. It's smooth and minimal and so far
         | things render great.
         | 
         | Visual/caret mode seems a bit wonky with input elements but I
         | may just have to read up on it a bit.
        
           | The-Compiler wrote:
           | > Zero configuration or reading docs and most of the default
           | keybindings just stick. It's smooth and minimal and so far
           | things render great.
           | 
           | Yay! Discoverability and being intuitive are indeed things I
           | try to keep focusing on - if you have any suggestions I'm all
           | ears!
           | 
           | > Visual/caret mode seems a bit wonky with input elements but
           | I may just have to read up on it a bit.
           | 
           | It's based on Chromium's caret mode code (in JS):
           | https://chrome.google.com/webstore/detail/caret-
           | browsing/fkl...
           | 
           | I think a better alternative for input elements would be to
           | have vim emulation instead:
           | https://github.com/qutebrowser/qutebrowser/issues/827
        
         | The-Compiler wrote:
         | > Love using qutebrowser. Really an amazing opensource browser!
         | The only extension necessary for me was adblocking and now it's
         | even better!
         | 
         | Yay, glad to hear that!
         | 
         | > I did/continue to have issues with qt-webengine though, like
         | 144hz monitor with qt webengine is limited to 60hz but these
         | things are unrelated to qutebrowser.
         | 
         | I'm assuming you're already aware of it, but for context,
         | here's the related Qt bug:
         | https://bugreports.qt.io/browse/QTBUG-76006
         | 
         | > In fact most of my "bugs" can be related to upstream qt
         | webengine and wayland support. I feel bad for the authors of
         | qutebrowser for so often getting issues that is actually an
         | upstream bug in qt.
         | 
         | It's not that bad, qutebrowser also has more than enough bugs
         | on its own :D
         | 
         | Jokes aside: If I can reproduce something myself, I'll gladly
         | report it upstream. If possible in any way, I'll add a
         | workaround to qutebrowser. Sometimes neither is the case, then
         | I'll close those bugs asking the reporter to report them
         | upstream directly.
         | 
         | > It doesn't help that qt webengine work is rather slow (imo)
         | 
         | Yeah, it is. It's a relatively small team working on
         | QtWebEngine, and even just keeping up with Chromium changes
         | (and backporting security fixes) is a monumental task. When
         | they update their Chromium snapshot (a subset of the entire
         | Chromium tree), often there are millions of changed lines, and
         | I've heard they regularly need around a person-month or so to
         | adjust their stable API to those changes.
         | 
         | Still, there are only very few alternatives to it, and there's
         | no way qutebrowser could shoulder this kind of work directly
         | (by e.g. being based on Chromium's source, something people did
         | suggest in the past).
         | 
         | > There's magic about pressing "o" and typing in what you want
         | to search from history or Google which is so fast and
         | efficient. I have tried similar setups on other browsers but in
         | qutebrowser the search algos are so simple and snappy, it works
         | great. My colleagues sometimes were amazed at how fast I could
         | navigate across the browser all thanks to this great software
         | 
         | Hehe, yeah! There's a lot of logic people want to add to that
         | (e.g. sorting by frequency weighed in rather than just
         | recency), but all of that has the potential of making things
         | much less snappy. I kind of like the simple approach, but I'm
         | also open to improving it if it can yield even better matches
         | without sacrificing performance. It's a hard balance to strike
         | sometimes.
         | 
         | > Thank you qutebrowser!
         | 
         | You're welcome!
        
       | Abishek_Muthian wrote:
       | Another QtWebEngine based browser is Falkon[1], part of the KDE
       | project. It works well for _most_ websites which stick to
       | standard web development practices, has built-in ad blocker and
       | the reason to use it would be in memory constrained environments
       | as QtWebEngine seems to be quite memory efficient.
       | 
       | But the development is slow, last major release was in Mar 2019.
       | 
       | [1]https://userbase.kde.org/Falkon
        
         | anthk wrote:
         | Otter Browser is more recent albeit crashier, but the resource
         | requeriments are close.
        
           | The-Compiler wrote:
           | Note that Otter Browser uses QtWebKit by default, which is
           | based on a 2018 WebKit with many known security issues:
           | https://github.com/qtwebkit/qtwebkit/releases
        
           | Abishek_Muthian wrote:
           | Will check it out. By 'crashier' do you mean the browser
           | crashes or the website fails to load? If it's the former,
           | then I don't remember Falkon ever crashing.
        
             | anthk wrote:
             | The browser may crash, albeit it may be due to my QT
             | version (I use Slackware current). Falkon has been much
             | more stable on Slackware 14.2.
        
         | The-Compiler wrote:
         | > But the development is slow, last major release was in Mar
         | 2019.
         | 
         | I'm afraid it seems pretty much dead at this point... Looking
         | at https://github.com/KDE/falkon/commits/master there's only a
         | (non-automated) commit all couple of months or so. Also see
         | https://github.com/KDE/falkon/graphs/contributors
        
       | Phenix88be wrote:
       | I love Qutebrowser. I just never had Netflix working on it (Linux
       | Mint). So sadly I still use Firefox.
       | 
       | I hope this release fix what ever the DRM issue is !
        
         | VoidWhisperer wrote:
         | This seems relatively unlikely, mainly because the drm issues
         | are likely related to widevine, which google is notoriously
         | picky about who they allow to use it
        
           | The-Compiler wrote:
           | For some reason, it works just fine (at least last time I
           | tested) with QtWebEngine if it's available (e.g. because
           | Chromium/Chrome is installed on the same system).
        
         | j1elo wrote:
         | Related: https://news.ycombinator.com/item?id=25849800
         | 
         | The major players of the industry have DRM keys, and browser
         | competition is hindered by only allowing access to DRM
         | protected contents to some other vetted major players.
         | 
         | Nasty situation. But I guess it makes sense from the POV of the
         | entities that want to protect their contents with DRM (if DRM
         | was opensource... its use wouldn't make much sense)
        
           | The-Compiler wrote:
           | For some reason, DRM support works just fine (at least last
           | time I tested) with QtWebEngine if it's available (e.g.
           | because Chromium/Chrome is installed on the same system).
        
         | The-Compiler wrote:
         | This is nothing qutebrowser can fix - DRM/Widevine support is
         | something done entirely by the underlying QtWebEngine and
         | Chromium code.
         | 
         | It's a bit of a pain to set up, but it should be possible to
         | get it to work. Basically, you'll need to get an older Chrome
         | version (corresponding to whatever Qt version you're running),
         | extract the needed .so files from there, and then put them in
         | the right place so QtWebEngine picks them up. Unfortunately,
         | there's almost no feedback when it doesn't work.
         | 
         | Here's a rough guide:
         | https://www.reddit.com/r/qutebrowser/comments/jwb90w/how_do_...
         | 
         | Alternatively, someone there reported installing Google Chrome
         | on the same system did help.
        
         | sverona wrote:
         | Qutebrowser runs on top of Blink, which is the same guts that
         | are in Chrome. So if Widevine is packaged for some other
         | browser that is available on your distro, you can pass in the
         | QT arg
         | 
         | "widevine-path=/path/to/google/chrome/WidevineCdm/_platform_spe
         | cific/linux_x64/libwidevinecdm.so"
         | 
         | and it should work. This even works on NixOS, although you have
         | to pull the relevant path out of the Nix store, and I don't
         | know a good way to do that automatically that can fit inside a
         | qutebrowser config.
        
           | The-Compiler wrote:
           | QtWebEngine already detects a variety of places
           | automatically:
           | 
           | https://github.com/qt/qtwebengine/blob/v5.15.2/src/core/cont.
           | ..
           | 
           | So that flag is only needed if the file is in some strange
           | place (like I'm guessing is the case on NixOS).
        
       | chmanie wrote:
       | Any way to use a password manager like 1Password with this?
        
         | mssdvd wrote:
         | It works well with pass.
        
           | 3np wrote:
           | Did you do anything to integrate it or just solve pass
           | outside of qb?
        
             | ivann wrote:
             | You can use the userscripts : https://github.com/qutebrowse
             | r/qutebrowser/tree/master/misc/...
             | 
             | For example for pass:
             | 
             | config.bind('some key', 'spawn --userscript qute-pass')
        
         | DavideNL wrote:
         | I don't know, but FYI it seems someone wrote a script for
         | 1Password:
         | https://github.com/qutebrowser/qutebrowser/tree/master/misc/...
        
         | markstos wrote:
         | For Lastpass, I use a Rofi-based frontend on Linux.
         | 
         | A keybinding pops up a search box, I search for the entry I
         | want and paste it into Qutebrowser.
         | 
         | I like that it works outside the browser-- so I can unlock it
         | once and works across all browsers.
         | 
         | Also, I disable autofill anyway. Lastpass has had multiple
         | security issues with their autofill feature in the past and I
         | don't trust it.
        
           | The-Compiler wrote:
           | FWIW I use something similar for KeePassXC:
           | https://github.com/firecat53/keepmenu
        
       | Yuioup wrote:
       | The virus scanner on my work computer flags quotebrowser as
       | malware and deletes it outright.
        
         | kenniskrag wrote:
         | Maybe related:
         | https://github.com/qutebrowser/qutebrowser/issues/4269
        
         | eznzt wrote:
         | That is because you downloaded quotebrowser instead of
         | qutebrowser. You are welcome.
        
         | The-Compiler wrote:
         | Like mentioned by toyg in another reply, AV engines are really
         | overzealous when it comes to PyInstaller executables :(
         | 
         | Not much I can do about that, but I opened
         | https://github.com/qutebrowser/qutebrowser/issues/6081 to send
         | a couple of appeals whenever I'm bored enough to do so.
        
         | chucky wrote:
         | I'm honestly not sure how this comment helps anyone. Have you
         | tried contacting your employer's IT support or the antivirus
         | vendor about this issue?
         | 
         | Unless you think it actually contains malware?
        
       | xuhu wrote:
       | I'm building it now with PyQt from source on ubuntu-20.04 since
       | PyQt5-sip is missing from OS packages. Isn't this (a 50-minute
       | build time on a popular distro) seen as a big barrier to adoption
       | ?
        
         | Y_Y wrote:
         | I consider it a rare pleasure.
        
         | The-Compiler wrote:
         | > since PyQt5-sip is missing from OS packages
         | 
         | Arguably this is a Ubuntu (Debian?) packaging bug. Upstream
         | recommends using "PyQt5.sip" ever since PyQt 5.11, yet Ubuntu
         | seems to package PyQt 5.14 but retaining the old "sip" name.
         | 
         | I wasn't aware of it, or I would've kept the (quite small)
         | compatibility shim in v2.0.0 - I opened an issue here:
         | https://github.com/qutebrowser/qutebrowser/issues/6082
         | 
         | In the meantime, you could probably symlink it instead:
         | ln -s /usr/lib/python3/dist-
         | packages/sip.cpython-38-x86_64-linux-gnu.so
         | /usr/lib/python3/dist-packages/PyQt5/
         | 
         | (Though you'll then run into the next issue, apparently Ubuntu
         | 20.04 doesn't have importlib_resources packaged:
         | https://github.com/qutebrowser/qutebrowser/issues/6084 ...)
         | 
         | Alternatively, either use the Ubuntu "qutebrowser" package
         | (pre-v2.0.0), or install in a virtualenv instead:
         | 
         | https://github.com/qutebrowser/qutebrowser/blob/master/doc/i...
         | 
         | There's an option there to install a binary Qt/PyQt from PyPI,
         | so you don't need to build anything from source. However, note
         | that it comes without proprietary codec support.
        
       | vcxy wrote:
       | I really like this browser. The reason I don't use it is kind of
       | silly: Scrolling with j/k works so much more nicely with vimium
       | in firefox. It's such a small complaint, but it really is what is
       | keeping me away.
        
         | The-Compiler wrote:
         | Probably this issue is relevant:
         | https://github.com/qutebrowser/qutebrowser/issues/4768
        
       | jarbus wrote:
       | Donated to this project a while back, first FOSS project I
       | donated to. Worth 10x as much. No Vim keybind extension even
       | comes close to how well it works for me. Only downside is that
       | sometimes I need to go to chromium/ff for websites that don't
       | work with QB's webengine.
        
         | The-Compiler wrote:
         | Thanks for the support!
         | 
         | As for sites not working, if there isn't an issue about them
         | yet, please report them! Often all that's needed is either a
         | faked user-agent or a small JavaScript snippet:
         | 
         | https://github.com/qutebrowser/qutebrowser/blob/v2.0.1/quteb...
         | https://github.com/qutebrowser/qutebrowser/tree/v2.0.1/quteb...
        
       | app4soft wrote:
       | Does it support uBlockOrigin/uMatrix?
        
         | The-Compiler wrote:
         | It doesn't support WebExtensions (i.e. Chrome/Firefox
         | extensions) unfortunately - see the FAQ in
         | https://github.com/qutebrowser/qutebrowser/issues/30 for some
         | details.
         | 
         | However, the new built-in adblocker does a big part of what
         | uBlockOrigin does. As for uMatrix, there's
         | https://gitlab.com/jgkamat/jmatrix (though it's a rather
         | unofficial hack, and I have no idea if it still works with
         | v2.0.0).
         | 
         | I'd really like to integrate something uMatrix-like (with nice
         | keyboard usage) into qutebrowser some day, but so far I didn't
         | get around to it:
         | https://github.com/qutebrowser/qutebrowser/issues/28
        
           | app4soft wrote:
           | Thanks for the answers.
           | 
           | > > _Does it support uBlockOrigin /uMatrix?_
           | 
           | > _It doesn 't support WebExtensions (i.e. Chrome/Firefox
           | extensions) unfortunately_
           | 
           | JFTR, uBlockOrigin available as non-WebExtension for legacy
           | Firefox/PaleMoon.[0]
           | 
           | [0] https://github.com/gorhill/uBlock-for-firefox-legacy
        
             | The-Compiler wrote:
             | Fair point - though that's not supported by qutebrowser
             | either, and most probably never will be.
        
       | lk0nga wrote:
       | I'm really a fan of keyboard driven browsing (currently sticking
       | with chromium + vimium) so I'll give a try to qutebrowser and
       | would be cool if not only has adblocking but uMatrix and password
       | manager extensions so that it can become more of a daily driver
       | while staying snappy.
        
         | The-Compiler wrote:
         | There's https://gitlab.com/jgkamat/jmatrix though it's quite an
         | unofficial hack, and I have no idea if it still works with
         | v2.0.0.
         | 
         | I'd really like to integrate something uMatrix-like (with nice
         | keyboard usage) into qutebrowser some day, but so far I didn't
         | get around to it:
         | https://github.com/qutebrowser/qutebrowser/issues/28
         | 
         | As for password managers, as someone already mentioned in
         | another reply, there are userscripts:
         | https://github.com/qutebrowser/qutebrowser/tree/master/misc/...
        
         | chaorace wrote:
         | Password managers are supported via scripting integration. GNU
         | pass, lastpass, keepass, and bitwarden are all supported, you
         | just need to have the respective local CLI client installed.
        
       | pm3003 wrote:
       | I really love Qutebrowser. I'm mostly missing autofill/password
       | manager integration, but that's because I'm too lazy to learn to
       | write scripts for this.
       | 
       | I sometimes feel lost at work without it, and even Vimium doesn't
       | feel as good to me.
       | 
       | I'd be glad to get ideas from anyone willing to share confs.
       | 
       | And the unbeatable openness and availability of The-Compiler is
       | really appreciated!
        
         | The-Compiler wrote:
         | > I really love Qutebrowser. I'm mostly missing
         | autofill/password manager integration, but that's because I'm
         | too lazy to learn to write scripts for this.
         | 
         | FWIW there are various existing ones you could use:
         | https://github.com/qutebrowser/qutebrowser/tree/master/misc/...
         | 
         | > And the unbeatable openness and availability of The-Compiler
         | is really appreciated!
         | 
         | Thanks for the nice words! :)
        
       | curlypaul924 wrote:
       | So many of these types of browsers use webkit; I'm curious why
       | there aren't more that use gecko. Is it a technical issue or a
       | social one?
        
         | The-Compiler wrote:
         | Chromium/WebKit is available as a library in various ways;
         | Gecko isn't really.
         | 
         | I had hoped for Servo to fill that gap at some point, but so
         | far that hasn't happened yet:
         | https://github.com/servo/servo/issues/27579
         | 
         | Another possibility is for Geckoview to be ported to Desktop
         | platforms some day: https://mozilla.github.io/geckoview/ -
         | something the people behind Tridactyl would like to happen:
         | https://tridactyl.xyz/ideas/#port-geckoview-to-x86_64
        
           | KirillPanov wrote:
           | Mozilla is actively hostile to anything that smells like
           | "libfirefox". This is a big part of why they killed
           | xulrunner.
           | 
           | This is really sad. IMHO their adoption numbers would not
           | still be plunging if people had a way to insulate themselves
           | from the large, random, and often undesired changes in the UI
           | that are forced upon users with each Firefox security update.
        
         | Evidlo wrote:
         | Qutebrowser uses webengine.
        
           | curlypaul924 wrote:
           | Am I misunderstanding what webkit is? QtWebEngine uses
           | chromium, but I thought that necessarily implied a webkit
           | derivative (blink).
        
             | toyg wrote:
             | blink is basically a fork of a fork of webkit (which is
             | itself a fork of KHTML). It's in the same family, but
             | different.
        
               | abrowne wrote:
               | An ostrich and a woodpecker are similar in a lot of ways,
               | both birds descending from a common ancestor. But I don't
               | think you'd confuse them.
        
               | curlypaul924 wrote:
               | My question still stands. If webkit is a bird and gecko
               | is a reptile, then why are there (relatively) so few
               | reptile browsers? Is it easier to embed engines from the
               | webkit family, or are they popular because chrome and
               | safari are popular?
        
               | toyg wrote:
               | Largely the former. The efforts to make Gecko easily
               | embeddable, started some 15 years ago, have long
               | floundered.
        
             | cxr wrote:
             | > Am I misunderstanding what webkit is?
             | 
             | Yes.
        
           | pbronez wrote:
           | The Qutebrowser dependency list says it can use either
           | QtWebEngine (Chromium) or QtWebKit (WebKit):
           | 
           | > QtWebEngine, or alternatively QtWebKit (5.212) - This is
           | not recommended due to known security issues in QtWebKit, you
           | most likely want to use qutebrowser with the default
           | QtWebEngine backend (based on Chromium) instead. Quoting the
           | QtWebKit releases page: [The latest QtWebKit] release is
           | based on [an] old WebKit revision with known unpatched
           | vulnerabilities. Please use it carefully and avoid visiting
           | untrusted websites and using it for transmission of sensitive
           | data.
           | 
           | https://www.qutebrowser.org/
           | 
           | To use Geko (or hopefully Quantum) with Qutebrowser you would
           | need a nice QT integration. Poking around a bit, it looks
           | like Mozilla and Nokia did some work on this in 2008, but it
           | doesn't seem it ever got out of beta:
           | 
           | http://browser.garage.maemo.org/news/10/
        
             | The-Compiler wrote:
             | I had hoped for Servo to fill that gap at some point, but
             | so far that hasn't happened yet:
             | https://github.com/servo/servo/issues/27579
             | 
             | Another possibility is for Geckoview to be ported to
             | Desktop platforms some day:
             | https://mozilla.github.io/geckoview/ - something the people
             | behind Tridactyl would like to happen:
             | https://tridactyl.xyz/ideas/#port-geckoview-to-x86_64
        
         | simias wrote:
         | I suspect mainly technical. Chromium is already embedded
         | everywhere, Gecko a lot less so (I can't even come up with a
         | single modern example, although I'm sure they have to exist).
         | There's probably a lot fewer resources and support if you
         | decide to go the Gecko route.
         | 
         | I also vaguely remember reading somewhere that Gecko is a lot
         | harder to work with for third parties due to unstable APIs and
         | frequent breakage, but don't quote me on on this.
        
           | cxr wrote:
           | Neither Chrome nor Chromium use WebKit.
        
             | chaorace wrote:
             | You're _technically_ correct, because they use Blink, which
             | is a descendant of WebKit.
             | 
             | I'd say it's about as pendantic as insisting that Windows 7
             | is built on top of Vista as opposed to XP. The prior
             | statement is certainly more direct and strictly accurate,
             | but that doesn't mean the latter statement is automatically
             | false.
        
               | cxr wrote:
               | I don't know how to respond to this except to say that
               | anyone operating on either the assumption that Chromium
               | uses WebKit or the belief that Blink being a WebKit fork
               | means that it makes sense not to consider them
               | sufficiently distinct is mistaken one way or another.
               | 
               | People will act like the prospect of maintaining private
               | forks of NPM modules is a major crisis, but then convince
               | themselves--or let other people get away with convincing
               | themselves--that 8+ years of diverging development
               | involving two software giants' investments of billions of
               | dollars of engineering resources poured into implementing
               | their vision of what is one of the most complex and
               | complicated undertakings that exists in software
               | development is somehow no big deal.
               | 
               | (And that's not what "pedantic" means. Both this
               | parenthetical and your comment are examples of pedantry.)
        
       ___________________________________________________________________
       (page generated 2021-01-28 23:02 UTC)