 So, for the last two or three years, my primary terminal file manager has been Ranger. And I enjoy Ranger quite a lot. It's been a very sturdy choice for me when it comes to file managers in the terminal. But it also has a big problem when it comes to image previews. A lot of times they just don't work. And you really don't know why. Either one of the dependencies is out of date or it's just stopped working for some random reason. And one of my primary reasons for using a terminal file manager is to set my wallpaper. It's really nice to be able to open up Ranger, scroll through all my wallpapers, and then hit a keybonding to set my wallpaper. But that only really works if image previews work because otherwise how do I know what the wallpaper actually looks like. So recently, when Ranger decided it was going to stop working again when it comes to image previews, I decided it was time for a change. And someone on my Discord pointed me towards a file manager called Yazi, which claims to be a very fast terminal file manager. Now I was very skeptical about this particular claim simply because we've heard it many times before. And while we have seen fast terminal file managers before, NNN and FFF, usually the way they gain that quickness, that fast implementation of their features is that they just don't have very many features. They do the basics and that's basically it. If you want to add more stuff, you would add it externally or via plugins or environment variables or whatever. And that usually ends up slowing the terminal file manager down a bit and therefore loses its quickness. Now Yazi does things completely different in terms of that because it's fast while also being very full featured. It's very much kind of like Ranger. In that regard only it's actually fast. So I decided I was going to give Yazi a try. I've been using it now for a week and today we're going to be taking a look at Yazi and I have some thoughts on it. So let's go ahead and jump into it. But before we do, if you leave a thumbs up on this video, I'd really appreciate it. So first let's talk about installation just real quick. If you want to install Yazi, you're probably going to have to build it from source. Now it does reside in some repositories. So if you use Arch or Alpine or you use Nix, you can get it fairly easily from those places. But if you use Ubuntu or Debian or OpenSusa or Fedora, you're not going to be able to download it from your repositories. Chances are now I don't know for sure whether or not you'll be able to find this thing in like the in in copper or not. I don't use Fedora anymore. So I'm not sure. But chances are you're going to have to build this from source. It's not hard, but just know that that's the case. Also, as you can see here, even if it is in your repositories, chances are it's going to be somewhat behind now. So if you do end up having to build it from source, you can do so from cargo either downloading the Git repository or getting it from crates. And it's fairly easily. I think it's just like two lines. So it's not hard to build, but just know that going in that you'll probably have to build it from source because it's not in a lot of repositories. OK, so let's go ahead and take a look at Yazi. This right here is Yazi. And if you were to just take a kind of broad view of it, it does look a lot like Ranger, which I found very comforting because it's not it doesn't it didn't present a lot of change for me when it comes to actually look and feel it moves around like Ranger. So if you do J and K, it will move up and down. If you do H, it will go back. L will go forward and things like that. It's a very similar experience in terms of moving around to Ranger and many other file managers, which is I found really good. But it does have some variation. And this was my first hurdle because there are some things here that are just a little bit different than Ranger. So, for example, in Ranger, you would hit D to move a selected file or directory to the clipboard. Basically, it would cut it. And in Yazi, hitting D will move it to the trash. It will ask you for confirmation, which is nice because I can't tell you how many times I've hit D expecting it to cut when it really was doing is trying to move to the trash. So that's one difference that I discovered. If you want to cut, you'd use the X key. X would cut it and then you could use P to paste. So that's a little bit different. Another difference is that if I go into my downloads folder here and I want to say open up this ASCII text file. In Ranger, I would hit L and that would open it up because it's kind of going along the file tree. In Yazi, it's a little bit different. I have to enter and that would open it up in VIM and I could do the things that I want. I could then save it and then move back to Yazi. So, again, there are certain little things like that that are a little bit different in terms of key bindings that will probably catch you, especially if you're coming from another terminal file manager. I'm not saying any of this stuff is wrong or bad or any of that stuff. No opinion on it really whatsoever. It's just as I went along, I noticed these things that were just a little bit different and I wanted to point them out to you guys so that you don't get caught like I did. Probably the best way to find those things is to go to the configuration file. And I'm going to talk about the configuration next because I think that that's the best way to show you some of the features. So, if I go back to my main home directory here and go to .config. So, if I do like so, here we are, config and then go in here and then it's in Yazi and these are the three configuration files that you can get from the website. Now, you have to get these from their hub page and then create them yourselves. As far as I know, these don't reside anywhere on the system. I might be wrong about that, but you do have to create them. Yazi doesn't create them like Ranger does. Ranger, when you first run Ranger, we'll create the configuration file. Yazi does not do that. I believe it's getting the, it just does the defaults when you open it up. If you want to do any of the customizations, you get the configuration files yourself. And these are the three that you are going to use. Yazi.toml will control the basic functions of Yazi. Things like how it sorts, how it looks, what things open, certain types of files, all that stuff is done inside of Yazi. And to be honest with you, I've spent the least amount of time in this particular file, simply because the defaults are fairly good. I will talk about a couple of defaults that are bad here in a minute, but other than that, I've spent the least amount of time in here. And really what you're going to go in here is you're going to, again, control the sorting, control the default application opening things and how it actually looks. So that's what Yazi.toml does. Theme.toml does what it says on the tin. It controls the colors. So basically, if we were to open this up here, you'll be able to see how Yazi is configured in terms of color. You can change these things. Now, I kind of wish that it just inherited the colors from the terminal. It'd be better, but you can just create your own theme if you want, just like so. And I do believe that there are some things that you can download online and if you wanted to use something different. Now, the one that I'm going to focus the most on in this video is actually the key maps because I think that this is the best way to kind of show you how Yazi works. So if I open up key map.toml, you can actually see basically how the syntax works when it comes to key maps. Now, I will say that they've done a fairly good job of segmenting this file so that all the stuff that goes together is together. So things like all the quit commands are right there. All the movement commands and navigation commands are right there. And they do a fairly good job of like I said, keeping all that stuff together. And the syntax isn't hard to understand. So even someone who doesn't know any configuration syntax that you use traditionally use can really pick this up very easy. It's not using things like VIM script. It's not using Lua or JSON, like hardcore JSON. I believe this is actually Toml file. So it's using Toml, but Toml is actually fairly easy in terms of kind of pick up in terms of syntax. It's not so hard that you're gonna get lost is what I'm trying to say here. So if you want to say, for example, control how the cursor moves up and down for a half page, you can do so in these key bindings here and you can just tell what this is. So this is control and you or control and D. This one here is shift down, shift up. So if you wanted to change any of these it'd be very easy to do. Now, these are just the regular key bindings that you'd expect them to have. So Q and capital Q, they quit. You can use escape to also escape visual motor. You can use page up and page down to move further up and down a list of files. You can use alt K and alt J to move up five units or five down in the preview. So if you use alt K and alt J, you'll be able to see that preview move up and down. Now I can't show you that because I use alt K and alt J for other things and those key bindings are in conflict and it will actually mess the entire video up. So we're not gonna do that but you can also use things like alt page up and page down. I also can't use that because my keyboard doesn't have page up and page down. So I'm on a little pickle there but if I wanted to change those key bindings it'd be very easy if I were to use that. Usually I just open up the file and do the things there. I don't have to worry about the preview but if you wanted to see the stuff that's in the file you can use those key bindings to do so. GG and capital G will take you to the top and take you to the bottom just like you would in Vim or any of their file manager that's inspired by Vim. Space will select the files. V will get you into visual mode or capital V will get you into another version of visual mode and you can use control A and control R to select all or unselect all. So I don't actually think that Ranger has that capability to be honest with you. I don't ever remember seeing control A actually working there but I might be wrong about that. So that's really neat to have. So in addition to using enter you can actually also use O and you can also use capital O to have an interactive mode. So let me actually show you this. If I wanted to open this particular file and something else if I use shift O it would allow me to select what I want to open that file in. Now in the yazi.toml file here there is a section called opener and this right here is going to be where you would define the options in that menu we just saw. So if you want to have it so that you can open up things like .txt files or your Python programs or whatever your shell scripts inside of a different term editors. So say like genie or VS code or whatever you would define that option here in this file and then it would show up in that particular menu when you press shift O. As it is by default it will just show you the default editor or it will show the exit data. So you have to kind of put into work if you want to have that open with menu actually working well but as an option that's really cool. So right here is where it defines how cut and paste works and again it works a little bit differently than ranger so it doesn't use D it uses X. Yank is still the same and it works basically the same way it does in ranger as well. P is also does work the same way and it does allow you to overwrite files if they already exist by using capital P which is nice. You can also create links so you can create absolute and relative links using a key binding using this and that's really nice. Again I'm sure you can do that in ranger I've just never encountered that functionality before. Usually when I want to create a link I'll just use the regular terminal like the command line. So D will again take you and remove the files to trash capital D will permanently delete the file so you'll want to make sure that you always pay attention to those little pop-ups when you press that key it's going to ask you for confirmation that's definitely something that you're going to want to pay attention to because you don't want to accidentally delete stuff. So A will allow you to create a file or directory wherever you are in the file. So if you press A and then you enter whatever your name is with a slash then it will create a directory. If you just leave the slash off it'll create a file presumably it'll create a text file or whatever extension you're going to put onto that. So if you wanted to create a Python project you do whatever.py or whatever and that would work. Another difference between ranger and Yazi is that it doesn't seem to use any of the function keys. So in ranger when you want to edit something you press F2 with Yazi it's R. So I think phonetically that makes more sense but it was something again that I had to kind of get used to. If you want to use a run a shell command it's a little weird. So by default instead of the just colon and entering the shell command you would use semi colon and you run the shell command. Colon actually allows you to block the UI until the command finishes. That way that you can't make any other changes. With the regular shell command it'll kind of run in the background and that's another thing that Yazi does is that a lot of the stuff that you can do if you run a shell command will actually run the background and it has a jobs UI. So if I actually get out of this and I press W. Yeah it's W. So it has a tasks UI. So if you have something running the background via shell prompt that you started from inside Yazi it will show it here. Now unfortunately you'd have to be quite zoomed out a lot of times to see the entire process. Also it doesn't, as far as I can tell actually show you the output of the command that's being run as it's running. So if you were like backing up something from here you decided to run rsync from Yazi using the shell option I don't think it's gonna show you the output. I may be wrong about that. I've never actually tried anything that's like that long but the few encounters with the tasks that I've come up with usually they're so stretched out along like one line that they kind of run off into the ether and you can't kind of see all of them. That's a little bit disappointing but other than that it's cool that you can run stuff in the background if you would want to on files that you're interacting with inside of the terminal. That's not again something that Ranger does all that well. It does do some things in the background. You can use shell commands but a lot of times it just runs them and you have no indication of if they're running. Again it's possible that Ranger has that functionality you just kind of have to set it up or maybe I missed it all these years because I never run a lot of shell commands from the terminal or from the file manager so it's possible it is there and I just didn't know about it but this kind of sets it up front and center. S and capital S will search the files by name using FD. You have to have FD and rip rep in order to actually use this functionality. I believe I actually do have it set up so if I quit this and I use S it will allow me to search. You can if you want you to use slash that will also allow you to find. Find and search are slightly different things in terms of what they actually search through I believe so you'll want to if you can't find one with one you probably want to use the other I think search is the more broad tool it'll allow you to search more broadly than find will. So that search you can also cancel an ongoing search or jump to a directory if you have Zoxide or FZF installed using Z. You can also control the line mode so you can select the change the line mode side using key bindings. You can also copy the path using CC or CD which would copy the directory name or CF would copy the file name or CN would copy the name without the extension. That's all stuff that's built in and really awesome as well. You can also filter the files using F and you can also control how things are sorted. Now I think that this is a good time for me to talk about sorting because out of the box out of the box of sorting is really actually quite weird. And I say that knowing that they probably did this for a reason like it's the way that they want it done the developers. But for me personally out of the box the way that it sorts is they sort it by most recently used first. And that means that your file lists change all the time. This is the biggest difference that I saw between Ranger and this and it would really, this was the thing that bugged me the most out of the box because that's just not the way that I want things done. I want to be alphabetical and that's just the way that I've always used it. Now again it's easy to change but out of the box they do sort it by most recently used first. Now here's the weird thing and if we go back to Yazi so if I go to Yazi again just using the find thing and go here to the Yazi.tomophile we can actually see up here at the top that it allows you to choose what you sort it by. And that's all well and good. You can change alphabetical but if we go back to see how this works we can see it specifically in a very long directory full of files and directories. You can see that if it sorts them still kind of weird so it does take into account for whatever reason capitalization. So it puts all of the directories that are capitalized first and then it starts over again. So we got zero B then CG all this stuff. We go through the alphabet and these are all capitalized and then it starts over again with the directories that are named not with capital letters. And that means it's just a very weird sorting mechanism and while there's probably a way to change that I haven't discovered it quite yet and it does bug me a little bit because I want them all just one gigantic alphabetical list and I can go on about my day. That's the way that I want it. And it's not that way. Sorting it by most recently used first just no that's not the way that I want my files to be sorted. Again, very easy to change but it bugged me a little bit. Now if you want to dynamically change your sorting you can do that with key bindings very easily. So you can sort by directory first reverse directory first you can start by date first you can sort naturally you can sort alphabetically by size by extension by created time all that stuff you can do via key binding but that stuff's not persistent it will change back to the default when you next time you open up Yazi. So you can change it fairly easily but just know that you're gonna be messing around with the sorting probably the first time you use this because it's not going to do things the way that you probably expect them to be done. Now just like Ranger it does have tab functionality I can tell you I can count the number of times I've actually used tabs in Ranger on one hand. Now if you know me that's a little weird because I do enjoy my tabs but I never really found the need for tabs in Eternal File Manager. Maybe there's a reason good reason to use those and I just haven't discovered yet and when I do I'll become a tab fanatic in a terminal file manager but I'm not there yet. Now in like Crusader I use a ton of tabs like it's crazy these are all my tabs I have a ton of tabs open and that's all great and good but in a terminal file manager I've just never found a reason to use that. Now just like with Ranger you can set key bindings to go to certain directories and some of them are created for you. So GH will take you home. Now I have a different home directory as you saw in the last video or in one of my previous videos so I've changed it to change to my new home directory. You can also go to GC to go to your config directory you can GD to go to your downloads GT to go to the temp directory and so on and so forth. I've also created one thanks to someone to Fraggle in my Discord that helped me create disk binding right here. This is the only key binding that I've actually added myself and this will allow me to change my wallpaper. So it does do it a little bit differently than Ranger again in Ranger if you want to have a shell command affect a file that you've selected inside of the file manager you use percent F in Yazi you use traditional variable expansion to do this. I think that's what it's called, right? So you use dollar sign one and that will tell Yazi to expand that particular section to the selected file. So in this case it's going to take the image that I've selected and use SWW to actually set my wallpaper. So you can create your own key bindings and I've done so in this case and that is a good thing because it allows you to expand the use of your file manager to actually suit your needs something that I did a lot in Ranger and I'll do a lot in Yazi as I use it more often. So that's the basic functionality of Yazi going through some of the key bindings I would highly recommend you guys if you're going to use this spend some time in the key bindings file change things to suit your needs just a little bit if you need to I'm going to do that a little bit more as I go along I didn't want to change the defaults because I knew I was going to make this video so definitely change these things if you need to change them and it's actually fairly easy to do. So I will say that if you need help you can press shift and then the tilde key and that will give you all the key bindings from wherever you are inside of Yazi and then you get escape in order to get out of that. So if you don't want to spend the time in the Tomo file but you just need to see what a key binding is you can get to them very easily you can also change that so I'm more used to shift and then the question mark to get to help or you could change it to the function one key if you're more used to the VimWave getting to the documentation or the help so you can change that if you want because it's not hard coded it's directly in the key binding or the key map Tomo file you can change that very easily. So that is Yazi and it's a very good terminal file manager I'm going to be sticking with oh actually I didn't show you guys the actual image preview because it does have image preview built in so I should actually show you this if I go home and go to pictures and then go to my wallpaper directory here and if I just go through these you can see it's actually not showing you okay we got a fixed Wayland again got a Dag Navit why does it do this to me? Okay I'm leaving this in by the way so you guys can see this is right here is why I prefer XOR all right we'll go here and change select the monitor again why is it doing this? Okay here we go now I can show you the image preview okay oh all right I am definitely leaving at least one of those in so as you can see the image preview works just fine and it works way better than Wayland it works way better than Ranger inside of Wayland so if you're using Wayland like I am for however long this lasts you can see that it does work fairly well and that's really nice so if I wanted to and just to show you that keep running that I created if I do shift W I can actually change my wallpaper to this and that will then have changed my wallpaper which is really cool right so yeah that is Yazi I'm not gonna actually be able to show you guys this again because I'm gonna change back to my face here and that will mean that my screen capture has gone away for whatever reason because Wayland is just the worst it's the absolute worst anyways that is Yazi it is a very good terminal file manager and I will be using it from now on I've switched all of my key bindings over to it I've started to work through that key bindings.tomophile to change things the way that I want them to change or I will be changing those things and cause I have some ideas how to do things a little bit better I'm gonna change it so probably the D key does the thing that I want the D key thing to do I'll probably change the help so that I can get to it via the key that I'm used to using to get to the help and all that kind of stuff and it's just kind of over time I'll make this thing mine and I do really find that it is quite quick but the problem with that is that I never found range or slow so it's not that big of a deal in terms of the quickness but it is a very fast file manager and I like the tasks background thing that it allows you to do so you can run things in the background I don't know that I'll ever use it or not but I like that it's there all these things kind of add up to being a very good start for terminal file manager the fact that this thing is only like probably six months old or so I think that they said it was like three months old in December I could be misremembering that but it's not a very old project at all and the fact that they've gotten this far with this file manager in that amount of time is very very impressive and I'm very excited to see where it will go in the future because they're only gonna get better and add more features and stuff and I know I'm no longer looking at the camera because everything messed up I don't know what I'm doing with Wayland seriously but anyways that's it for this video if you have thoughts on Yazi you can leave those in the comment section below I'd love to hear from you you can follow me on Mastodon or Odyssey those links will be in the video description you can support me on Patreon at patreon.com slash TheLinuxCast you can also head on over to the store which is available at shop.thelinuxcast.org there you'll find T-shirts and hoodies and hats and desk mats and all sorts of stuff all the proceeds for that goes directly to help the channel I'd really appreciate it if you head on over there and give it a try I have a lot of awesome merch shop.thelinuxcast.org thanks to everybody who does support me on Patreon and YouTube you guys are all absolutely amazing without you the channel is not anywhere near where it is right now so thank you very much for your support truly do appreciate it you guys are awesome again thank you so very much thanks everybody for watching I hope you have a wonderful week and I'll see you next time