Kitty Is A Fast And Feature Rich Terminal Emulator

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
my terminal emulator of choice for the last year or so has been alacrity 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 hey dt we know you really like allegrity but if you like alacrity 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 or 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's its claim to fame that's the same claim to fame too for allegedly alacrity 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 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 gnu screen or t-mux but with kitty all of that stuff is built in kitty also has a framework of small terminal programs that are used to extend kitty's functionality they call this framework kittens and i'm going to 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 a ls here let me open up alacrity which is my default terminal emulator you know 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 i 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 going to 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 conf that is an example config file 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 dot config slash kitty slash kitty.com i hope that makes sense so let's copy that over so let's copy kitty.com over to our home directory in my case slash home slash dt slash dot config slash kitty slash kitty.com 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 vm i'm going to open up dot config slash kitty slash kitty.com and uh most of this document is folded because it is a gigantic document it's like a thousand lines actually you know just to make my life easier i'm more comfortable in emacs these days anyway what i'm going to do is i'm actually going to open up the kitty.com here in emacs and let's zoom in here in emacs as well toggle on big font mode here in doomy max it probably makes more sense to take a look at this document in emacs rather than vm anyway in case i do edit anything in vm 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 valve 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 yeah yeah i'm setting them all to the mono noki nerd font family but you don't necessarily have to have your bold font 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 mods 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 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 now 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 are the kitty mod plus t so ctrl 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 ctrl shift left you know i move over to that tab ctrl 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 ctrl shift period and comma will move the order of the tabs so right now if i do ctrl shift comma i just move the tab i'm on over to the second tab so the we just really just change 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 cue so ctrl 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 so if i do control shift enter that opens up a new window right and if i do ctrl 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 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 ctrl 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 ctrl 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 uh i think i've got an idea i've tried ctrl shift q ctrl shift x and ctrl shift c and none of those work so the next one i'm going to try is ctrl shift w for window yeah that's it all right so ctrl shift w closes the windows and the multiplexing layouts and control shift q closes tabs if you have a tab to layout the reason ctrl 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 tab so ctrl shift q while you're just single window multiplexed it's just going to kill the entire terminal emulator of course now the reason i find some of this confusing like i said i don't typically use tabs and 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'll 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 had 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 if i 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 1920x1080 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 if 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 film 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 cube 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 or you know go to that url 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 dock 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 an echo hello world or something here's an example kitty plus kitten panel and it's going to print f hello world okay well let me try that that actually sounds kind of neat so you can actually have kitty draw a panel for you you know if i didn't have x mobile or any kind of dock 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 gonna 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 alacrity but you know what i guess the only way to really compare the speed for kitty and alacrity is to put them to the test so let me open up alacrity this is alacrity 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 list time tree on root 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 on route in alacrity 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 on route 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 that actually finished in 15.03 seconds so like a full second faster doing the tree on route than alacrity both speeds though are very fast 15 seconds 16 seconds when i do trion root and something like x term it's going to take more than a minute to do 3 on route so both allegrity and kitty are extremely fast terminal emulators for me right now would i move from alacrity to kitty i don't know because kitty really doesn't offer me anything that i need it has a ton of features that alacrity doesn't have but none of those features do i really need 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 and you know i use exmonad 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 xmode 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 if alacrity 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 devon fran gabe corbinia and mitchell economy arch 5530 chris chuck david the other david donny dylan gregory lewis paul pickvm scott and willie 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 distrotube 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 distrotube over on patreon alright guys peace the suckless guys are gonna hate this
Info
Channel: DistroTube
Views: 142,407
Rating: undefined out of 5
Keywords: terminal emulator, linux terminal, command line, linux terminal tutorial, mac terminal, mac terminal tutorial, fastest terminal emulator, linux tutorial, terminal emulators, linux terminal emulator, fastest terminal emulator linux, fastest terminal emulator mac, kitty terminal, alacritty terminal, kitty terminal config, kitty terminal tabs, kitty terminal customization, kitty terminal vs alacritty
Id: TTzP2zYJn2k
Channel Id: undefined
Length: 17min 55sec (1075 seconds)
Published: Mon Jan 04 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.