I’d love to use Nyxt, but it doesn’t work. It doesn’t work because, despite claims to be engine-agnostic, in practice it can only be used with webkitGTK. WebkitGTK displays (CSS and HTML validating) pages with loads of rendering errors. I’ve tried it on pages that look identical and are rendered correctly in Firefox, Chrome (and all Blink browsers), and Safari, but do not render correctly in Nyxt. The incorrect rendering is reproduced exactly with Epiphany, the official Gnome browser that uses the same engine—so I know that the problem is with webkitGTK. If anyone can explain how to unlock the supposed engine-agnosticism of Nyxt so that I can try it with Blink, I would like instructions.
Thank you for your feedback. You're 100% right. The framework is in place, however the implementation is not! We wanted to get Nyxt to a level of feature sophistication before focusing on supporting (not just prototyping) two renderers as it can slow down progress!
With 3.0.0 on the horizon, now is an ideal time. Once again, sorry about the issues you've had, we're doing our best!
I've been playing a bit with WebkitGTK for my own development and found the same thing—I was learning how to use SVG and was getting really confused about how transform-origin was supposed to work... then I tried the same SVG in Firefox and Chrome and realized that my understanding was correct and it was WebkitGTK that, for whatever reason, didn't handle it correctly. Even over a relatively short time I ran into a number of CSS, SVG and DOM manipulation behavior that WebkitGTK seems to handle incorrectly.
Bummer. I know that WebKitGTK also had problems with playing video on video streaming sites. So hopefully they figure something out with other engines soon.
I'm interested in the History at a tree feature. And if they can get their bookmark tags to extract tag data from blogs and question and answer sites that would be great.
I've also hit this issue. About a year ago I made an effort to use blink, but after a bit of work I recall essentially discovering that any support was effectively abandoned. I wish they would remove the note in the FAQ about supporting multiple engines, as it doesn't seem to be the case.
At most it’s a description of an aspect of the project’s internal architecture. It means absolutely nothing to the end user.
I believe that the Nyxt website should have a big red banner warning people that, because it uses a rendering engine that is not conformant and, I suppose, is a work in progress, it can’t actually serve as a practical web browser.
This would save people from wasting time installing it only to find out that it doesn’t work. And remove the misleading comments about it being engine-agnostic. I really don’t understand what they hope to accomplish by forcing people to discover the true nature of their project the hard way, but it leaves a bad taste in my mouth. The same goes for Suckless’ surf browser and others. For their part, the wekitGTK website falsely claims that their engine is “a full-featured port of the WebKit rendering engine”. As mentioned in another comment, these rendering errors do not appear in Safari, which uses WebKit.
I think that it just uses the system webview, whatever that is. I don't think it offers "dynamic" switching between multiple implementations.onnthe same platform.
Doesn't it use WebkitGTK, at least on Linux? I expect it has the same problems, but it's less of a problem for developing UIs than for browsing to arbitrary web pages—it might get a bit annoying, but you can always work around the inconsistencies or limitations by tweaking your own HTML/CSS/etc.
Yes, same here. I want to want this, but the lack of third-party resource control (I'm a big uMatrix user) means I don't trust most browsers, and I don't want to resort to running my browser in a container.
I thought that earlier versions (when it was still called Next) did support keyboard-based browsing, but maybe I'm misremembering (I toyed with uzbl too). The first thing I'd want for keyboard-based navigation would be an easily accessible cheat sheet.
It does support keyboard-based navigation, and you can define your own bindings to any of the functions so you can alter the defaults or extend them to your own purposes.
Scroll down to "Visual mode" for their take on vim-like bindings.
You can disable javascript in qutebrowser, and the default adblocker works pretty good if you remember to update your sources, but I agree that it's not like ublock Origin
uMatrix gives you way more fine-grained control over this (JS on/off per-domain and per-subdomain) along with lots of other features and a great UI that makes all this manageable. Just a simple on/off switch for JS is no comparison.
So one of the most powerful features of emacs is everything being implemented in lisp so everything can be tweaked, edited, replaced, etc. This kind of flexibility is amazing for my text editor because every 3rd party package I install can change ANY aspect of emacs, giving them the same power that the official emacs code has. I'm not so sure I want that kind of flexibility in the software that handles my passwords, my banking details, my private communications, and my pornography.
Is there anybody who uses more than one browser as daily drivers simultaneously? What's your workflow like? I have tried to give Nyxt multiple tries but had to give up cause some things just don't work and had to use Firefox for those.
The use of tools like Finicky (https://github.com/johnste/finicky) have made it pretty easy for me segregate certain workloads to certain browsers (as long as the links are opened from outside of the current browser).
Safari is my daily driver, but I only take Google Meet meetings in Chrome and Teams meetings in Edge. I’ve also forced certain JIRA URLs to different browsers (Firefox or Edge, depending), because I have to be logged in as particular users for them.
I rarely use other browsers for anything else, but will occasionally test things in them—but using the separate browsers has been really good for segregating certain classes of work.
I'm curious about the workflow. Finicky is set as the system default browser, and then how is that typically invoked when using Finicky? Spotlight? A custom app? Shell tool? etc.
Safari for general browsing (and default) because it's the most energy efficient one.
Firefox for work. The best implementation of pinned tabs. Shame it's a resource hog.
Chrome for reference and research type stuff. No reason why Chrome, I just want that separate from other contexts.
Chrome Canary for development. Still a Chrome, the best browser for development, but I get to separate all the reference stuff nicely from actual Chrome
Brave for streaming, because it's still a Chrome (so supports all the things) and blocks video ads really well.
Tor for... nice try, FBI. :)
I set up iTerm to open up reference type links I care about in Chrome, and all the other ones in Safari.
I use several different browsers. I have one completely locked-down (no images, js, cookies, etc), exceptions by whitelist-only + host blocking. That one is used for most of my daily browsing. I use a separate browser for anything that requires webapps or cookies, and an entirely different computer for anything financial or important. The only problem I have is occasionally being frustrated by how bad the Chrome and Firefox UIs are compared to literally anything else, or even themselves a few years ago.
I have really aggressive privacy mechanisms on Firefox and when they break something I need to do I switch to Chrome to do that one thing. (It seems to be mostly a certain kind of oauth flow that gets broken, I’m not curious enough to figure it out because I couldn’t change it anyway)
Every day, firefox for "personal" stuff, chrome for work stuff. Of course, these are both very mainstream browsers so I would be very surprised to come across things in the wild that don't work in both (that wasn't caused by my configuration).
Brave for general browsing/watching videos, Chrome for work apps, Firefox w/ FoxyProxy for some stuff at work only reachable via SSH tunnel, and whatever the embedded Chromium that ships with BurpSuite is for testing webshits.
Each will tend to have a fuckheap of tabs open too.
Yeah, I alternate between Brave, Chromium, Firefox, and Opera (and Safari on Mac). Firefox any time I want to try to download some media like YouTube vids that are difficult or impossible in other browsers. Brave, Chromium, and Opera are all Chromium under the hood so they’re pretty interchangeable. And Safari on my Mac laptop for optimal battery life.
The last three companies (including where I am now) use Google GSuite so I use Chrome on my MacBook for work. I otherwise use Safari. This makes sense to me.
BTW, I used to donate to the Nyxt project but I started having major difficulties getting it installed (perhaps this is when I did the M1 transition?).
Just because it's a third browser that I happened to have installed. Separation of concerns and all. I keep Spotify and Brave in their own workspace on sway/i3, and have YouTube and SoundCloud loaded in Brave.
This looks really nice! I will definitely try this out when I get the chance, although as it is I can't do much other than playing around with it - I'm stuck with windows :(
Interesting observations from the comments in this thread so far:
- Nyxt merely integrates WebKit so isn't actually a browser, where a browser consists of an HTML and CSS parsing and rendering engine, plus, optionally, Js; this is disappointing insofar as the enormous HTML and CSS tower-of-Babel specs produced over the last 20+ years still are unproven by a from-scratch implementation
- professional web users other than on Mac OS use Chrome for webapps and FF for actual web sites (presumably b/c privacy features), giving rise to the perspective of separating-out extant web apps into containerized Electron apps in the future (where those aren't already eg MS Teams et al), so by chance we can get rid of the Js ballast and recent CSS atrocities and return to a healthy competitive browser landscape.
I haven't checked if it already includes it, but they have made a Common Lisp binding for Qt WebEngine which uses code from Chromium, so it at least seems to be the plan.
qutebrowser used to use QtWebKit back in 2013, but doesn't use it anymore by default ever since its v1.0.0 release in 2017.
Ever since then, it uses QtWebEngine, which is based on Chromium. You can still use it with QtWebKit (at least until the upcoming v3.0.0 release), but that's mostly for historical reasons - I really can't recommend it, as QtWebKit is still based on a WebKit from 2016 and pretty much dead.
nyxt has channel (for example, different settings for youtube, wikipedia, etc) where you can customize keybindings, noimage, nojs, darkmode for each url/domain
I get the technical merits, and that they would appeal to places like HN in particular, but I'm getting really tired of the whole "Project X, in language Y" meme (typically with a higher emphasis on Y than on X, and no indication why this even remotely matters in the slightest).
Imagine other professions doing it:
- I've written a new symphony ... IN SIBELIUS!!!
- I've published a new patent on artificial heart valves ... USING MICROSOFT WORD!!!
- I've discussed with our local parliamentary representative a new legislation on copyright law ... USING MY SAMSUNG GALAXY!
I think I understand your point. But, maybe, what you are missing is that the "language Y" is the reason behind multiple "competitive advantages" and cool features behind "Project X".
For instance, Common Lisp is really introspectable. This is the reason why Nyxt is so good for live hackability (inspecting and changing things on the fly).
See the lecture below on the connection between the architecture of Nyxt, the language (Common Lisp), and the features:
Yeah, I get that. But that's exactly what I mean. If you're going to focus on Y instead of X, make it obvious why this is relevant. If not, one of two things happens: 1) it sounds irrelevant and gives the impression it's just fanboyism, or worse, 2) it effectively says "if you're not in the inner circle enough to know and be excited for the Y more than the X already, then I don't have to tell you and this isnt for you."
Which means you as the interested reader now have to go spend your precious time learning all about Y independently, from scratch, to figure out whether it is in fact important in this very specific case, or if it is just fanboyism.
Very annoying and disrespectful to an otherwise interested reader. Either state your call to action up front and why Lisp is a feature, or leave it out entirely and focus on the product.
(not having a go at nyxt specifically btw, just frustrated at the trend with this kind of titles.)