7 ms·
Qutebrowser: A keyboard-driven, Vim-like browser
- sylware 2y agoPlease, tackle the _real_ issue: we need an implementation of a modern 'web browsers' using a 'simple computer language' (for instance C99+, namle C99 with few bits of c11 for modern architecture programming).
- dotancohen 2y agoI understand the sentiment, but who are the "we" who "need" that?
- sylware 2y agoHumanity, not AI bots.
- bramhaag 2y agoWhy do "we" need this?
- ramon156 2y agoBecause "we" need a browser that doesn't need a rewrite in the next 20 years
- sylware 2y agobig tech is evily smart: since everything is open source, they are still doing vendor lock-in via grotesque and absurd complexity and size, breaking little things here and there, or using unspecified part which is "implementation defined" etc. Not seeing that is borderline blindless than a lack of perspective. Open source is far from being enough anymore, we (the humanity) need lean open source (including that bloody SDK, which excludes de-facto ultra-complex computer language like c++/rust/java/etc).
- sylware 2y agoSee above.
- orbisvicis 2y agoDon't forget lisp! This is particularly relevant because of the Nyxt browser which was also recently posted here. https://en.m.wikipedia.org/wiki/Lisp_machine https://en.m.wikipedia.org/wiki/Lisp_machine Also c23 is supposed to have better unicode support but I've never really bothered internalizing the "translation character set" and whatnot.
- sylware 2y agoCome on, this was about the language syntax, not some external massive util library. Ofc, this web engine would implement mostly its own utils, since dependency on external kludge like unistring or ICU or even worse harfbuzz(c++!)... would nullify the advantage to depend on a simple computer language. I did not look that much into it but I can bet that 'lisp' browser is actually just a 'lisp front-end' to big tech web engines... namely a scam, please prove me wrong. I would write a browser in RISC-V assembly with a small macro pre-processor, but the issue with the web is its infinite scope killing any non big tech, real-life, alternative attempt, and not for the good reasons.
- orbisvicis 2y agoYes, but via rpc rather than bindings: https://nyxt.atlas.engineer/article/technical-design.org https://nyxt.atlas.engineer/article/technical-design.org I think it's an elegant design that sidesteps many issues, and since bindings aren't involved you are designing purely in the language of choice. You can't expect every project to reimplement every library down to the stdlib.
- sylware 2y agoYou always cherry-pick the code you want, and in the worse case scenario you port it or the part you want from it (open source powa). Often, performance critical code paths of significant size are assembly anyway or when small, they are built-in to maximize inlining to avoid a function call. And like it was exposed below: in this end, this is sort of not very honnest, because this is just another Big Tech engine front-end.
- ComputerGuru 2y agoWho is “we” and why do we need it in a “simple” language prone to memory errors where people have to non-portably reinvent every wheel? Signed, someone that writes and distributes apps/tools written in “less simple” languages and apps/tools written in zero-dependency and even libc-free C.
- sourcepluck 2y agoNyxt already exists, and fits your description perfectly
- sylware 2y agoIndulge me and let me be lazy and answer this question: Is Nyxt _NOT_ just a front-end to one of the Big Tech web engines? (blink|geeko|webkit) I would be super pleased to be wrong...
- sourcepluck 2y agoOh sorry, just realised I replied to my own comment instead of yours :D see my response above!
- sourcepluck 2y agoNyxt is basically a front-end to the Big Tech web engines, yes, but one that (I think sincerely, from my not-overly-technical standpoint) attempts to re-empower the user. I didn't understand your original point about needing "a modern web browser" with "a simple language" (I'm not sure it was clear, by itself...), but I read your other comments, and I understand your point better now, I think. I agree that "open source" itself is absolutely not enough, and that another prerequisite to fighting for practical computing freedom is to have "human"-sized tools. Fully on board with that (I wonder if you've seen the malleable systems forum, actually...). I think Nyxt would love to provide that, eventually, and are trying to fight that fight, on a stacked battleground, in an imperfect world. For example, gopher and gemini are supported. And they're trying to support different renderers. They're trying to make the browser fully configurable and programmable as far as they can, in spite of the shortcomings of the web. Tell me if this is completely beside your point, but in case it helps you in seeing what they're about, have a look at: https://nyxt-browser.com/article/command-line-programs.org https://nyxt-browser.com/article/command-line-programs.org Or, much more technical, too technical for me, and it's a bit dated so the exact design might have changed, but maybe you'll get something from the overview nonetheless: https://nyxt-browser.com/article/technical-design.org https://nyxt-browser.com/article/technical-design.org Maybe that's not enough, and you think the solution has to be more radical, but I don't know what it would be, other than a new set of networking protocols comes along and somehow supercedes the ones we have now. Which could happen, I don't know, I'm only still only learning about the ones we currently have :D Also, have you seen surfraw? Or do you have examples of the kind of thing you'd like to see being attempted in the wild? I'd be curious to see them. p.s. I responded to a point you made 8 days ago about email in a different thread [https://news.ycombinator.com/item?id=42287607 https://news.ycombinator.com/item?id=42287607] and thought I'd say to you here in case you'd be interested in elaborating over there!
- graiz 2y agoChrome extension - vimium does the same thing. I've been using it for years.
- bramhaag 2y agoQutebrowser fixes the main issue I have with Vimium: you cannot control the browser itself well. Vimium does not work in certain places due to limitations imposed by web extensions and this is incredibly frustrating for me.
- Timothee 2y agoI’ve used both for many years. I’ve stopped using qutebrowser because it has some limitations due to be a bit behind on the web engine, which leads to problems with some sites. I still think it’s brilliant. I wouldn’t say they do the same thing exactly. Vimium is similar to a vim-mode in something like VS Code, while qutebrowser is more like Vim itself. The Vim “spirit” is built-in and is the expectation rather than a layer added on top. The qutebrowser UI, already minimalistic, is also very configurable and scriptable. The flip side to me is that some of the experience will be nicer with Chrome, the same way VS Code can be nicer and easier to manage.
- porphyra 2y agoConfiguring the qutebrowser UI is a major reason I used qutebrowser for some years. I love ricing my system and saving screen real estate with a minimal UI bloat is nice.
- The-Compiler 2y ago> I’ve stopped using qutebrowser because it has some limitations due to be a bit behind on the web engine, which leads to problems with some sites. Assuming you're on Linux, that's usually more of a problem with Linux distributions being behind on QtWebEngine. Though yeah, sometimes things are tight with QtWebEngine only updating their Chromium baseline once every 6 months. I try to ship workarounds (in the form of polyfills) with qutebrowser when I know about breakage, but usually for me things run smoothly.
- dijit 2y agoI really enjoy using qutebrowser. It’s a shame that I often end up using more than 100GiB of RAM with a few dozen tabs, almost like it leaks memory. I’m aware of the inherent fragmentation of memory with python over time- so could be that. There’s also been a few times where the limitations of using qtwebengine (chromium wrapper) underneath were frustrating - though I can barely remember what they are at this point. The python config is great too, I use it to disable javascript conditionally. :) Theres also some magic feeling when pressing “o” and having access to the world.
- shimonabi 2y agoWhen I tried to install the Windows release, I got a message that it contains the Vigram.A virus.
- The-Compiler 2y agoSee https://github.com/qutebrowser/qutebrowser/issues/8389 https://github.com/qutebrowser/qutebrowser/issues/8389 - unfortunately there's a lot of stupid false-positives especially with PyInstaller (packaging a Python application into an .exe). Happens a few times a year, unfortunately there isn't much I can do other than submitting a report to Microsoft and hoping they'll react ¯\_(ツ)_/¯
- _kst_ 2y agoI got the same thing and worked around it by installing the previous release.
- shubhamkrm 2y agoOh! This takes me back. I used it as my primary browser during the Firefox 57 saga, and continues to use it for over an year. The developer was very responsive to bug reports, and fixed the issues right away. Unfortunately, I moved away from the Linux ecosystem as my primary computing environment, but I would still recommend this if someone wants to try a Vim-based browsing experience and is willing to try out a new browser.
- The-Compiler 2y agoFWIW there are Windows/macOS builds too.
- JadeNB 2y ago> I used it as my primary browser during the Firefox 57 saga As an early lover of Firefox, I'm sorry to see its progression away from its ideals, and can't keep track of which part of the saga happened when. Was that when they removed XUL?
- iLoveOncall 2y agoHow is this not extremely inefficient to use? I guess you can use the "hints" as shown in https://github.com/qutebrowser/qutebrowser/blob/main/doc/img/hints.png https://github.com/qutebrowser/qutebrowser/blob/main/doc/img... but this is such a poor experience I can't fathom someone wanting this. All browsers already support keyboard shortcuts for 90% of the common browser operations (next / previous page, focusing the address bar, etc.), and anything on the page itself seems like a massive chore (except scrolling, which browsers also support).
- IshKebab 2y agoMy theory is that some people see use of a mouse as a sign of noobery - which is true in some cases! Who do you think is more pro - the person who clicks Edit->Copy, or the person who clicks Ctrl-C? So their lizard brain thinks "mouse=stupid, keyboard=smart" and then they optimise for a sense of superiority.
- jwiz 2y agoSwitching back and forth between keyboard and mouse is a pain. I used QB a lot at my last job but current one has too many things which need passwords entered frequently so I am reduced to vimium and chrome.
- vunderba 2y agoOr you know could be: - a user who prefers to minimize switching from mouse to keyboard, or vice versa - a user who has some RSI issues related to the index finger when clicking a mouse etc. etc. But no, let's go with the deliberately antagonistic strawman.
- nosioptar 2y agoI prefer the keyboard due to severe tendonitis in my wrist and arthritis in my hands. I can use a keyboard all day with no problem. A few hours with a mouse leaves me all swollen and in pain.
- IshKebab 2y ago
- ykonstant 2y agoI tried really hard with QB, and still use it for some tasks, but the lack of Ublock Origin makes browsing random sites horrible. People say the builtin ad blockers are good enough; for me, they are not even remotely good enough :(
- alrs 2y agoI've had good results running alt-browsers behind Privoxy. https://www.privoxy.org/ https://www.privoxy.org/
- dalai 2y agoIt is a real pity that the major browsers don’t support better keyboard navigation out of the box. Due to work restrictions, I can only really use firefox, chrome or edge and no addons/extensions. There’s a 14 year old ticket for firefox (still open), but the reaction back then was that it is a niche feature better suited for an addon.
- monroewalker 2y agoI tried an extension once that provided these navigation shortcuts for all the links on a page. It was really convenient but then I was on an admin page for our team and accidentally hit a couple keys that pressed some random button. The page was full of buttons that had irreversible effects which were executed without confirmation. Of course that’s an issue itself for the page but that’s kept me from trying this again. The convenience those shortcuts provide also makes it concerningly easy to press something on accident. Much more likely than accidentally clicking something. Having extra leader keys or some other approach to reduce accidental presses would detract from the convenience… Curious if anyone else has run into this or configured their setup in a way that maintains the convenience but reduces the accident likeliness. Holding a modifier key or adding leader keys actually does seem like I’d go a long way in reducing accidents with minimal hit to effectiveness
- michaelbuckbee 2y agoI've used the Vimium chromium extension for years and it has a keypress to activate the search links and you can also disable it per domain.
- fleaaa 2y agoWith Vimium, you can toggle the type to navigate mode so that it doesn't invoke unwarranted shortcut
- dmytrish 2y agoYes, I find it easier to press single quote in vanilla Firefox, start typing the most unique looking part of the link text, see it become green, press Enter to confirm. The link search feature in Firefox is one of the reasons that keep me using it.
- The-Compiler 2y agoI had no idea that existed, that's pretty cool!
- sourcepluck 2y agoSomeone was triggered by the Nyxt post getting so much attention... =D I like Qutebrowser very much, though. Used it for a good spell and was very happy. I'd some bug I couldn't fix which was driving everything really bonkers, but I honestly did not investigate it that hard, I'd been using it for a while at that stage (over a year, I'd guess, anyway) and was ready to move on and try something different, so I solved that bug the old fashioned way. Nyxt scratches the same itch now, but moreso, and it has Common Lisp behind it, which is much more interesting [to me personally!] than Python.
- einpoklum 2y agoMust be the cutting-edge-pun-not-intended browser compeition day...
- fleaaa 2y agoVimium does the same but it's just an extension so you can keep the goodies without switching the browser
- w4rh4wk5 2y agoThe README mentions some ad-blocker integration. Is there an element zapper (click on element on the page to remove it temporarily)?
- The-Compiler 2y agoThe devtools let you do that FWIW.
- bheadmaster 2y agoFlorian Bruhin (AKA the-compiler, the author of qutebrowser) is one of the kindest and most dedicated open-source maintainers I've ever had the pleasure to interact with. I've used qutebrowser extensively in the past, and reported a few bugs, each of which has been met with interest and engagement. Some of them even uncovered bugs in the upstream software (e.g. QtWebEngine) which were reported there. I eventually stopped using it when YouTube ads became too invasive, and went back to Firefox + Vimium + uBlockOrigin. I sometimes miss the programmibility of qutebrowser, but Vimium at least gives me the basic Vim-like browsing features.
- The-Compiler 2y ago<3
- einpoklum 2y ago1. It's QtWebEngine + Python tying the chrome together. 2. I wonder... how good is its Right-to-Left support?
- The-Compiler 2y agoRTL support should be as good as Chromium's for web contents (as QtWebEngine is based on Chromium), and as good as Qt's for the UI. Admittedly I never tested, but if you notice something in the UI that doesn't look right, I'd be happy to have a look and see if there's something that can be improved there.
- metta2uall 2y agoI'd love to use this but a key problem seems to be that they don't get updated as soon as a security fix is released, which for browser engines is quite often...
- The-Compiler 2y agoNote that on Linux, the browser engine (QtWebEngine) is installed/updated separately from qutebrowser. They have a new feature release (updating to a new Chromium baseline) every 6 months, with patch releases backporting security fixes every 1-2 months. Not optimal, but some Linux distributions also backport security fixes as soon as they happen, which is much more often: https://codereview.qt-project.org/q/project:qt/qtwebengine-chromium+subject:%22%5Bbackport%5D%22 https://codereview.qt-project.org/q/project:qt/qtwebengine-c... Then there is the issue of "stable" Linux distributions (mostly Debian/Ubuntu) which never get those updates to you unfortunately, and don't seem to care about those being security-relevant either. Not much either qutebrowser and Qt can do about that sadly, but you can install Qt from somewhere else, e.g. from the PyQt binary builds if you don't mind losing proprietary codec support: https://qutebrowser.org/doc/install.html#tox https://qutebrowser.org/doc/install.html#tox As soon as a new Qt/PyQt is out, there is usually also a new qutebrowser release bundling it for Windows/macOS releases.
- krobelus 2y agoAmazing project, very useful
- sunshine-o 2y agoQutebrowser is a prime example of how to fix the user experience of a somehow not optimal software (the web browser). Of course you need to understand vi as a prerequisite, a few hours to configure it and maybe a few weeks to really get you use to it. But damn the benefits after are enormous. Congratulations to the developers !
- The-Compiler 2y agoThanks for the nice words! :)
- telmac 2y agoI love qutebrowser but it still relies on a very old Webkit and is not usable on a substantial fraction of sites...
- The-Compiler 2y agoHuh‽ While running with QtWebKit still happens to work, qutebrowser has supported QtWebEngine (based on Chromium) since 2016 or so, and it's been the default since v1.0.0 in 2017. If you're still using it with QtWebKit despite the warning being displayed about it, or using a heavily outdated qutebrowser version, that's on you and not qutebrowser... If you're running an up-to-date Qt and qutebrowser, that'll currently be based on Chromium 122 from April 2024 (with security patches up to Chromium 131).
- tvshtr 2y agoServo when?
- The-Compiler 2y agoI might experiment with it if they improve their embedding story, and if someone (not me) makes it work with Python and Qt. Sadly, https://github.com/servo/servo/issues/27579 https://github.com/servo/servo/issues/27579 has been pretty dead for the past years. (And before someone asks for Ladybird backend support: Same story there)
- tvshtr 2y agoIt seems that they moved it since to a bigger meta issue and it's actively being worked on https://github.com/servo/servo/issues/30593 https://github.com/servo/servo/issues/30593. There's wider interest since it is being used in the experimental Verso browser now. There's also ongoing effort from the Qt side: https://www.kdab.com/embedding-servo-in-qt/ https://www.kdab.com/embedding-servo-in-qt/
- 2y ago