Zsh config walkthrough of a CLI master
Read full transcript 14 segments
-
what's up guys my name is Misha I'm a what's up guys my name is Misha I'm a devops engineer from the Netherlands and devops engineer from the Netherlands and devops engineer from the Netherlands and today I'm going to walk you through my today I'm going to walk you through my today I'm going to walk you through my entire zshell configuration so I entire zshell configuration so I entire zshell configuration so I recently switched back to Zell after recently switched back to Zell after recently switched back to Zell after about 1 and a half years of pure bash about 1 and a half years of pure bash about 1 and a half years of pure bash and so far it has been a really nice and so far it has been a really nice and so far it has been a really nice experience to go back to Zell and enjoy experience to go back to Zell and enjoy experience to go back to Zell and enjoy some nicer Auto completion and some some nicer Auto completion and some some nicer Auto completion and some other features so I figured I would show other features so I figured I would show other features so I figured I would show you my new configuration it has changed you my new configuration it has changed you my new configuration it has changed quite a bit from my Bash from my quite a bit from my Bash from my quite a bit from my Bash from my previous Bash configuration so let's get previous Bash configuration so let's get previous Bash configuration so let's get dive into it I'll go to my do files repo dive into it I'll go to my do files repo dive into it I'll go to my do files repo and then I'll open my Zell and then I'll open my Zell and then I'll open my Zell RC and Center it for you RC and Center it for you RC and Center it for you so the way I set it up is I have a DOT so the way I set it up is I have a DOT so the way I set it up is I have a DOT files repo which is open to the public files repo which is open to the public files repo which is open to the public GitHub um files let's see here here we GitHub um files let's see here here we GitHub um files let's see here here we go this is my DOT files repo anybody can go this is my DOT files repo anybody can go this is my DOT files repo anybody can see this and you can check out my see this and you can check out my see this and you can check out my configuration in here it's all open to configuration in here it's all open to configuration in here it's all open to the public and for your inspiration and the public and for your inspiration and the public and for your inspiration and in there I have a setup script which in there I have a setup script which in there I have a setup script which then Sim makes symbolic links to all my then Sim makes symbolic links to all my then Sim makes symbolic links to all my systems to put my zshell RC in the right systems to put my zshell RC in the right systems to put my zshell RC in the right place for place for place for example now I start my zshell RC with example now I start my zshell RC with example now I start my zshell RC with the path configuration and this has the path configuration and this has the path configuration and this has evolved a lot over the years um I used evolved a lot over the years um I used evolved a lot over the years um I used to have a pretty ugly setup where where to have a pretty ugly setup where where to have a pretty ugly setup where where I just was appending stuff and when I I just was appending stuff and when I I just was appending stuff and when I would open a new terminal there will be would open a new terminal there will be would open a new terminal there will be a lot of duplicate entries so I have a
-
a lot of duplicate entries so I have a a lot of duplicate entries so I have a nice little script here that poops out nice little script here that poops out nice little script here that poops out my path you know nice way with all on my path you know nice way with all on my path you know nice way with all on all the new lines and as you see here all the new lines and as you see here all the new lines and as you see here there are no duplicate entries in my there are no duplicate entries in my there are no duplicate entries in my path and that makes it very easy to path and that makes it very easy to path and that makes it very easy to debug or debug or debug or to um fix things if if if things are not to um fix things if if if things are not to um fix things if if if things are not working or if if a program cannot be working or if if a program cannot be working or if if a program cannot be found on my system this is super useful found on my system this is super useful found on my system this is super useful and this path is actually a script as and this path is actually a script as and this path is actually a script as you see in the bottom line here I Source you see in the bottom line here I Source you see in the bottom line here I Source my scripts directory from my DOT files my scripts directory from my DOT files my scripts directory from my DOT files so if I go to my do files repo and I so if I go to my do files repo and I so if I go to my do files repo and I enter path then here it is a little enter path then here it is a little enter path then here it is a little script that I stole from rwx Rob that um script that I stole from rwx Rob that um script that I stole from rwx Rob that um really cleans up The Path and poops it really cleans up The Path and poops it really cleans up The Path and poops it out in nice new lines so that's also how out in nice new lines so that's also how out in nice new lines so that's also how I do these kinds of of scripts like uh I I do these kinds of of scripts like uh I I do these kinds of of scripts like uh I I have many scripts like gen I have many scripts like gen I have many scripts like gen these are all scripts they they are all these are all scripts they they are all these are all scripts they they are all in my scripts repository which I source in my scripts repository which I source in my scripts repository which I source and which make them available on my and which make them available on my and which make them available on my entire system so we haven't ex we entire system so we haven't ex we entire system so we haven't ex we haven't reached this second line yet and haven't reached this second line yet and haven't reached this second line yet and I'm already 3 minutes in so I'm already 3 minutes in so I'm already 3 minutes in so let's let's get going so zshell handles let's let's get going so zshell handles let's let's get going so zshell handles globbing differently than bash so I set globbing differently than bash so I set globbing differently than bash so I set that over here and then here is the path that over here and then here is the path that over here and then here is the path variable that I have and here I can variable that I have and here I can variable that I have and here I can neatly put in things that I want in my neatly put in things that I want in my neatly put in things that I want in my path and then here it will remove the path and then here it will remove the path and then here it will remove the duplicates and then export the path as I
-
duplicates and then export the path as I duplicates and then export the path as I want it to be so I can very easily add want it to be so I can very easily add want it to be so I can very easily add new things to my path and have a clear new things to my path and have a clear new things to my path and have a clear overview what's actually being added to overview what's actually being added to overview what's actually being added to it next I have my SSH it next I have my SSH it next I have my SSH configuration after years of a shameful configuration after years of a shameful configuration after years of a shameful shameful configuration with just a local shameful configuration with just a local shameful configuration with just a local SSH key without a pass phrase I finally SSH key without a pass phrase I finally SSH key without a pass phrase I finally have become a man and now I have a have become a man and now I have a have become a man and now I have a proper uh SSH key setup using a UB key proper uh SSH key setup using a UB key proper uh SSH key setup using a UB key that I have here and I using the gpg that I have here and I using the gpg that I have here and I using the gpg agent to actually handle my handle my agent to actually handle my handle my agent to actually handle my handle my SSH now so if I re-enter my UB key here SSH now so if I re-enter my UB key here SSH now so if I re-enter my UB key here and if I am in my DOT files and if I am in my DOT files and if I am in my DOT files repo and if I do a git repo and if I do a git repo and if I do a git pull and I'm being prompted for my pin pull and I'm being prompted for my pin pull and I'm being prompted for my pin this is because the UB key is now being this is because the UB key is now being this is because the UB key is now being activated because that hold holds my activated because that hold holds my activated because that hold holds my private key and I enter my pin then it's private key and I enter my pin then it's private key and I enter my pin then it's asking me to touch it so I touch my UB asking me to touch it so I touch my UB asking me to touch it so I touch my UB key and now I'm able to SSH into my G key and now I'm able to SSH into my G key and now I'm able to SSH into my G repo so my private key is stored on the repo so my private key is stored on the repo so my private key is stored on the UB key it requires a pin and I need to UB key it requires a pin and I need to UB key it requires a pin and I need to touch it in order for it to actually touch it in order for it to actually touch it in order for it to actually give access to the private s key that's give access to the private s key that's give access to the private s key that's stored on my UB key so if you I you you stored on my UB key so if you I you you stored on my UB key so if you I you you need to have my physical UB key you need need to have my physical UB key you need need to have my physical UB key you need to know my pin in order to use my SSH
-
to know my pin in order to use my SSH to know my pin in order to use my SSH key I have finally become a man and key I have finally become a man and key I have finally become a man and handling my SSH Keys properly and I'll handling my SSH Keys properly and I'll handling my SSH Keys properly and I'll be creating a video or even a mini be creating a video or even a mini be creating a video or even a mini course on my whole new opsc situation um course on my whole new opsc situation um course on my whole new opsc situation um very soon I I'll probably create that on very soon I I'll probably create that on very soon I I'll probably create that on YouTube and not put it in my school YouTube and not put it in my school YouTube and not put it in my school Community because it's such an important Community because it's such an important Community because it's such an important subject but I finally have a setup that subject but I finally have a setup that subject but I finally have a setup that is is is actually respect cble so in short I use actually respect cble so in short I use actually respect cble so in short I use the gpg agent with a UB key which is the gpg agent with a UB key which is the gpg agent with a UB key which is completely secure and nobody can ever completely secure and nobody can ever completely secure and nobody can ever ever take my SSH key if they don't have ever take my SSH key if they don't have ever take my SSH key if they don't have my physical device and my my physical device and my my physical device and my pin next I have my environment variables pin next I have my environment variables pin next I have my environment variables and of course as a real man you use Vim and of course as a real man you use Vim and of course as a real man you use Vim so that's what you also use in the set- so that's what you also use in the set- so that's what you also use in the set- OVI in the terminal this means that I OVI in the terminal this means that I OVI in the terminal this means that I can when I'm writing something I can can when I'm writing something I can can when I'm writing something I can enter VI mode and I can press zero to enter VI mode and I can press zero to enter VI mode and I can press zero to end to go to the beginning of the line end to go to the beginning of the line end to go to the beginning of the line for example if I have some words I can for example if I have some words I can for example if I have some words I can enter VI mode and can delete the entire enter VI mode and can delete the entire enter VI mode and can delete the entire word or go to the end Etc so you have word or go to the end Etc so you have word or go to the end Etc so you have basically just full Vim key bindings in basically just full Vim key bindings in basically just full Vim key bindings in the the the terminal then next we have the the real terminal then next we have the the real terminal then next we have the the real man's editor settings so I always open man's editor settings so I always open man's editor settings so I always open everything in neovim then the term everything in neovim then the term everything in neovim then the term variable is important for rendering variable is important for rendering variable is important for rendering colors and and for example these italic
-
colors and and for example these italic colors and and for example these italic fonts properly when using t-o so fonts properly when using t-o so fonts properly when using t-o so everything you see here is running in everything you see here is running in everything you see here is running in tmok sessions and if I open a new SE tmok sessions and if I open a new SE tmok sessions and if I open a new SE session or a new window over here you session or a new window over here you session or a new window over here you see in the top that new windows are see in the top that new windows are see in the top that new windows are being added and in order for that to being added and in order for that to being added and in order for that to render properly you need to set this one render properly you need to set this one render properly you need to set this one so that's how I do it I have recently so that's how I do it I have recently so that's how I do it I have recently switched back to fire switched back to fire switched back to fire Fox and that's what you set here as the Fox and that's what you set here as the Fox and that's what you set here as the default browser when you open default browser when you open default browser when you open applications from the terminal that use applications from the terminal that use applications from the terminal that use a a a browser um here are some browser um here are some browser um here are some directory directory variables that I set directory directory variables that I set directory directory variables that I set so for example the ttle cast directory so for example the ttle cast directory so for example the ttle cast directory that's the location where all my notes that's the location where all my notes that's the location where all my notes are and I use that in different scripts are and I use that in different scripts are and I use that in different scripts in or in Python scripts in order for my in or in Python scripts in order for my in or in Python scripts in order for my system to know where my notes are for system to know where my notes are for system to know where my notes are for example so if I there's a CLI I wrote example so if I there's a CLI I wrote example so if I there's a CLI I wrote that's called ZK so if I do ZK new that's called ZK so if I do ZK new that's called ZK so if I do ZK new then I can create a new note in my then I can create a new note in my then I can create a new note in my settle Casten directory which you see settle Casten directory which you see settle Casten directory which you see down below in the bottom there it says down below in the bottom there it says down below in the bottom there it says settle settle settle Casten zero inbox hello world so that's Casten zero inbox hello world so that's Casten zero inbox hello world so that's how I that's why I set these directory how I that's why I set these directory how I that's why I set these directory variables for variables for variables for example um and likewise for I can easily example um and likewise for I can easily example um and likewise for I can easily enter my iCloud Etc enter my iCloud Etc enter my iCloud Etc these are some go related variables that these are some go related variables that these are some go related variables that I have so when you're developing in go I have so when you're developing in go I have so when you're developing in go it has a very um specific way of
-
it has a very um specific way of it has a very um specific way of handling binaries and where where is handling binaries and where where is handling binaries and where where is where it's expecting to find things and where it's expecting to find things and where it's expecting to find things and this is the configuration that worked this is the configuration that worked this is the configuration that worked for me took me quite a while to figure for me took me quite a while to figure for me took me quite a while to figure out so feel free to steal that if you're out so feel free to steal that if you're out so feel free to steal that if you're uh getting into go next we have my uh getting into go next we have my uh getting into go next we have my history uh setup so I have my file in history uh setup so I have my file in history uh setup so I have my file in the home directory and I'm keeping the home directory and I'm keeping the home directory and I'm keeping 100,000 lines of History I know to I 100,000 lines of History I know to I 100,000 lines of History I know to I like to have um the ability to search like to have um the ability to search like to have um the ability to search through my history with u through my history with u through my history with u FCF so I I have a lot of history to FCF so I I have a lot of history to FCF so I I have a lot of history to search search search through and this is actually so such a through and this is actually so such a through and this is actually so such a nice option that I that the these little nice option that I that the these little nice option that I that the these little quality of life things that I really quality of life things that I really quality of life things that I really lacked in bash and I'm not even sure if lacked in bash and I'm not even sure if lacked in bash and I'm not even sure if bash has this but I only um discovered bash has this but I only um discovered bash has this but I only um discovered this when I switched back to Z sh so I this when I switched back to Z sh so I this when I switched back to Z sh so I apologize if bash also does this I'm not apologize if bash also does this I'm not apologize if bash also does this I'm not sure but the share history is actually sure but the share history is actually sure but the share history is actually so nice so I can be working in this so nice so I can be working in this so nice so I can be working in this window here so let's say Echo hello window here so let's say Echo hello window here so let's say Echo hello YouTube there we go now if I open a new YouTube there we go now if I open a new YouTube there we go now if I open a new window then here my history is actually window then here my history is actually window then here my history is actually available here and with my old available here and with my old available here and with my old configuration this didn't work I would configuration this didn't work I would configuration this didn't work I would need to actually enter the I need to I need to actually enter the I need to I need to actually enter the I need to I needed to exit the root shell where my needed to exit the root shell where my needed to exit the root shell where my t-x was being started from in order for t-x was being started from in order for t-x was being started from in order for my whole history to be updated so well my whole history to be updated so well my whole history to be updated so well this is so nice to when I'm working on
-
this is so nice to when I'm working on this is so nice to when I'm working on different projects to have my history different projects to have my history different projects to have my history shared in real time oh a really nice shared in real time oh a really nice shared in real time oh a really nice quality of life quality of life quality of life Improvement I like to uh remove Improvement I like to uh remove Improvement I like to uh remove duplicates when I can so this is what duplicates when I can so this is what duplicates when I can so this is what that this does and sometimes you enter that this does and sometimes you enter that this does and sometimes you enter things in the terminal that you don't things in the terminal that you don't things in the terminal that you don't want to save so by by prep paning that want to save so by by prep paning that want to save so by by prep paning that with his space that is not that will not with his space that is not that will not with his space that is not that will not be saved I actually thought that was a be saved I actually thought that was a be saved I actually thought that was a bash default or or even zshell default bash default or or even zshell default bash default or or even zshell default but apparently you have to configure but apparently you have to configure but apparently you have to configure that next for my prompt that next for my prompt that next for my prompt so in before in bash I was using a um uh so in before in bash I was using a um uh so in before in bash I was using a um uh script from GitHub to actually update my script from GitHub to actually update my script from GitHub to actually update my prompt and the thing about prompts and prompt and the thing about prompts and prompt and the thing about prompts and actually my entire philosophy with actually my entire philosophy with actually my entire philosophy with configuration and the zshell configuration and the zshell configuration and the zshell configuration that I'm now doing now is configuration that I'm now doing now is configuration that I'm now doing now is I'm always trying to compress it make it I'm always trying to compress it make it I'm always trying to compress it make it smaller make it cleaner make it as smaller make it cleaner make it as smaller make it cleaner make it as simple as possible seriously as you simple as possible seriously as you simple as possible seriously as you notice I'm not using om my Z shell notice I'm not using om my Z shell notice I'm not using om my Z shell either you don't need all this in either you don't need all this in either you don't need all this in your terminal it's only a distraction your terminal it's only a distraction your terminal it's only a distraction it's a waste of time to sit there for it's a waste of time to sit there for it's a waste of time to sit there for hours and hours and hours to get your hours and hours and hours to get your hours and hours and hours to get your icons and your colors right I mean I'm icons and your colors right I mean I'm icons and your colors right I mean I'm I'm speaking from experience here I've I'm speaking from experience here I've I'm speaking from experience here I've made these mistakes I've spent entire made these mistakes I've spent entire made these mistakes I've spent entire weekends trying to get my prompt just
-
weekends trying to get my prompt just weekends trying to get my prompt just right right right and okay I learned I learned a thing or and okay I learned I learned a thing or and okay I learned I learned a thing or two about the shell but in general it two about the shell but in general it two about the shell but in general it has been a waste of time what I want in has been a waste of time what I want in has been a waste of time what I want in my shell shell is a clean minimal prompt my shell shell is a clean minimal prompt my shell shell is a clean minimal prompt like you see here you only see a icon like you see here you only see a icon like you see here you only see a icon that I'm in my home directory and then that I'm in my home directory and then that I'm in my home directory and then you have a prompt icon and that's it you have a prompt icon and that's it you have a prompt icon and that's it when I enter a git repo all I want to when I enter a git repo all I want to when I enter a git repo all I want to see is whether there are changes that I see is whether there are changes that I see is whether there are changes that I have made in my current repo so you'll have made in my current repo so you'll have made in my current repo so you'll see here that I have the the main I'm on see here that I have the the main I'm on see here that I have the the main I'm on the main branch and this indicates that the main branch and this indicates that the main branch and this indicates that there are some changes here so if I do there are some changes here so if I do there are some changes here so if I do get div here I see that my font size has get div here I see that my font size has get div here I see that my font size has changed in my electrity because I'm changed in my electrity because I'm changed in my electrity because I'm recording and that's all I want in a prompt and that's all I want in a prompt nothing else and before I I so I was nothing else and before I I so I was nothing else and before I I so I was using this git uh GitHub script to using this git uh GitHub script to using this git uh GitHub script to basically do this in my prompt then I basically do this in my prompt then I basically do this in my prompt then I switch to Starship Starship is great switch to Starship Starship is great switch to Starship Starship is great like Starship like Starship like Starship prompt Starship is great it's written in prompt Starship is great it's written in prompt Starship is great it's written in in Rust and it was just one line of in Rust and it was just one line of in Rust and it was just one line of configuration and you have a really nice configuration and you have a really nice configuration and you have a really nice little prom really nice prom that can do little prom really nice prom that can do little prom really nice prom that can do so much and but again it can do too much so much and but again it can do too much so much and but again it can do too much it's it's it's like having an entire tool Workshop in
-
like having an entire tool Workshop in like having an entire tool Workshop in your prompt and you can do so many your prompt and you can do so many your prompt and you can do so many things whereas all I need is just my git things whereas all I need is just my git things whereas all I need is just my git uh my current directory and whether I'm uh my current directory and whether I'm uh my current directory and whether I'm on on on a whether I'm in a g repo and whether I a whether I'm in a g repo and whether I a whether I'm in a g repo and whether I have changes on which branch I'm on have changes on which branch I'm on have changes on which branch I'm on that's all I want to see I don't need that's all I want to see I don't need that's all I want to see I don't need icons I don't no I don't need to see my icons I don't no I don't need to see my icons I don't no I don't need to see my python runtime all the time python runtime all the time python runtime all the time so the solution to this is pure so the solution to this is pure so the solution to this is pure prompt which was recommended to me by prompt which was recommended to me by prompt which was recommended to me by one of my highly respected mentors and one of my highly respected mentors and one of my highly respected mentors and what I like about pure prompt is that what I like about pure prompt is that what I like about pure prompt is that it's all shell it's not rust or python it's all shell it's not rust or python it's all shell it's not rust or python or anything it's just a simple shell or anything it's just a simple shell or anything it's just a simple shell script basically and that's it script basically and that's it script basically and that's it that's it super easy super clean so I that's it super easy super clean so I that's it super easy super clean so I I'm I really like my new zshell prompt U I'm I really like my new zshell prompt U I'm I really like my new zshell prompt U before I moved to bash I had oh my before I moved to bash I had oh my before I moved to bash I had oh my zshell with the power level 10K and all zshell with the power level 10K and all zshell with the power level 10K and all the icons and all of that man what what the icons and all of that man what what the icons and all of that man what what a what a horrible experience actually so a what a horrible experience actually so a what a horrible experience actually so this is just so clean calm this is just so clean calm this is just so clean calm simple not distracting and yeah I highly simple not distracting and yeah I highly simple not distracting and yeah I highly recommend it try it recommend it try it recommend it try it out so out so out so um by default the pure prompt actually um by default the pure prompt actually um by default the pure prompt actually starts to pull your every time you are starts to pull your every time you are starts to pull your every time you are in a git repo well if you use a UB key in a git repo well if you use a UB key in a git repo well if you use a UB key for your SSH that leads to problems for your SSH that leads to problems for your SSH that leads to problems because then I would need to touch it because then I would need to touch it because then I would need to touch it all the time or it actually would start
-
all the time or it actually would start all the time or it actually would start to prompt me every time for my S key so to prompt me every time for my S key so to prompt me every time for my S key so I have to disable that and here uh my I have to disable that and here uh my I have to disable that and here uh my entire configuration is built so it is entire configuration is built so it is entire configuration is built so it is um compatible with multiple systems so I um compatible with multiple systems so I um compatible with multiple systems so I can actually clone my entire repo on a can actually clone my entire repo on a can actually clone my entire repo on a Mac OS system or my Arch Linux think Mac OS system or my Arch Linux think Mac OS system or my Arch Linux think pack pad that I have in the living room pack pad that I have in the living room pack pad that I have in the living room and everything should work now on Mac OS and everything should work now on Mac OS and everything should work now on Mac OS I'm using brew and then the completions I'm using brew and then the completions I'm using brew and then the completions are stored in a are stored in a are stored in a different directory so that's why I need different directory so that's why I need different directory so that's why I need to Source this one or I use need to use to Source this one or I use need to use to Source this one or I use need to use this um variable when I'm on Mac OS and this um variable when I'm on Mac OS and this um variable when I'm on Mac OS and else I'm using this direct directory to else I'm using this direct directory to else I'm using this direct directory to Source my pure prompt Source my pure prompt Source my pure prompt um and this is just the the out autoload um and this is just the the out autoload um and this is just the the out autoload for prompt in it and then it just says for prompt in it and then it just says for prompt in it and then it just says prompt pure so the prompt command is prompt pure so the prompt command is prompt pure so the prompt command is actually what is being installed when actually what is being installed when actually what is being installed when you use pure prompt and if I just write you use pure prompt and if I just write you use pure prompt and if I just write the word prompt here it will show you the word prompt here it will show you the word prompt here it will show you the options and if you do prompt P then the options and if you do prompt P then the options and if you do prompt P then you can actually see all of the you can actually see all of the you can actually see all of the currently available prompts these are currently available prompts these are currently available prompts these are just all the defaults but it's actually just all the defaults but it's actually just all the defaults but it's actually quite nice that you can just preview quite nice that you can just preview quite nice that you can just preview them and it's just such a s simple clean them and it's just such a s simple clean them and it's just such a s simple clean minimal program and yeah I I really like minimal program and yeah I I really like minimal program and yeah I I really like it I really really like it so that's how it I really really like it so that's how it I really really like it so that's how the prompt Works nice and clean but the the prompt Works nice and clean but the the prompt Works nice and clean but the pure prompt is zshell only as far as I
-
pure prompt is zshell only as far as I pure prompt is zshell only as far as I know then we have aliases this is of know then we have aliases this is of know then we have aliases this is of course highly highly um individual but I course highly highly um individual but I course highly highly um individual but I like to have one or two letter um like to have one or two letter um like to have one or two letter um shortcuts for for my shortcuts for for my shortcuts for for my commands or well most many of my commands or well most many of my commands or well most many of my commands are just three-letter words commands are just three-letter words commands are just three-letter words that do certain actions or CD into that do certain actions or CD into that do certain actions or CD into certain directories so I won't go certain directories so I won't go certain directories so I won't go through all of these because there are through all of these because there are through all of these because there are quite a lot of them but you will see quite a lot of them but you will see quite a lot of them but you will see that if I write dot then I enter my DOT that if I write dot then I enter my DOT that if I write dot then I enter my DOT files repo and um I have some home lab files repo and um I have some home lab files repo and um I have some home lab related related related aliases uh this is the command I use aliases uh this is the command I use aliases uh this is the command I use most probably la most probably la most probably la and this just ls- lather and that is a and this just ls- lather and that is a and this just ls- lather and that is a nice way of rendering the ls command nice way of rendering the ls command nice way of rendering the ls command this gives me all the information that I this gives me all the information that I this gives me all the information that I want to see uh I used to use EXA which want to see uh I used to use EXA which want to see uh I used to use EXA which is really nice with with all sorts of is really nice with with all sorts of is really nice with with all sorts of icons and such but at some point I was icons and such but at some point I was icons and such but at some point I was switching systems and I didn't install switching systems and I didn't install switching systems and I didn't install it and I figured well I can actually it and I figured well I can actually it and I figured well I can actually manage without but I still kept the manage without but I still kept the manage without but I still kept the command because it took me quite a while command because it took me quite a while command because it took me quite a while to figure out the the proper one that I to figure out the the proper one that I to figure out the the proper one that I liked and I'm just keeping that when I liked and I'm just keeping that when I liked and I'm just keeping that when I want to return to want to return to want to return to EXA this is a nice little file that uh F EXA this is a nice little file that uh F EXA this is a nice little file that uh F searches recursively and sorts by last searches recursively and sorts by last searches recursively and sorts by last modification that is actually harder modification that is actually harder modification that is actually harder than you might than you might than you might think to actually just show you that and think to actually just show you that and think to actually just show you that and this is just in my do files repo this is
-
this is just in my do files repo this is this is just in my do files repo this is actually showing me all of the stuff actually showing me all of the stuff actually showing me all of the stuff that I've been recently changing except that I've been recently changing except that I've been recently changing except the hidden the hidden the hidden files some t-x and exit aliases Sy Yu files some t-x and exit aliases Sy Yu files some t-x and exit aliases Sy Yu for my Arch for my Arch for my Arch Linux Linux Linux um yeah GP gpol that's one that I use a um yeah GP gpol that's one that I use a um yeah GP gpol that's one that I use a lot and of course I have my tle cast lot and of course I have my tle cast lot and of course I have my tle cast aliases where I can quickly enter my aliases where I can quickly enter my aliases where I can quickly enter my inbox or the The Settle cast inbox or the The Settle cast inbox or the The Settle cast directory some Cube CTL uh um aliases I directory some Cube CTL uh um aliases I directory some Cube CTL uh um aliases I like to use the KC to switch my like to use the KC to switch my like to use the KC to switch my kubernetes context and the knen for QB kubernetes context and the knen for QB kubernetes context and the knen for QB ands before you start using these ands before you start using these ands before you start using these learn how to do it with Cube CTL so learn how to do it with Cube CTL so learn how to do it with Cube CTL so uh let's see K config set context and uh let's see K config set context and uh let's see K config set context and like do do it like that first know how like do do it like that first know how like do do it like that first know how to switch in namespace without before to switch in namespace without before to switch in namespace without before you start using Cube CTX and Cube NS but you start using Cube CTX and Cube NS but you start using Cube CTX and Cube NS but when you have mastered that then there's when you have mastered that then there's when you have mastered that then there's no shame in just do doing it like this no shame in just do doing it like this no shame in just do doing it like this and then you can actually very and then you can actually very and then you can actually very nicely switch your context or your name nicely switch your context or your name nicely switch your context or your name SPAC is like this it's super SPAC is like this it's super SPAC is like this it's super nice and flux get customizations I use nice and flux get customizations I use nice and flux get customizations I use flux in my home lab so I I often check flux in my home lab so I I often check flux in my home lab so I I often check the customizations when I'm hacking the customizations when I'm hacking the customizations when I'm hacking around so that's a useful Alias to have around so that's a useful Alias to have around so that's a useful Alias to have I have a file with some private things I have a file with some private things I have a file with some private things that I don't want in my zshell RC that's
-
that I don't want in my zshell RC that's that I don't want in my zshell RC that's the disadvantage of having your dot the disadvantage of having your dot the disadvantage of having your dot files available files available files available publicly but uh there are some things publicly but uh there are some things publicly but uh there are some things that I sourced that I don't want to have that I sourced that I don't want to have that I sourced that I don't want to have available there available there available there and this conf this configures the FCF and this conf this configures the FCF and this conf this configures the FCF configuration and and key bindings and configuration and and key bindings and configuration and and key bindings and finally there finally there finally there is completion so if Brew is installed on is completion so if Brew is installed on is completion so if Brew is installed on the system it looks in this directory the system it looks in this directory the system it looks in this directory otherwise it will just use the Z otherwise it will just use the Z otherwise it will just use the Z Funk and in order to install a Funk and in order to install a Funk and in order to install a completion I have a little example here completion I have a little example here completion I have a little example here how how I would do that and that's it how how I would do that and that's it how how I would do that and that's it and here we go that's the end of my my and here we go that's the end of my my and here we go that's the end of my my zshell RC it has shrunk quite zshell RC it has shrunk quite zshell RC it has shrunk quite substantially over the years I used to substantially over the years I used to substantially over the years I used to have a lot more configuration and uh as have a lot more configuration and uh as have a lot more configuration and uh as I'm mastering the terminal more and more I'm mastering the terminal more and more I'm mastering the terminal more and more by day by day I'm learning by day by day I'm learning by day by day I'm learning that the old acronym keep it simple that the old acronym keep it simple that the old acronym keep it simple stupid always applies and I'm enjoying a stupid always applies and I'm enjoying a stupid always applies and I'm enjoying a lot on I getting a lot of enjoyment of lot on I getting a lot of enjoyment of lot on I getting a lot of enjoyment of like compacting things making things like compacting things making things like compacting things making things easier to work with and to keep it as easier to work with and to keep it as easier to work with and to keep it as minimal as minimal as minimal as possible uh to limit all the possible uh to limit all the possible uh to limit all the distractions and to actually use my time distractions and to actually use my time distractions and to actually use my time where it's actually where it's actually where it's actually useful so that is my current gell useful so that is my current gell useful so that is my current gell configuration if you like this if you configuration if you like this if you configuration if you like this if you want to know more about my stuff or if
-
want to know more about my stuff or if want to know more about my stuff or if you want to know if you want to ask you want to know if you want to ask you want to know if you want to ask questions about my stuff I highly questions about my stuff I highly questions about my stuff I highly recommend you take a look at my school recommend you take a look at my school recommend you take a look at my school Community which you can find here the Community which you can find here the Community which you can find here the here we have a very active community of here we have a very active community of here we have a very active community of people who are constantly hacking the people who are constantly hacking the people who are constantly hacking the shell and getting better at Vim neovim shell and getting better at Vim neovim shell and getting better at Vim neovim kubernetes Linux it's everything it's kubernetes Linux it's everything it's kubernetes Linux it's everything it's such a great community of great guys uh such a great community of great guys uh such a great community of great guys uh tons of information in here and in the tons of information in here and in the tons of information in here and in the classroom there is also a few courses classroom there is also a few courses classroom there is also a few courses about this stuff specifically I have an about this stuff specifically I have an about this stuff specifically I have an entire walkthrough of all of my DOT entire walkthrough of all of my DOT entire walkthrough of all of my DOT files including my neovim and Bash and files including my neovim and Bash and files including my neovim and Bash and everything it's like 2 hours long and um everything it's like 2 hours long and um everything it's like 2 hours long and um if you if you enter the community you if you if you enter the community you if you if you enter the community you can ask me questions directly about my can ask me questions directly about my can ask me questions directly about my configuration if you get stuck on configuration if you get stuck on configuration if you get stuck on something so thank you so much for something so thank you so much for something so thank you so much for watching and I hope to see you in the watching and I hope to see you in the watching and I hope to see you in the next video
Summary
The main theme is configuring Zsh for improved developer productivity, specifically focusing on shell path management with a clean, duplicate-free approach. The presenter references their public dotfiles repository as a resource for inspiration and to download setup scripts. The practical takeaway is to create a robust path configuration that leverages sourced scripts for a more organized and debuggable command-line environment.