Nyxt is a really interesting concept. It seems they’re moving in an Emacs-like direction with the browser getting more and more features, ending up like a software Lisp machine.
It’s also cool they’re targetting vim users as well as Emacs users. Lisp has always been closely tied to Emacs, but this is opening the door to more people, which is great!
Yeah, I love the idea – build the primitives in C/WebKit, control those primitives with Lisp, and the whole system is observable/customizeable. It’s Emacs for the Web.
Qutebrowser is really nice, there’s nothing I actively dislike except maybe chromium based and python scripting.
Nyxt just immediately made sense to me and it is fast and works well for all websites I visit regularly. Also it is basically made for running on a guix system. The thing I like the most about it … aesthetics and common lisp?
I guess it is also conceptually cleaner.. the keybinds that were different from qutebrowser were easily discovered / rebound and using a buffer model rather than tabs was familiar from emacs/vim. Honestly the big thing is I can see myself hacking on it, whereas qutebrowser with chrome and python always felt as a stopgap measure.
As others in the thread have helpfully explained, Nyxt’s goal in life is to be an Emacs-like browser+lisp environment. That’s very cool and I’m going to try it out, but out-of-the-box what does Nyxt really get you over Chrome or Firefox with Vimium?
Probably nothing, if your goal is to browse the web. But if your goal is to fiddle endlessly with your tooling that you may at some happy point in the future use to browse the web … well.
I can give you example snippets I was able to write for Nyxt, that I find quite exciting, as premises of an integrated platform, bluring the lines between a web browser and other applications. I don’t agonize in not having them in other browsers, yet, so I mainly use FF & VimVixen, but I still find the Nyxt capacities they illustrate exciting.
first, there’s a simple file manager in Nyxt (Webkit’s), the open file command is bound to C-x C-f, just as in emacs, so it’s at easy reach. We can open a directory view, an HTML file, a video in Nyxt. I wrote a snippet to dispatch to the right application depending on the extension. There was no such thing buit-in, but I could add it. Similarly, I added a command (M-x open-home-directory) to open the home directory. It’s easy to write such simple commands.
there’s a built-in git cloner (I contributed it, uh). M-x git-clone and it asks for a directory. I can open a file or directory with emacsclient.
we can write hooks: I have one to open reddits links in old.reddit.
I have M-x download-video (built-in maybe?) that fires youtube-dl.
I have M-x fip-radio-save-current-playing-song, that scrapes the song data on the radio’s website and saves it in a text file. I can view them in HTML, I can M-x listen-saved-song, that searches it on youtube (it could find on a directory if I already have it).
=> they are little things that I usually do in a terminal that I now do in a browser. Nyxt gives me a nice fuzzy completion prompt for any list of strings, it gives me the possibility to print rich text, etc.
There’s something I didn’t manage to do yet but am wanting very much, is to be able to react to Webkit web events. Last time I checked they were not exposed on Nyxt, only on the C side. I would react to button clicks, I would add new buttons on the page and react to them. That’d be awesome.
All this is written in Common Lisp, that is strange at first (rest assured, you’re normal), but it’s a great language with a long history of industry use, so it’s solid and it’s good to have it on my toolbet. I am now lauching new services in CL rather than in Python, that is so slow, unstable and error prone.
Nyxt is a really interesting concept. It seems they’re moving in an Emacs-like direction with the browser getting more and more features, ending up like a software Lisp machine.
It’s also cool they’re targetting vim users as well as Emacs users. Lisp has always been closely tied to Emacs, but this is opening the door to more people, which is great!
Yeah, I love the idea – build the primitives in C/WebKit, control those primitives with Lisp, and the whole system is observable/customizeable. It’s Emacs for the Web.
Exactly. Very well said :-)!
I changed from qutebrowser. Using this as my daily driver now, it’s amazing! I am posting this comment from nyxt :)
Could you give a comparison? What has been better about nyxt? What didn’t you like about qutebrowser?
I am posting this comment from qutebrowser :)
Qutebrowser is really nice, there’s nothing I actively dislike except maybe chromium based and python scripting.
Nyxt just immediately made sense to me and it is fast and works well for all websites I visit regularly. Also it is basically made for running on a guix system. The thing I like the most about it … aesthetics and common lisp?
I guess it is also conceptually cleaner.. the keybinds that were different from qutebrowser were easily discovered / rebound and using a buffer model rather than tabs was familiar from emacs/vim. Honestly the big thing is I can see myself hacking on it, whereas qutebrowser with chrome and python always felt as a stopgap measure.
Tl;Dr lots of nothing.
As others in the thread have helpfully explained, Nyxt’s goal in life is to be an Emacs-like browser+lisp environment. That’s very cool and I’m going to try it out, but out-of-the-box what does Nyxt really get you over Chrome or Firefox with Vimium?
Edit:
Nevermind:
Probably nothing, if your goal is to browse the web. But if your goal is to fiddle endlessly with your tooling that you may at some happy point in the future use to browse the web … well.
I can give you example snippets I was able to write for Nyxt, that I find quite exciting, as premises of an integrated platform, bluring the lines between a web browser and other applications. I don’t agonize in not having them in other browsers, yet, so I mainly use FF & VimVixen, but I still find the Nyxt capacities they illustrate exciting.
first, there’s a simple file manager in Nyxt (Webkit’s), the open file command is bound to C-x C-f, just as in emacs, so it’s at easy reach. We can open a directory view, an HTML file, a video in Nyxt. I wrote a snippet to dispatch to the right application depending on the extension. There was no such thing buit-in, but I could add it. Similarly, I added a command (M-x open-home-directory) to open the home directory. It’s easy to write such simple commands.
there’s a built-in git cloner (I contributed it, uh). M-x git-clone and it asks for a directory. I can open a file or directory with emacsclient.
we can write hooks: I have one to open reddits links in old.reddit.
I have M-x download-video (built-in maybe?) that fires youtube-dl.
I have M-x fip-radio-save-current-playing-song, that scrapes the song data on the radio’s website and saves it in a text file. I can view them in HTML, I can M-x listen-saved-song, that searches it on youtube (it could find on a directory if I already have it).
=> they are little things that I usually do in a terminal that I now do in a browser. Nyxt gives me a nice fuzzy completion prompt for any list of strings, it gives me the possibility to print rich text, etc.
There’s something I didn’t manage to do yet but am wanting very much, is to be able to react to Webkit web events. Last time I checked they were not exposed on Nyxt, only on the C side. I would react to button clicks, I would add new buttons on the page and react to them. That’d be awesome.
All this is written in Common Lisp, that is strange at first (rest assured, you’re normal), but it’s a great language with a long history of industry use, so it’s solid and it’s good to have it on my toolbet. I am now lauching new services in CL rather than in Python, that is so slow, unstable and error prone.
my snippets: https://github.com/vindarel/next-init.lisp/ (outdated, I didn’t follow the latest changes)
other great config: https://github.com/tviti/next-cfg/ and https://github.com/tviti/next-notebook (interface with Jupyter)
An honest comparison with Python, workflow and ecosystem: https://lisp-journey.gitlab.io/pythonvslisp/ (mine)
(I copied my comment from HN, hope that answers https://news.ycombinator.com/item?id=27219646#27223418 but I love you anyways :p )
It says on the downloads page that Nyxt is available as a MacPorts port.
Really interesting. Anything preventing it from being distributed/build for Windows?
Nothing. If you can compile it, we’ll be happy to publish it :-)
I may be misunderstanding, but are you offering to publish a binary compiled by a stranger?
Is this browser intended to be useful for things like online banking?
Let me rephrase; if you can provide a recipe to compile it, I will be happy to publish.
I’d be very happy to fund an OpenBSD package of this. Anyone interested, please email me. (Email in my profile here.)
The link to the deb-package results in a 404. When I downloaded the zip from Github’s releases page and unpacked it I got a deb-package.
I’ve fixed the link, thank you.
Wow, they even have a custom macports repo! That is rare to see.