Unleashing the Beast: A Power User's Terminal Configuration

My Terminal Setup

Estimated read time: 1:20

    Learn to use AI like a Pro

    Get the latest AI workflows to boost your productivity and business performance, delivered weekly by expert consultants. Enjoy step-by-step guides, weekly Q&A sessions, and full access to our AI workflow archive.

    Canva Logo
    Claude AI Logo
    Google Gemini Logo
    HeyGen Logo
    Hugging Face Logo
    Microsoft Logo
    OpenAI Logo
    Zapier Logo
    Canva Logo
    Claude AI Logo
    Google Gemini Logo
    HeyGen Logo
    Hugging Face Logo
    Microsoft Logo
    OpenAI Logo
    Zapier Logo

    Summary

    In this video, the creator delves into their highly customized terminal setup, aimed at providing a personalized and efficient workflow. They reveal how they use various tools such as the Kitty terminal emulator, NeoVim, and TMUX to streamline their coding experience. The video walks through the aesthetic and functional customizations that make the terminal not just a functional space, but an enjoyable one. Techniques such as the use of cursor trail animations, terminal multiplexing, and file navigation enhancements are highlighted as key elements of their setup. The creator's approach focuses on minimalism, consistency, and leveraging modern features to enhance productivity.

      Highlights

      • The use of Kitty terminal for its aesthetic cursor animations that help track code movement makes coding smoother and visually appealing.
      • TMUX is central to the setup, allowing for efficient management of multiple terminal windows and seamless workflow switching.
      • Xoxide enhances directory navigation by remembering your frequent paths, making changing directories a breeze.
      • A minimalistic but consistent color theme across all tools creates a unified, less distracting workspace.
      • Yazi allows previewing images and PDFs directly in the terminal, enhancing the efficiency of file management tasks.
      • The setup also includes fun elements like watching Star Wars in ASCII or running Matrix emulation for entertainment.
      • Integration with Spotify lets the user control music playback directly from the terminal, demonstrating the environment's versatility.

      Key Takeaways

      • Discover why the Kitty terminal is favored for its sleek cursor trail feature that enhances coding efficiency and visual coolness. 🐱✨
      • Dive into the world of TMUX multiplexing, making terminal management a breeze with organized panes and sessions. 🔀📂
      • Revolutionize your terminal navigation with Xoxide, a predictive CD replacement that learns your directory-switching habits. 🚀🗄️
      • Embrace the minimalist aesthetic with consistent themes and fonts, turning your terminal into a visually soothing workspace. 🎨🖋️
      • Supercharge your file management directly in the terminal using cool tools like Yazi, which even lets you preview images without leaving the command line. 🖼️💻

      Overview

      In a deep dive into their terminal setup, the creator showcases the fusion of style and functionality, which underscores their daily coding activities. They utilize the Kitty terminal for its unique cursor animations, making code navigation not only more beautiful but also more functional. This emulator stands at the forefront of their terminal experiences, providing a visually appealing platform that's deeply customizable.

        TMUX and NeoVim emerge as cornerstone tools within this setup, offering unparalleled flexibility and control. TMUX's ability to handle multiple sessions efficiently, paired with NeoVim's editing prowess, creates a synergy that enhances productivity. The creator favors a minimalistic approach with cohesive themes and fonts across platforms to avoid distractions and provide a seamless working environment.

          Beyond basic functionalities, the creator adds elements of fun and convenience, such as the ability to preview images within the terminal and synchronize Spotify for a more immersive experience. Their setup is not just about coding efficiency but also creating a workspace that feels enjoyable and personal, where even watching a Star Wars ASCII version is possible as a light-hearted diversion during coding breaks.

            Chapters

            • 00:00 - 01:00: Introduction and Overview The chapter 'Introduction and Overview' discusses the speaker's enthusiasm for using and customizing their terminal setup. The speaker emphasizes the terminal's extensive customization capabilities that allow for a highly personalized computing experience. They express a desire to share both aesthetic and practical modifications to their setup in a way that viewers can learn and possibly adopt for their own use. The speaker indicates that all discussed elements will be linked in the video's description for viewer access.
            • 01:00 - 03:30: Kitty Terminal Features The chapter discusses the transition from using the Westerm terminal emulator to the Kitty terminal emulator. The narrator had been a fan of Westerm, particularly appreciating its customization capabilities using Lua. However, they decided to switch to Kitty primarily because of its unique feature: cursor trail animations. The chapter notes that these animations are somewhat controversial.
            • 03:30 - 06:00: Using tmux for Workflow Management The chapter discusses the use of tmux in workflow management, focusing on enhancing user experience when navigating through text files using neovim. The host demonstrates how pressing 'W' for word movement results in a smearing effect between words, creating a visual trail between the start and end points of the cursor's movement. This effect is appreciated for its aesthetic appeal.
            • 06:00 - 09:30: Neovim and File Navigation This chapter discusses the advantages of using Neovim for navigating through code, particularly when making large jumps in files. It highlights how Neovim assists in tracking these jumps visually, allowing the user to keep better track of their location within a file. The chapter also demonstrates a practical example of using Neovim's features to jump to specific code elements, such as curly brackets, showcasing how pressing a specific key can facilitate quick navigation.
            • 09:30 - 13:00: Color Schemes and Aesthetics The chapter explores the aesthetics and functional advantages of using different terminal applications, specifically focusing on 'Kitty' and 'Ghosty'. The speaker mentions a preference for 'Kitty' due to its cursor trail feature, which aids in accessibility by allowing users to track their cursor movements smoothly. There's a comparison between 'Kitty' and 'Ghosty', noting how 'Ghosty' has a snappier feel as it instantly snaps to positions within a file but lacks the cursor trail. If 'Ghosty' were to implement this feature, the speaker suggests they might switch preferences. The chapter highlights the importance of visual features in enhancing user experience.
            • 13:00 - 15:00: Kitty Configuration Details This chapter discusses the Kitty terminal's configuration details, highlighting the user's preference for specific features like the cursor trail. The essential use of 't-mo,' a terminal multiplexer, is emphasized. The tool helps manage sessions effectively, utilizing a client-server model with multiple panes and windows, enhancing the terminal experience. The user showcases an existing session labeled generically as 'Z.'
            • 15:00 - 18:30: Advanced Terminal Tools and Plugins The chapter discusses tools and plugins for advanced terminal usage, highlighting a typical workflow involving an editor window and a terminal window. It exemplifies a personal setup with a main window and a side panel to swiftly switch between editing in Neovim and running commands in the terminal, showcasing the efficiency of such a setup.
            • 18:30 - 21:00: Miscellaneous Terminal Tricks The chapter discusses various tricks and tips for using the terminal more efficiently. One highlighted trick involves using a hotkey combination, leader Z, to toggle between full-screen mode and a partial mode in the terminal. This function is particularly useful for running long commands where viewing the entire output is beneficial. The speaker also mentions their general workflow, which involves using Neovim for text editing, praising it as a superior tool for editing text.
            • 21:00 - 20:00: Conclusion and Additional Resources In this concluding chapter, the speaker describes their typical editing workflow, emphasizing a simplistic and efficient approach. They typically handle one file at a time and are cautious not to overcomplicate the process by splitting panes more than once. They utilize 'telescope' and rely heavily on muscle memory for key bindings to navigate efficiently. The speaker suggests their approach is very straightforward and remains consistent with their general use of neovim.

            My Terminal Setup Transcription

            • 00:00 - 00:30 hello today we're going to be taking a look at my terminal setup now I'm someone that basically lives in the terminal whether it be writing code or even listening to music I basically do everything inside of this environment and the main reason is because I can customize everything to the absolute extreme which allows me to have a very personal experience when I'm using my computer and so today I thought I would go over some of those aesthetic changes and some of the actual useful ones um and sort of compile it into this one video here so you can hopefully take away some new things to add to your own setup everything that I mentioned this video is going to be linked in the description by the way so if you want a
            • 00:30 - 01:00 quick summary of everything I go through then it's going to be right there with that being said let's go ahead and get into it so first things first the terminal that I use is the kitty terminal emulator now I used westerm up until then U for a while and I actually really really liked westerm and I really like that you could customize westerm with Lua however I switched over to kitty for one reason and one reason only and that was their added cursor Trail animations now if you don't know what cursor Trail animations are they're actually a pretty controversial feature
            • 01:00 - 01:30 so if I just open up neovim here and go to a file let's just like actually travel through let's actually move our cursor around here so if I press W to move by the word you'll see that instead of just instantly snapping to a character I'm actually sort of interpolating between these different uh points here and what this does is if you look at like a bigger jump like this you'll see that it actually gives this pretty cool smearing effect that sort of draws like a line between where it began and where it ended I really really like this for two reasons one it looks pretty
            • 01:30 - 02:00 freaking cool in my opinion and two it's also really really good whenever I am jumping through code really really quickly and I make some very big jump it actually helps me it actually helps my eyes to track these sort of jumps and sort of keep track of where I am in a file better to show it a little bit better I would actually make a bigger jump like let's say I wanted to jump to the uh next occurrence of a curly bracket I could then just press like f curly bracket and I jump over here as you can see it kind of gives you like a
            • 02:00 - 02:30 leading line to follow and so that's really the only reason that I use Kitty over westerm to be honest with you and as soon as ghosty adds the cursor Trail I will probably be switching over there now just to give you a quick comparison of like what it looks like without that I have ghosty open here and if we go to some file here and I and I go to the curly bracket as you can see it kind of just snaps immediately there which actually does mean that it is you know technically a little bit snappier um but honestly I prefer the added you know um accessibility of being able to see where
            • 02:30 - 03:00 your cursor is going so that's why I prefer the cursor Trail anyways tangent aside that is why I use the kitty terminal now let's go ahead and get into some stuff that I use within the terminal so an absolute essential for me is t-mo and t-mo is basically this terminal multiplexer which allows you to manage sessions with a client server model and you have all these panes and windows and it allows you to just have a really really good experience so if I actually attach to an existing session you'll see that I have one here I usually title my generic one Z because
            • 03:00 - 03:30 I'm lazy but this is kind of like what a window will look like for me I have my main window here and I have some side panel here um and this is for you know basically being able to rapidly jump from the editor window which is this one here and the terminal window which is the one I use for running my commands so a general workflow for me would look something like this like I would open up neovim on this one I would go to some file I would make some edit or something and then I would go here and then I would actually run a command and run the program um this is you know pretty nice
            • 03:30 - 04:00 and also if you know I want better output I would actually Focus the terminal like this so leader Z Would toggle between like a full screen and the partial part that you have it set to here which is really good for long commands because I can actually like run it and see the entirety of the output so um but anyways this is generally my workflow and I use neovim so if you don't know if you haven't seen any of my videos I use neovim for all of my text editing I do find that it is the superior set up for editing text um at
            • 04:00 - 04:30 least in the way that I do it um and so when I'm usually editing a ofm I usually do it one file at a time although sometimes I will split the pane once but never more than once and if I do that I will focus this window and then I will just enter vssp here and then use um telescope to go to somewhere else uh but it never gets more complex than that for me I do just stick to my generic neovim workflow with some good muscle memory of some of these key bindings here if you want a more in-depth explanation of my
            • 04:30 - 05:00 neovim configuration in specific that video has already been made at its Linked In the description it is slightly outdated uh but you know it's not very it's not very different I have found a pretty comfortable workflow that I have cemented over this time so I'm just going to focus this pain here and let's go ahead and explore some of the things that I use here so the first thing is that whenever I actually navigate places I don't just do like CD dot dot and then like CD back to go back to where I was I don't do those kind of things because it
            • 05:00 - 05:30 isn't very quick I generally have replaced most of my workflow with using xoxide and if you don't know what xoxide is it's basically like a supercharged change directory where it actually learns where you want to go whenever you CD into new directories so now I'm inside of my home directory and let's say I want to go back to my so-call testing project here U what I would do is I would just press Z and then just type in like soal and it will figure it out because I only have a couple projects with the word SoCal in it and it's probably going to pick the one that I visit the most which happens to be the
            • 05:30 - 06:00 one that I was working on now if this wasn't a name that wasn't specific like so-call like maybe it was just a name with test in it and that's all I remembered then it would need a little bit of a a better way to actually like scrub through different possibilities so for that I would press zi and Zi essentially gives me this cool interface for typing in things and then I could type in soall and you can see that there's just a few of these here but I could also type in things like rayb which I do have quite a few for and then I could go to a specific RB project and then I'm right there and then I can just
            • 06:00 - 06:30 press Z minus to go back to where I was so that's really really cool and it's really easy to set up too which is really awesome and it's basically just a drop in replacement for a CD in most situations but sometimes you need more extreme control um so let's say like you are setting up a new project and you need to create like five directories you need to move these files into this other spot you need to change all of their names you need to like organize some things then I wouldn't want to be doing like you know make dir and listing out the names and like using um MV and CP
            • 06:30 - 07:00 all over the place because it can be a little bit confusing and it can be a little bit cumbersome to do this one operation at a time and I am not a bash wizard I am a very normal bash user that knows most of the core details that I need to know and nothing more so to make up for my inability to write bash in my head extremely quickly I can actually just use yazzi which is essentially just a 2E replacement of your operating systems file explorer so instead of having to like open up finder and just
            • 07:00 - 07:30 go over there and and edit some files and finder um I can actually use a much nicer interface here I can just go back and forth like this um I can actually preview assets so let's say like I actually wanted to preview an image here as you can see I can actually see the image inside of my editor and that's thanks to the kitty image protocol which is another reason why I like kitty but it actually goes a little bit beyond that let's actually go to like one of my old homeworks here and let's go to the PDF and as you can see you know theory of computation homework
            • 07:30 - 08:00 um it actually gives me a preview of my PDF in my terminal I can also inspect zip files too which is really really cool so it gives me basically an extremely super powerful experience but I basically just use like my terminal whenever I want to quickly view an image so I don't really have to use an image previewer anymore future me here I totally forgot to mention that I use lacit Lait is extremely useful whenever you are you know managing some really difficult merge conflict or anything
            • 08:00 - 08:30 like that so I do open this whenever I'm doing anything that's non-trivial with Git and it's really really nice it gives you you know nice user interfaces it gives you all the different commands that you need and it gives you a really simple interface for rebasing and everything that you need to do when using git so I do highly recommend using this so the way that I have designed sort of the environment of my terminal is I like two things I like consistency and I like minimal appearances and so what I mean by those two things is this
            • 08:30 - 09:00 for consistency the you know file manager that I use outside of my text editor should be the same file manager that I use within my text editor which is where I use yi. envm here which allows me to actually just straight up use Yazi inside of neov I originally used oil and I thought it was really cool because I can like edit my files like it is a text buffer um in neovim but honestly like having to you know wrestle between two different ways of navigating files it it didn't really work super well for me I kind of just
            • 09:00 - 09:30 prefer using Yazi I think it is the superior way to work with files because whenever I am opening up a fullon file manager when I'm writing code it's generally because I want to do something you know actually extensive otherwise I would just telescope for something or I would just do colon e to actually start writing a file now I also mentioned minimal appearances and what I mean is that I don't really like a lot of colors and I don't really like a lot of like very very fancy see like status things
            • 09:30 - 10:00 on here and all that sort of stuff the closest thing to that I get to like a flashy status thing is my you know telling me what branch I'm on if I'm in a git repository which I actually use so I think that's you know well warranted I like to keep things very simple which is why I use a b 16 theme B 16 black metal gorgoth and I generally keep it that way across everything so everything that I use uses this theme that way everything seems very homogeneous it doesn't seem like I am jumping from from one program
            • 10:00 - 10:30 to another it almost feels like this is some extremely extremely compact pre-made program with all these different features so when I open up yazzi you don't see like oh wow all of the colors just changed I'm in this different environment it is using these same colors as my terminal is as my neovim is as is everything else and as far as the minimalism goes if I open up neofetch here um you'll see that my theme is very very simple it only has like a few tones and then mostly just grayscale and that's how I like it get a few tones to be able to tell you know
            • 10:30 - 11:00 have some highlights here and there U but not too much to where it's like overwhelming my brain so on the topic of Colors Let's actually pin down what I am using for all of my little aesthetic things so if we go to my kitty configuration here um there's only two relevant things in here and that is my font and my color scheme the font that I use is iosevka term which I find really really nice because it's very compact which means that I am able to fit a lot of characters on the screen and I also just think it looks cool so I like it it
            • 11:00 - 11:30 looks cool I think that's nice um you you can also see that I set the cellwidth to 95% because I do find that it wastes a little bit of space with all those little gaps there I think it looks better with a smaller cellwidth anyways so I keep it like that um I do like the Legacy font rendering inside of kitty and that's because I don't know what it is but the the actual like upgraded font rendering here it's like really really bold and I don't like it it looks bad in
            • 11:30 - 12:00 my opinion I that was one of the things that I really didn't like about kitty was the font rendering so I'm really glad that I was able to find that upgraded font rendering now for the theme I mentioned earlier that I'm using the black metal gorgoth theme which is you know Linked In the description I find it really really nice it's a good middle ground between things there are occasions where it can be a little too dark let's say I'm like in a dark area and my brightness is low then I actually want to use something with a W with a bit more Punchy colors then I would actually switch over to vague which this
            • 12:00 - 12:30 is vague. envm here which is um a pretty Nic looking theme in my opinion but you know as you can see this sort of Breaks My Philosophy of everything being consistent and like homogeneous so I generally don't do this too often but it is a fun theme and I do enjoy using it every now and then now transparency I do use some transparency but I don't use it on backgrounds like the one I'm C I currently have here I currently have this like mountainous scene in the background it's sort of like a peace um sort of wallpaper here and if I open
            • 12:30 - 13:00 up some code it's not readable this is way way too bright but if I put on like another background here like I like this this background here um by Nicolas samor I believe um this one's pretty cool and it's also very dark which means that I can actually edit code and have a cool little you know image in the backgrounds while I'm editing code you know whenever I do want to lock in sometimes I do find that a little bit of transparency can kind of get in the way and it's more of just sort of like an aesthetic thing that I like to have there um so I do like to actually put on the full um
            • 13:00 - 13:30 actual black background here and then just you know I put on a little nice peaceful theme so I don't go absolutely insane so let's actually get into the nitty-gritty and talk about my t-mo configuration because t-mo is absolutely the central part of this whole setup so it's pretty important to know what I'm using there um so the first thing is prefix to contrl S this is because my control key is on the right side of my keyboard I use a split keyboard so I like to just be able to quickly roll it with two fingers um and that just means that I can use things a little bit
            • 13:30 - 14:00 better than control B just a preference whatever and then these are pretty important these actually like allow the colors to look correct I don't know I'm not a terminal color expert here but whenever you first run run Kitty there's a good chance that all of your colors will look messed up and that's because these are not the default so I had to do a little bit of digging to figure out what the what the ideal settings are for Mac OS to get my colors looking correct um as you can see here I have the evil mode setup and this is to actually enable mouse I called it evil because
            • 14:00 - 14:30 I'm a neovim user and it's generally anti- neovim to use the mouse in any capacity but honestly the mouse is actually extremely useful if I open up like Brew help here or something you know normally I would have to actually do um leader opening bracket to be able to go up in here and highlight things and copy and whenever I want to scroll like this um it actually doesn't work right off the B emok so enabling the mouse fixes that which is actually pretty needed sometimes uh there's some
            • 14:30 - 15:00 other things too so this is just some like specific things that don't really matter too much this does matter this is um first setting Vim Vim Keys here so I can um actually like highlight text with Vim mode so I can do this and I can use like w and B to sort of go through files here and like copy things as I need and these are actually binding moving back and forth between panes to just control and then HJ KRL so I can actually do this with my paints now this doesn't
            • 15:00 - 15:30 work very well unless you also integrate it inside of neovim or whatever text CER you're using so that you're able to actually seamlessly navigate between pains between neim and t-x pains so let's say that I'm in a project here and I make a t-x split here and I want to jump between these this is totally fine but let's say that I also want to split this window um now what I'd have to do is I'd have to know which one of these is a neoen pain and which one of these is a t-x pain Um this can be a bit of a pain you know pun intended there um so
            • 15:30 - 16:00 there's actually a plugin called I think it's called like Vim t-x Navigator and it basically allows me to use control hjkl for neoven pains and for t-x pains so I can just do this and I'm using just control HJ KRL I'm not doing anything else it basically you know again reinforces that idea that this is sort of like this one cohesive program that's sort of extremely consistent in everything that it does and yeah I really don't use too much with t-x I
            • 16:00 - 16:30 keep it very very minimal I only have four plugins here and I honestly don't use these two so I don't even know it's I keep it very very vanilla with my t-x setup I have changed some colors and I think my colors look pretty okay so that's that's okay it's just regular gray now there is this cool line here which this is yes this is one line it's a very long line and basically I ripped this straight from some stack Overflow post that it basically gives me this fuzzy finding window over my different sessions so you know I was doing some
            • 16:30 - 17:00 astronomy research and this is my college one for my college papers and stuff like that so I can basically just like jump between those and go back and forth and just do that pretty quickly so I like to do that kind of stuff now let's go ahead and get into these like little like added cool things that I like to put in my terminal that aren't exactly like necessary to my workflow but they're pretty cool things that I like to use uh C Matrix here which shows you know it's the classic um it's the classic Matrix sort of thing here
            • 17:00 - 17:30 there's also the entirety of Star Wars inside of the terminal so I can actually like you know fast forward a little bit here and we can actually get into it so as you can see we're actually watching Star Wars in the terminal and yes it is an actual Recreation of Star Wars it's not quite you know frame by frame but I also like doing an infinite Bonsai this is another thing where it's like if I'm just sitting there and I'm like writing something and I'm and my terminal is idling this could be a fun little thing to look at it'll just Loop and make different Bonsai randomly with this
            • 17:30 - 18:00 procedural Generation Um technique here and I think it looks pretty pretty cool let's say that I'm like in the middle of a coding session and my thoughts are becoming too loud in my head and I'm starting to think too introspectively and I need something to distract myself um then I would actually open up a new tab and I can actually open up Spotify player uh which gives me a way to actually play Spotify inside of my terminal and then I would probably play some tool because I like good music and then I would just like like place in tool and I can't play it now cuz you
            • 18:00 - 18:30 know copyright but like there you go I can just open up Spotify now is this practical kind of it's like I would I don't actually I'm not an absolute insane person um obviously the UI like on my phone for for playing Spotify is much better and whenever I'm using my phone I'm of course using the Spotify on my phone but the great thing about this is it actually syncs with my phone so I can actually like you know be queuing things up on my phone here and I can also just like quickly be like okay wait maybe I want to skip that song and then
            • 18:30 - 19:00 I can just go over to this tab and change something real quick so there's another little gimmicky thing that I like to have inside of my terminal so yeah that basically covers my terminal setup it was pretty sporadic but it was just kind of like everything that I could think of to talk about my terminal um it's not a groundbreaking setup you know I'm sure that if you clicked on this video you've probably heard of neovim and t-u and kitty and all these sort of things that I use with that being said I do get a lot of comments on my videos asking for a terminal setup so I hope that this video is at least useful to those people that were asking
            • 19:00 - 19:30 again if you're more interested in my neim setup that's Linked In the description as well as a video going over all the details on that I hope you enjoyed this video if you have any questions make sure to leave them in the comments you have any criticisms also leave them in the comments if you enjoyed this video make sure to like And subscribe also consider joining my Discord where there are a ton of awesome people that would be happy to talk to you about game development just general software development anything in between um and also consider supporting me on patreon so I can continue making videos like this thank you very much for watching have a good day see you
            • 19:30 - 20:00 [Music]