 What if I told you there was a web browser out there that was light, fast, minimal? It allowed you to use the keyboard to navigate through the browser. You could use Emacs-like keybindings or Vim-like keybindings, depending on what you wanted to choose. Of course, you could edit the keybindings. You could actually edit everything on the browser. It is extremely configurable because this browser is written in common Lisp. And kind of like Emacs, everything can be redefined. You can redefine the keybindings, the variables, all the functions. Everything that web browser does, you can configure it, you can change it. Would you be interested in such a browser? I know I would, so today I'm very happy to finally be taking a look at the Next browser. Now the Next browser used to be called the Next browser. They recently renamed it to the Next browser with the version 2.0 release that just happened just a few weeks ago. So I installed this earlier today, early this morning. I've been playing around with this browser for a few hours now. I installed it, I found it in the Arch repositories. Actually, I think I found it in the AUR. I think I installed it using Paru and let's just reinstall it really quick. Yeah, it's in the AUR, I'll decline the reinstall. I was just verifying that it was in fact in the AUR. So if you use Yay or Paru or Trizen or any of the AUR helpers, just look for a package called Next. Now once you have Next installed, you just need to launch the browser. I'm going to launch it from Dmenus. I'm just going to type NYXT and then hit Enter. And this is Next out of the box. Without any configuration, I haven't played with anything, the colors or anything. So obviously the colors, I know for purposes of this video, it's very blinding white. So we have black text on a white background. The very first thing you get is, well, at the bottom, you have this kind of command thing here. It's asking about history. Do we want to use our default history or the default history? I guess we have two choices. I'm not sure. Yeah. Yeah, I guess I clicked Enter and now I just get a blank page. I don't know why it does that, but I'm going to do MetaX. Similar to NEMex, MetaX gets us a command prompt. We can execute any command from this, any command that NYXT knows about. And what I could do is I'm going to search for the word dashboard. And this is the NYXT browser dashboard. It would list any bookmarks. I haven't said any bookmarks, any recent URLs. So these are just some of the URLs that I've recently done. You could also click execute command, and I think you would just get the prompt again. So let me escape out of that. There is a manual here, and you probably do want to read through some of the manual. You definitely want to take a look at the key bindings. If you're not used to Emacs key bindings or VIM key bindings, and I know a lot of people don't use either Emacs or VIM. You may want to take a look at some of the manual information as far as the bindings. Probably the most important binding you need to know at first, of course, is how to load a web page. So Ctrl-L gets us open URL is actually the name of the command. And what URL do I want to open? We could open anything. I'm going to open distrotube.com because I know it's a black background, and that's probably a little easier on your eyes right now. And then what we could do, of course, you could use the mouse. You can navigate with the mouse and click links, and go forward and back. There is a forward and back button down here in the mode line. So you have a mode line, kind of like you have a mode line in Emacs, where you have like a status line in VIM. You've got something very similar going on here other than forward and back. We have reload. We also have this cogwheel here. That's the execute thing. That just is the same as doing a meta X. And then we have the little hamburger menu, which is our buffers. And that would be, I'm assuming, a list of buffers. So clicking on it right now doesn't do anything. But I don't really have any buffers open because we had the blank page I was on before, and then we have this. So that's probably why that's not working at the moment. To do your keyboard navigation, what you need to do is you could do meta G. For those of you not used to Emacs terminology, the meta key is actually the alt key. So do alt G, alt G twice. And then once you do that twice, you have keyboard hints here, and it's also listed down here. So you actually don't have to look at it in the page because a very long page, you could never find all the links. But you could search specifically for the key code for the hint or the text of the link. So that's a really nice feature. That's pretty neat. So say I wanted to go to my videos from 2021. I can already see it on the page here. The key for it, the key binding is AG, capital A, capital G. I wonder if lowercase AG would work. Yeah. It's a fuzzy search. So it doesn't have to be upper or lowercase. And then I just do AG, hit enter, and I go to this page. Now if I wanted to go back, remember control B for back in Emacs and in the next browser, control F for forward in your history. So control B goes back, control F would go forward, control B back again. If you actually wanted to scroll down the page to scroll with Emacs kinds of key bindings, you do control N and control P. So if I do control N, we go down, we scroll down, control P would scroll back up. So I'm going to do control L to open a URL again. And this time I'm going to go to get lab. If I just start get lab here, it will remember the history here. And it seems I've been to my get lab, my shell color scripts repository recently. Let's just go to that. And it opens that page just fine. And then I'm going to do a control XB for buffers. And we get a buffer list down here. And we can switch between the buffers. Now some of them don't have a URL, but if you look at the titles, we have the manual buffer where the instruction manual, we have the dashboard, which was where we had our recent history and our bookmarks and all of that. Then we have the blank buffer, which does have a URL, but it doesn't have a title. And then we have the shell color scripts buffer here. And actually just using the arrow keys navigating through the buffer, it switches between them. That is really nice. It really, you don't have tabs necessarily, like in your traditional web browser. It really treats tabs as buffers, and I really love that approach. I think it makes a lot of sense because I never liked having a million tabs open in a browser, right? It's cluttered. You have all those tabs. You can't even read the titles of them and navigating between them. Never made any sense. So treating tabs like Emacs like buffers, I think is brilliant. Now one of the things I haven't mentioned yet is about the web engine that Nixt uses. Now, Nixt is interesting because it's web engine agnostic. It really doesn't depend on any web engine, like single web engine. You could build it around anything. So they have this minimal API that they use to interface to any web engine essentially. So by default, it uses WebKit, but you could use the Blink web engine, the Chromium web engine as well. Naturally, the next question people will want to know is, can you use Chrome extensions with Nixt, or Firefox extensions, or whatever web engine you're using? And right now, the answer to that is no. You can't use any existing browser plug-ins, but I think there's a roadmap for this to be enabled in the future. But right now, if you want to extend the browser, you write your own and common list. I know that's a very powerful feature. It's not something to laugh at, but I know it's something that 99% of the people that use this browser are not going to be comfortable doing. Now where things get a little tricky, again, I haven't spent a ton of time with Nixt yet, just a few hours, but trying to configure it. I haven't written a config file or anything myself yet. I'm not a Lisp master anyway. I would probably have to go find somebody else's code and play with it a little bit. Looking at the documentation on the Nixt side, I can say the documentation isn't great. There's a lot of documentation, but it's kind of all over the place. Like if you click on articles, you get this list of articles. It's not really ordered in any way other than by date. I don't even know if you can search through these articles, but it shows you a lot of what you can do with Nixt. But what I ended up doing is I just did a quick Google search or DuckDuckGo search for NixtConfig, and I found Nixt-Config. This is just somebody's GitHub repository where they have their NixtConfig files. There's several of these .Lisp files, and you put these in .Config slash Nixt. And just to verify that this works, because again, I haven't actually tried this, what I'm going to do is style.Lisp. Let's see what this is. Looks like it's setting color schemes. Why don't we play with that? That looks like a good one to do a quick copy and paste on. So what I'm going to do is I'm going to copy this, and then let me switch over to my desktop here. I'm going to open in Emacs. Since we are doing stuff with Lisp today, it makes sense to do everything in Emacs today rather than Vim. I know no people will yell at me if I suddenly won't open Vim to do anything. So .Config slash Nixt is the directory that all of your config stuff needs to go in. Out of the box, you do have auto-config.Lisp. That's just an auto-generated config. Like when you click in the browser itself, hey, I want to do Emacs bindings or VIM bindings. You know, it sets it in that file. You probably don't want to play with that file. So I'm going to create a new file here. So let's do, I'll call it style.Lisp, because that's what the guy on GitHub called his file. And I'm just going to paste that. Then I'm going to write that. And then let me switch to a different workspace and let's relaunch Nixt and see if we have a different color scheme. And we did not. All right. So let me go back over here to his GitHub. And there is a file init.Lisp, and that's where he sources style.Lisp and keybinds.Lisp. So what I needed to do actually, let me go back over here, what I needed to do was rename that file instead of style.Lisp. That's not something that Nixt is going to look for. It's actually going to look for a file called init.Lisp. So let's rename that to init.Lisp and close PCmanfm there. And now let's do Nixt again. And now we have that color scheme. So even though I don't know any Lisp, I just like, I tell you guys with tiling window managers, if you don't know the language it's configured in, because I hear from people all the time, Xmonad looks cool, but I don't know Haskell. Qtile looks cool, but I don't know Python. I don't know common Lisp, but I can go grab somebody else's config. And I can read this. I mean, I know what he's doing with this code. It's not complicated. It is just setting colors, like highlight colors, background colors, foreground colors. And what he's doing in that file, of course, translates to white text on a black background with green highlighting as far as the buttons. And he's got green and pink down here in the execute command box. So actually, yeah, it's not bad colors. Like I could use that. I prefer this color scheme actually to the default one, but I'm probably going to make my own. You know, I'm going to make a color scheme that respects probably like my terminal color scheme here. So I'll probably instead of doing this pure black background, I'm probably going to do more of this silvery gray background that I do with my color schemes. Anyway, that was just a very cursory look at the next browser. I've only used it for, you know, the better part of the day here. And I got to say I'm impressed because normally when I check out browsers, you know, I always find stuff that really just irritates the hell out of me with every single web browser I've ever tried. And next is really the first one that I can see yet. You know, I understand exactly what next is trying to do because of being configured in lists, the fact that you can redefine everything, change all the functions, all the variables. By the way, you can actually similar to what you do in Emacs. If I did meta x and I wanted to describe, you know, a key binding, I could do describe dash key. And it would tell me what the key binding does that I enter or describe a variable, describe function. So if I wanted to describe variable, it's going to ask which variable do I want to describe. It'll give me a list of all the ones available. If I just click on one, you know, give me that information right here in the browser. So it's kind of like Emacs in that it self documentation, right? You don't have to go to the web or anything. You don't have to go scour the web for documentation. The browser itself is going to give you all the documentation you could ever want. Now, I know the next browser is not going to be something for everybody. The next browser really seems like it's geared for those people that want ultimate customization. They want ultimate control over their web browser. The same way certain tiling window managers give the user ultimate control. You create your own desktop environment, your own desktop environment. You write it from scratch. That's kind of the power of Nix. This really gives you the ability to actually write your own web browser, which is something no other project that I know of has done or is currently doing. Now, before I go, I do need to thank a few special people here. I need to thank the producers of this episode, Absi, Dallas, Gabe, Lou, Mitchell, Sandor, Alan, Akami, Archvitor, 30, Choke, David, the other David, Dylan, Gregory, Louis, Erion, Paul, Polytech, Scott, Stephen, Sven, Wesson, Willie, they are my highest tiered patrons over on Patreon. Without these guys, this quick look at the Nix browser would not have been possible. I also need to thank each and every one of these fine ladies and gentlemen. All these names you're seeing on the screen right now. These are all my supporters over on Patreon because I don't have any corporate sponsors. It's just me and you guys, the community. If you like what I do, consider supporting my work. Look for DistroTube over on Patreon. All right, guys. Peace.