 My terminal emulator of choice for the last year or so has been a Lackardy. It's fast. It's light It's got a easy to edit config fall. It's got a ton of customization options And it's just it's the perfect terminal emulator in my mind So in no way am I looking for a new terminal emulator, but viewers of the channel have been kind of bugging me a little bit They're like a DT. We know you really like a Lackardy, but if you like a Lackardy, you're gonna love kitty And honestly, I am a little bit intrigued. So last night I installed kitty played around with it for an hour So last night and I've played around with it for a couple hours today So I'm gonna share with you some of my initial thoughts about the kitty terminal emulator before I open kitty Let's actually go over to their website. So kitty's claim to fame is that it is a GPU based terminal emulator So it actually uses the GPU for some of the rendering that sits claim to fame That's the same claim to fame too for a Lackardy a Lackardy and kitty both offload some of the rendering to the GPU for better Performance faster performance It also supports your standard terminal features that you expect most modern terminal emulators to have like true color ligature support mouse support focus tracking hyperlinks and it also supports images now that's interesting because not every terminal emulator has Graphics support built into it typically you have to go install third-party programs third-party libraries to allow a terminal to actually Display an image within that terminal emulator. So that is something different kitty also supports both tabs and window multiplexing That's something unusual too because many of your standard terminal emulators don't have tabs or multiplexing built into them They expect you if you want tabs go install a third-party tabbing program like suckless tabbed Or if you want multiplexing go install a third-party multiplexer like good news screen or tmux But with kitty all of that stuff is built-in kitty also has a framework of a small terminal programs that are used to extend kitty's functionality they call this framework Kittens and I'm gonna show you a couple of the built-in kittens when I get into the terminal emulator The other thing you need to know is kitty does have some cross-platform Compatibility it's not just for Linux. It is also available on Mac OS for those of you that use Mac So let me switch to my desktop and let's go ahead and launch kitty Kitty looks like any other terminal emulator. I mean if I you know just did it LS here Let me open up alacrity, which is my default terminal emulator. You know that really any terminal emulator They all kind of look the same I'm pretty much using the same color scheme in both kitty and alacrity as far as speed Haven't really noticed any speed differences alacrity is very fast kitty is very fast Everything just tends to happen almost instantly The first thing you want to do after you install kitty is you need a config file that we can edit And that's where you're gonna set your fonts and colors and key bindings and all of that stuff Let me zoom in here I believe by default the key binding to zoom in and out is control plus and control minus So the control plus a couple of times to zoom in and the default config file is At user share docs kitty I believe so if I did a CD here and I did user slash share slash doc slash kitty And do an LS you see kitty dot comf that is an example config file And that's kind of like the default config file, but that doesn't need to stay there That actually needs to be placed in your home directory at your home directory slash dot config slash kitty Slash kitty dot comf. I hope that makes sense. So let's copy that over. So let's copy kitty dot comf over to our home directory in my case slash home slash DT slash dot config slash kitty Slash kitty dot comf now I actually do not need to copy this because I actually already have it But let's open up our kitty config file. So let me CD into the home directory and now in Veeam I'm gonna open up dot config slash kitty slash kitty dot comf and Most of this document is folded because it is a gigantic document. It's like a thousand lines Actually, you know what just to make my life easier a little more comfortable in emacs these days Anyway, what I'm gonna do is I'm actually gonna open up the kitty dot comf here in emacs And let's zoom in here in emacs as well toggle on big font mode here and do me max It probably makes more sense to take a look at this document in emacs rather than Veeam Anyway, in case I do edit anything in Veeam, you know, I would actually be in the terminal emulator I was editing the config file for where emacs, of course is not a terminal program Now this particular config file is massive now most of it is comments But you're gonna have to spend some time with this config file because I mean if I just page down I mean I could page down a million times and not get to the end of this thing It's just a very very very lengthy Config file But it's pretty straightforward because of all the comments the comments tell you exactly what each line does So it's not complicated It's just lengthy because there's a lot of stuff to kitty kitty is not suckless in its philosophy Kitty has a ton of features and because it has a ton of features hence the very large config file The first thing you want to set of course is the font now you have your standard font your bold font Your italics font and your bold italics font and you can set those to whatever I'm setting them all to the mononoke nerd font family But you don't necessarily have to have your bold font and your italic font and your regular font all belong to the same font family Of course, you can switch that up If I page down a few times I will eventually get to things like Setting a scroll back line. So that's how far you can scroll back through the history One interesting thing is you will see mentions of kitty underscore mod several times in this document Especially once you get toward the key bindings later in this document That's your modifier key for the kitty terminal emulator So all of your key bindings typically are going to be kitty mod plus some other key combination Kitty mod by default is set to control shift We can set the location of the tab bar So if we do tabs in our terminal by default those tabs are at the bottom of the terminal But if you prefer it at the top, of course, you can set it for that and of course we can set opacity I'm not doing a transparent terminal, but if I wanted to you know, I could change this And why let's go ahead and change it on camera. Let's set a 80 percent opacity here Let me write that and then I'm going to go over here and kill out of Kitty and launch it again Unlike alacrity alacrity when you change the config file the changes take place immediately I don't have to close alacrity and then relaunch it But kitty I actually have to close kitty and then launch it again for these changes to take effect And let me undo that I'm going to write and quit out of emacs I'm not going to show you the rest of the config file because it's a little boring showing you the config file The lines in the config file. Let me actually show you the terminal emulator in action First of all, we've already talked about tabs enough. How do you tab? Well the tabs by default your key bindings to open a new tab or the kitty mod plus t so control shift t Gets us a new tab and you see I have the tab bar down at the bottom And of course I could click with the mouse to go between them And I believe if I do kitty mod plus either left or right we can move between the tabs So if I do control shift left, you know, I move over to that tab control shift left again I'm back at the beginning of the the stack of tabs here You want to move the order of the tabs control shift period and comma will move the order of the tabs So right now if I do control shift comma, I just moved the tab I'm on over to the second tab So we just really just changed the order of the tabs. I'm not sure how useful that is I guess if you use a ton of tabs sometimes you want to change the order of the tabs Closing a tab is kitty mod q so control shift q closes a tab I'm not a tab person at least I don't use tabs in a terminal emulator ever And I'm not really a multiplexer person either, but I should show you that as well If I do control shift enter That opens up a new window, right? And if I do control shift enter again I get another window and another window and this is one of the layouts that is built into kitty I guess it has six or seven built-in layouts So I think we can cycle through all of the layouts if I do control shift l Okay, that's a layout. There's the next layout and there's the next there's the next which is Full screen. I guess they're stacked on top of each other That's interesting that it has a stacking layout very similar to what you do in tiling window managers control shift l one more time More of a master and stack kind of layout one more time and one more time We're back to the default layout now control shift q quit out of tabs But for quitting out of these multiplexed windows, I believe we have to do control shift x Or is it control? No, yeah control shift q kills the entire Terminal I guess I could look at the documentation to figure this out, but Um, I think I've got an idea. I've tried control shift q control shift x and control shift c and none of those work So the next one I'm going to try is control shift w for window. Yeah, that's it All right, so control shift w closes the windows and the Plexing layouts and control shift q closes tabs if you have a tab to layout The reason control shift q doesn't work when you're multiplexing is because technically We're in one big tab because you can have tabs and then you can multiplex within the the tabs So control shift q while you're just single window multiplexed is just going to kill the entire terminal emulator, of course Now the reason I find some of this confusing You know, like I said, I don't typically use tabs and I I never use multiplexers Because I'm a tiling window manager person I don't need to use tabs or definitely not multiplexers because why do I need my terminal emulator to be able to split Inside the terminal emulator. I have a tiling window manager. I will just handle the splits myself You know, I'll let the window manager handle the layouts and master and stack and the full screen layouts and all that I don't want my terminal emulator taking care of that Now earlier I'd mentioned that kitty has these features built in called kittens Which is a framework for easily creating terminal programs that make use of kitty's advanced features That's the marketing speak there But let's talk about some of the kittens some of these programs that are already built in to uh to kitty And one of the kittens is called icat and that gives you the ability to display an image within the terminal And that is kind of a big deal because many terminal emulators out of the box cannot display images Kitty can so how this works is you run the command kitty space plus kitten Meaning this next command is a kitten command and icat and then I need the path to some Image so I know in my wallpapers directory, of course, I'm going to have some images So I'm just going to do 0001.jpg. I believe is the first wallpaper in my wallpaper repository By hit enter. There it is Displayed perfectly inside the terminal emulator. Of course, I get back to the prompt here. Let me clear the screen So I get rid of that 1920 by 1080 image there. So that was the icat kitten There's also a diff kitten. I guess for doing side-by-side diffs again I'm not sure most people would need that Because typically if I'm going to do a diff, you know, we're going to look at it in vim or emacs or something There's a unicode input kitten. There's a hints kitten now the hints kitten might be useful and what this does for those of you that have ever used a web browser like surf or cute browser or something like that You you guys know sometimes there's a key combination you can hit and it will give you hints to the links meaning it gives you Numbers or letters outside of all the links on the page And then you could type that letter or number combination and it will actually launch You know go to that url. I I believe that's what the hints kitten is for there's a panel kitten There's a clipboard kitten the clipboard Kitten is obvious copying and pasting the panel one isn't so obvious So let me go to my desktop here And if I go to kitty space plus kitten space and let's do the panel kitten And i'm not exactly sure it draws a a doc on your desktop showing output from an arbitrary program Let me go back to the documentation Because this looks complicated So can we just do a echo hello world or something here's an example kitty plus kitten panel and it's going to print f Hello world. Okay. Let me try that That actually sounds kind of neat So you can actually have kitty draw a panel for you if you if I didn't have x-mobile or any kind of doc or anything I could just have kitty Displaying a panel and it actually works. It actually is showing it on my far left monitor Let me see if I can show you guys that here. So let me switch the layout here where it's capturing my far left monitor I'm going to run that panel kitten one more time And you see it draws hello world onto a panel Uh, is that very useful? I don't know. I don't know if I could find a use for that or not But it is pretty neat I could see maybe, you know, if you were wanting to pipe some notifications or something through it and having it displayed You know as a panel maybe overlapping your existing panel or something I I could see something like that being useful. So overall I've been pretty impressed with kitty again It feels fast. It feels just as fast as a lacrity But you know what? I guess the only way to really compare the speed for kitty and a lacrity is to put them to the test So let me open up a lacrity This is a lacrity on the left and this is kitty on the right And let's go ahead and time something. How about we do time And obviously the one that I used in previous videos was less time tree enroute This command can take several seconds to several minutes Depending on how large your file system is and of course the speed of the terminal emulator plays a big role in this Oh, it's going and it's going There we go. That was a pretty fast tree enroute in a lacrity that was executed for me in 16.3 seconds And I've got a pretty bloated system. So there's a lot of stuff in my file system. Now, let's do a time tree enroute in kitty Of course, this is not scientific. It may be faster. It may be slower. That really doesn't mean much But I just thought this would be something fun to do on camera as a as a quick and dirty test here And that was very fast. Uh, that actually finished in 15.03 seconds So uh, like a full second faster doing the tree enroute Then a lacrity both speeds though are very fast 15 seconds 16 seconds when I do tree enroute and something like x term It's gonna take more than a minute to do tree enroute So both lacrity and kitty are extremely fast terminal emulators for me right now Would I move from a lacrity to kitty? I don't know because kitty really doesn't offer me anything that I need It has a ton of features that a lacrity doesn't have but none of those features do I really need Uh, maybe for you guys for you guys that don't use tiling window managers You use standard floating window managers or you use, you know, some of the big heavy desktop environments You know, maybe you want Multiplexing and tabbing in your terminal emulators because you don't have that those kinds of features Existing within your tiling window manager. You know, I use x-mone. So if I want to multiplex something You know, I just tile it, you know, if I want to tab something I can do that with x-mone add i3 Of course has, you know, all kinds of tabbing stuff that you can do So I don't I don't really need my terminal emulator to do that But again, could I use kitty as my terminal emulator? Absolutely. Well, if a lacrity didn't exist kitty might actually Sway me over to actually using that because I do think it's probably a better terminal emulator than a lot of the other Things I've tried in the past in the past. I was a x-term user a urx vt user a termite user And I think kitty is probably a better choice than any of those But that's just my initial thoughts just spending a few hours with kitty over the last couple of days Before I go, I want to thank a few special people. I want to thank the producers of this episode I want to thank dev and fran gabe corbinian mitchell the commie arch 55 30 christ chuck david the other david donnie Dillon gregory los paul pick vm scott and willy they are the producers of the show They are my highest tiered patrons over on patreon without these guys this episode about the kitty terminal emulator It wouldn't have been possible The show is also brought to you by each and every one of these ladies and gentlemen as well These are all my supporters over on patreon again a sincere Thank you to each and every one of these ladies and gentlemen because the distro tube channel is sponsored by you guys The community I couldn't do this without you guys If you'd like to support my work look for distro tube over on patreon. All right guys peace The suckless guys are gonna hate this