13 ms·
Show HN: Nyxt Browser 2.0.0
- jmercouris 5y agoIf you have any questions, I would be glad to answer them :-) You can also check out our FAQ https://nyxt.atlas.engineer/faq https://nyxt.atlas.engineer/faq
- rjzzleep 5y agoDoes the block-mode work like DNS blockers or does it do more advanced blocking? Also, is there a way to securely interface with things such as keepassxc without leaking secrets while piping stuff?
- jmercouris 5y agoIndeed there is; we are cognizant of this problem! As per block mode, it can block stuff by predicates, URLs, and any logic you like.
- rattray 5y agoOne question I had, which is partly answered in the FAQ, is what rendering and JS engines are used. The FAQ says it can run on either WebKit/WebEngine (Blink) – how does it decide? Which is the default, and are there tradeoffs to using one or the other with Nyxt specifically? What JS engine is used?
- chalst 5y agoThe FAQ entry talks of their being a basic interface: the point is that these two engines have code that realises this interface. Other engines could also provide implementations of this interface. I'd be pleased if a Servo hacker stepped up and did this.
- Y_Y 5y agoWhat would it take to get this working with Servo? I know Servo itself isn't really done yet, but let's ignore that for now.
- chalst 5y agoI hope someone rolls by and answers: I am at the stage of following enough to be interested in the concept of integrating all the parts of a DOM engine with a proper GPU-friendly compositor in a modular way, but not at the stage of understanding the interfaces of the modules.
- jmercouris 5y agoEverything needed is at the bottom of the browser.lisp source file, one would need to implement all `ffi-*` named functions.
- whitten 5y agoWhat is Servo you want to work with the Nyxt browser?
- pollyranna 5y agoThe download page says I can install from guix but I don't see it listed as an installable package in "guix search" or on https://guix.gnu.org/en/packages/N/ https://guix.gnu.org/en/packages/N/ Is it available through guix?
- mbakke 5y agoThe Guix package list is paginated, you need to navigate to the second page: https://guix.gnu.org/en/packages/nyxt-2.0.0/ https://guix.gnu.org/en/packages/nyxt-2.0.0/ If "guix search nyxt" does not work, perhaps you need to 'guix pull'?
- kagevf 5y agoI've installed a few of the v2 pre-releases using guix, and I assume that this version is also available.
- monk_the_dog 5y agoJust tried it and my first impression is: "this was built for me! I love it!". One bit of friction: I'm in vi mode. I hit 'f' to follow links. Apparently I need to hit 'i' before it will accept input. It would be better if it started in insert mode. Example: 'f' followed by 'g' just prints 'pressed key g'.
- jmercouris 5y agoPlease create an issue on GitHub for this so we do not forget! Thank you!
- bikenaga 5y ago1. You list enchant as a dependency - it seems to have been removed from debian testing/unstable (see https://tracker.debian.org/pkg/enchant https://tracker.debian.org/pkg/enchant). You might want to change/adjust the list of dependencies (on https://github.com/atlas-engineer/nyxt/blob/master/documents/README.org https://github.com/atlas-engineer/nyxt/blob/master/documents...). It didn't seem to matter for the build. 2. I just built nyxt from source on debian testing - make all works, but make install fails with Unhandled SB-INT:SIMPLE-FILE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {10018782D3}>: Can't create directory /usr/local/share/applications/ I can invoke the browser from the build directory. 3. Is there a way to clear things like history, cookies, form data, and saved passwords (either immediately or automatically when the browser is closed)? It's what I do with firefox. Also, is there a way to automatically clear the cached stuff in ~/.cache/nyxt?
- jmercouris 5y agoYou can add a pre-quit, or startup hook handler to clear your cache. Please see the manual section about books.
- bikenaga 5y agoIgnore my comment about make install failing. I just forgot the sudo - worked fine the second time. I'll check the manual about hooks. Thanks.
- mark_l_watson 5y agoThis is a cool project that I have tried a few times in the past. To me, the big draw is that it is written in Common Lisp. I was a patron contributor for a while, but when I had problems building from source, I stopped. Interfacing Common Lisp to things like WebKit, GTK, or Qt to build Nyxt was probably the reason I failed building from source, IIRC. This is probably a bad analogy, but forty years ago Lisp Machine subsumed the operating system. In modern times, in some sense the web browser is like an operating system layer, or at least a portable application platform. So, my bad analogy is that Nyxt is like a Lisp Machine. If I have time, I will try to build from source today. I just reread the dev source install instructions, and it does look straight forward. Hopefully being on a M1 MacBook won’t affect the build process.
- jmercouris 5y agoThanks Mark, I really appreciate that. We’re working on a Nix recipe to make it easier on MacOS, making some progress https://github.com/NixOS/nixpkgs/pull/116233 https://github.com/NixOS/nixpkgs/pull/116233
- cle 5y agoThis is the vision from my understanding. I think of it as Emacs for the web, instead of just text. Super compelling vision, I really hope they can pull it off. I’ve tried Nyxt a few times but I find it quite difficult to hack on, at the time it required an elaborate Emacs + SLIME + Common Lisp setup…I don’t use CL very much so it was a lot of work and quite fragile. I hope they can get editing bootstrapped into Nyxt so that I can modify it in Nyxt itself instead of a bunch of complicated external tooling. As it stands, there’s too much friction for me to hack on it. Regardless, tons of promise and I’m eagerly following its development!
- vindarel 5y agoIt seems they did it! > New simple built-in editor capabilities so that you can easily script Nyxt without opening up an external editor. (last screenshot)
- 5y ago
- Bladestorm1011 5y agoPretty cool, definitely going to look more deep into this. Been using vi which is supported just not sure till what extend, will be messing around with it for a bit.
- jmercouris 5y agoIt is fully supported, everywhere!
- theSealedTanker 5y agohow does it compare with something like qutebrowser? or using chromium with a extension like vimium?
- wraptile 5y agoI've been using qutebrowser for few years now - how does Nyxt compare to it? I love seeing more keyboard driven software!
- jmercouris 5y agoThanks for the question, we hint at in our FAQ “ Nyxt differs fundamentally in its philosophy- rather than exposing a set of parameters for customization, Nyxt allows you to customize all functionality. Every single class, method, and function is overwritable and reconfigurable. You'll find that you are able to engineer Nyxt's behavior to suit almost any workflow.” https://nyxt.atlas.engineer/faq https://nyxt.atlas.engineer/faq
- ibraheemdev 5y agoWhy are most open source browsers based chromium as opposed to gecko? I would think much of the OSS community would be opposed to using google owned software.
- sequence7 5y agoI suspect the answer is because of compatibility. Chromium has become the industry standard, everyone tests only on Chrome (and Safari for mobile) so you can expect fewer issues if you're based on chromium.
- graderjs 5y agoBut I think it's a valid question. Because for a niche browser (which most of these alternate projects are), mainstream compatibility for all websites doesn't seem like it would be the most important thing. I think the idea of using Gecko[0] is a solid one. :P ;) xx [0]: https://github.com/mozilla/gecko-dev https://github.com/mozilla/gecko-dev
- sequence7 5y agoI agree it's a valid question and it seems my suspicion is not the main reason. Based on the other replies to the parent it seems that choosing Gecko requires more work.
- mavroprovato 5y agoIf I'm not greatly mistaken, there is no way to embed Gecko in a desktop application right now
- jmercouris 5y agoWe are not based on Chromium, we are engine agnostic. As to why no Gecko support? Mozilla does not make it easy!
- servilio 5y agoHave you looked at Servo instead?
- ibraheemdev 5y agoNyxt just hit the top of the front page recently for anyone interested in reading past discussions: https://news.ycombinator.com/item?id=26509612 https://news.ycombinator.com/item?id=26509612
- dang 5y agoThanks! Looks like the previous discussions (including that one) are: Nyxt Browser - https://news.ycombinator.com/item?id=26509612 https://news.ycombinator.com/item?id=26509612 - March 2021 (125 comments) Nyxt browser: mouseless cpy/paste - https://news.ycombinator.com/item?id=25956152 https://news.ycombinator.com/item?id=25956152 - Jan 2021 (56 comments) Dashboard for Nyxt - https://news.ycombinator.com/item?id=25151976 https://news.ycombinator.com/item?id=25151976 - Nov 2020 (2 comments) Nyxt Browser 2.0.0 Pre-release - https://news.ycombinator.com/item?id=24353927 https://news.ycombinator.com/item?id=24353927 - Sept 2020 (11 comments)
- ibraheemdev 5y agoI have been one upped :)
- dang 5y agoSorry- I didn't mean it that way! I'm thinking of adding code to macroexpand any links that people post to previous HN threads into the same format that you see here: "Title - <url> - mm/yy - (number of comments)". I'm not typing that shit out manually :)
- gredelston 5y agoMight wanna change the "Chat" page from Freenode to Libera.chat.
- jmercouris 5y agoYes, will get to that ASAP! Thank you for pointing it out!
- kgarten 5y agoCool project … tried it in an early version and will play with it again. Was just wondering. From the FAQ there are no links or indications on how to configure it in Vi mode. Also the FAQ mentions the manual/tutorials for „here‘s how you configure it“. maybe I missed sth. Being on a small screen (phone). Yet I was just interested in how the configure / change to vi worked and could not find that on the website. Recommend to add links to the FAQ. Is there somewhere a quick how-to/setup for the vi mode and maybe a walkthough of cool features? (Found qutebrowser way more accessible and stayed with it so far) Edit: typos
- jmercouris 5y agoWhen you start Nyxt there will be a button labeled “common settings” if you click it it will set up Vi mode or Emacs mode for you :-)
- deleted 5y ago[deleted]
- conscion 5y agoI really like the way Nyxt generates keyboard combos for clickable links (like this image [0]). Does anyone know if there's a program that creates something similar for Windows? Where every clickable element in the focused programs would have one of these tags generated for it. [0] https://nyxt.atlas.engineer/static/image/article/visual-mode-select-paragraph.png https://nyxt.atlas.engineer/static/image/article/visual-mode...
- null621 5y agoIf you mean within the browser, vim plugins do exactly this. I use one called Vimium, very customizable.
- reocha 5y agohttp://vimium.github.io/ http://vimium.github.io/
- kriops 5y agohttps://qutebrowser.org/ https://qutebrowser.org/ Is a favorite of mine.
- yewenjie 5y agoIf inside the browser, I love Tridactyl - https://github.com/tridactyl/tridactyl https://github.com/tridactyl/tridactyl
- jmercouris 5y agoYou’ll find many pantomimes of this in other projects. As far as I know Nyxt’s style (showing the URL, title, type of element, and being able to select based on those) is unique.
- yewenjie 5y agoRather than asking what features does Nyxt have now, I think it is more useful to ask what do they not have compared to something like Firefox or Chromium. I will be very happy if someone can list down the most important features that are lacking in Nyxt.
- jtmoulia 5y agoFrom a week of usage my outstanding missing piece is yubikey support. Really can't complain tho: it's still early, open-source, and a great product.
- mdip 5y agoI think this is the second or third time that I've seen this browser hit the front page. Each time I get a little more interested. The concern that I have is that there's going to be a learning curve to picking this up. Normally, that's fine, but this is my browser. I live in the thing and there's no other piece of software outside of my IDEs that affects my productivity more. When I took the time to learn VIM a few years ago, retrospectively, I could have about spent half as much time learning it as I did and skipped a handful of things I don't use. The tone isn't meant to be negative -- that 50% is tremendously useful and it's rare that I don't over-learn something (I enjoy it). I'm hoping someone who uses Nyxt as their "primary browser"[0] might be able to provide their thoughts on any of my questions -- I use VIM/VIM plug-ins, but Firefox; what's the experience of becoming proficient with Nyxt? Is there any tool/first-timer/quick-start that works better/worse for acquiring the muscle-memory? Outside of "keyboard" ... As a full stack web developer (various front-ends, mostly .NET web FWIW), what are the "big reasons" that I want this (killer app?)? Put other ways: Are there any interesting "one-liners"[0] that solved real problems developing web-sites? Is there any feature that is so amazing that you agonize over it not being available when you're not on your own hardware? Basically, I'm trying to answer (for myself) whether or not it's worth the effort to explore integrating this into my work tooling, so I'd love any other input. [0] I've not used the product; I'm referring to its programmability -- I can see its use (and do this, today, kludg-ily) -- but I'm wondering if there are any use cases that were surprisingly "magical".
- cle 5y agoIf you think of this as an interactive API over your browser, there are a lot of possibilities, as it significantly lowers the barrier to entry for browser dev. One thing I’ve always wanted is a way to sync cookies between my browser and curl, something like that would be relatively trivial in Nyxt, assuming it exposes APIs for managing cookies (and if it doesn’t, I’d imagine it would be easy to add). I can easily imagine myself writing little functions like I do in Emacs to automate various things, like iterating over all my tabs and shoving their URLs into a text file, or searching through the content of all open tabs, or adding little menu shortcuts like “append this highlighted text to an email message text box in another tab”, or “take the highlighted text, construct a new URL based on it, and open it in a new tab”. I do these kinds of things all the time in Emacs and I love it, I would be excited to use a browser with the same ease of extensibility. I can also imagine, if the community is large enough, that people smarter than me will come up with libraries for Nyxt that blow my mind. This always happens to me when a powerful tool is combined with a strong community.
- lucas_codes 5y agoI use vimium and I love it, but I actually still use the mouse for navigating page links. Many of the websites we use these days are so link-heavy (or just not designed with keyboards in mind?) that pressing f, parsing the characters of the link I want, and then typing them, is still slower are at least more mental effort than using the mouse.
- dreamer7 5y agoTrue, this was my problem with vimium as well. The characters of the link would change even for relatively stable UI functionality like going fullscreen on Youtube. So, there was no muscle memory. Ironically, the only time i would remember i had vimium installed was when i would try to press f and then press a couple more characters while wondering why i installed the plugin in the first place.
- samatman 5y agoReally? That was my favourite part of using qutebrowser. I'm already looking at a link when I want to 'click' it, so bringing up the shortcuts puts the relevant one right in the center of my vision. I don't know if it was faster (I have the same question about vim!) but it was fast enough, and more satisfying. Then again, the point of my i3/qutebrowser/etc box was to be keyboard-centric, and I would use it with a "the mouse is lava" philosophy. I should really stand that box up again; too much macOS is bad for the soul...
- lucas_codes 5y agoIt is certainly more satisfying, I'll give you that!
- Sleepytime 5y agoI'm tab addicted. Reduce-to-buffer is so cool, and I like being able to save tabs to a file.
- O_H_E 5y ago> ... and I like being able to save tabs to a file Yup, my attention was just grabbed
- dmos62 5y ago> Nyxt is web engine agnostic. We utilize a minimal API to interface to any web engine. This makes us flexible and resilient to changes in the web landscape. Currently, we support WebKit and WebEngine (Blink).
- pabs3 5y agoWonder if they plan to add support for Firefox.
- creamytaco 5y agoSecurity, privacy considerations aside, can I use ublock origin? No? Then forget it.
- jmercouris 5y agoOK.
- deleted 5y ago[deleted]
- pxc 5y agoSo I don't like the GP's attitude at all, and I am stunned at how dismissive an unkind they've been on multiple posts about Nyxt. But I think I'm beginning to realize more concretely what they mean about potential security issues with Nyxt and the way it reuses engines from other browsers. I think it's something like this: some functions in engines written for other browsers may assume that they will only be called from other parts of the browsers they're designed for, or similar browsers. They may assume some inputs are safe, or that they'll only be invoked in the context of a sandbox or whatever. That assumption may hold in their original uses, but Nyxt could expose them to novel uses where those assumptions are untrue, and that could have security implications. I think maybe this is the reason that GP assumes Google might go out of their way to break compatibility or discourage the use of their engine with Nyxt. I guess what I'm left wondering is: is it obvious that this would be a negative for Google or Apple or whomever? Why would we expect the security fixes needed for calling some functions in unexpected contexts to get in the way of the engine developers? How could you see that relationship playing out, if Nyxt exposes vulnerabilities in these engines that aren't reachable from the browsers they're designed for?
- zzo38computer 5y agoIt look like interesting, although I would think to really make a better web browser, would require heavily modifying the engine or writing a new one (so that the handling of HTML and CSS can be customized too), rather than using the existing one. Also, I would want to support extensions written in C.
- math-dev 5y agoHow does this compare to eww? Also does this fit as an emacs package?
- jtmoulia 5y agoCongrats to the Atlas team on the release! Nyxt truly delivers on the Emacs experience in the browser, and the addition of data-profiles to give a Firefox-container-like experience lets me use it as my daily driver. Yup, there are quirks from what I'm used to with Firefox + vimium but with Nyxt 1) I can actually understand and modify the code, and 2) it's delightful to have a browser I can use so keyboard-centrically One of the last gaps for me is being able to use a yubikey from Nyxt, but there's an open issue in the repo which feels accessible :)
- jmercouris 5y agoThanks so much, that is very kind of you to say :-)
- mastrsushi 5y agoDoes anyone know of any attempts at writing new web engines? Or at least one built off of WebKit to diverge from Chromium?
- ahane 5y agohttps://www.ekioh.com/flow-browser/ https://www.ekioh.com/flow-browser/
- mastrsushi 5y agoFlow sounds really cool, a multi threaded browser engine. Most modern ones are forked from KHTML, an engine designed in the 90's before multi threading was possible for consumer computers. They only have 8 developers on the team. I wish them well, but what do they have to offer that vendors and consumers really need? Do people really complain about Chromium being too slow? I wouldn't imagine, if most of the users on the web are using it. Then again I don't know about the niche mysterious world of elite internet browsing.
- jmercouris 5y agoIt is one of our dreams to resurrect this: https://github.com/atlas-engineer/closure https://github.com/atlas-engineer/closure
- O_H_E 5y agoServo?
- mastrsushi 5y agoMozilla laid off a lot of the Servo engineers. It's in the hands of the Linux Foundation, so pretty much dead.
- JanisErdmanis 5y agoFor a long time I have been willing to write a personalized bookmark manager with a custom way to store and recall them. Nyxt looks like ideal platform to get started. A major thing that puts me off using it is that it does not have a dark mode. I hope that will come with ability to use some chromium or firefox extensions.
- O_H_E 5y agothe first screenshot/link are literally for themes/dark-mode
- e3bc54b2 5y agoFrom the article, I could not understand if it is default or easily selectable. The post and the theme link explains how to create a theme, but not if the dark one shown is available in stock installation.
- pxc 5y agoIt has a nice dark mode feature for web pages that is built in, but it doesn't apply to every page by default, or affect the prompt-buffer (minibuffer). Also the code for that theming article doesn't really work, but if you fiddle with it you can get it going somewhat. I say play with it for a few minutes :)
- jmercouris 5y agoOur bookmark facilities are quite advanced. You can query by tag, date, name, any combination of things really. I would give it a short investigation. :-)
- msla 5y agoIt seems it only has host-based blocking: https://github.com/atlas-engineer/nyxt/blob/master/source/blocker-mode.lisp https://github.com/atlas-engineer/nyxt/blob/master/source/bl... Is uBlock Origin style blocking a priority? NoScript?
- jmercouris 5y agoWell, actually blocking can be done based on predicates and all kinds of rules. That said, uBlock itself is a priority, supporting FF extensions.
- philonoist 5y agoIt doesn't seem to have Windows version/binary installer. Help me?
- jmercouris 5y agoHelp me help you, submit a windows build and I will publish :-D
- zzo38computer 5y agoThere are many good ideas, it look like. Many ideas are ones I had wanted, so, it is good. But, not quite everything. Does it support customizing the interpretation of HTML and CSS? Is the web developer console implemented (it is useful for end users too, not only web developers)? Is there a split-screen mode? Can it auto-generate a table of contents? Is the jar: URI scheme supported (I used this to view EPUB files)? Form data saving to local files? Footnotes? Relative URL entry? JavaScript Date spoofing? ARIA view? Regular expression search? Better file selection? Can HSTS be disabled? Animation control? SQL (another way of sorting/filtering tables, copying them to external files, etc)? Adding or changing MIME type handlers? Does it pretty print JSON files? Disabling sounds is implemented, but can you adjust the volume or divert the sound to an external program (that will receive the audio on stdin)? Disabling scripts is implemented, but can you "partially disable" scripts (so that some APIs work and some don't or have a different behaviour)? Can you define your own character encodings? Is there any way to use extensions written in C? Some of the things I listed might already be implemented, and some can probably be implemented easily enough in Lisp, but some might be more difficult to do. There are a lot more things I would have it done differently, requiring probably modifying the engine significantly from common web browsers, I would guess.
- shakascchen 5y agoI'll definitely become a heavy Nyxt user. First, I want to programmatically control what I see on some websites. For example, facebook, linkedIn, or more websites are too distracting, so I'd like to directly fetch some information from them with my signed-in accounts. Second, I am a Common Lisp lover.