 Okay so this video is going to be a full overview of my status bar since other people are using it nowadays. I did a video on my status bar I guess a couple months ago but this was only when I just started using i3 blocks so I've made a lot of changes made a whole lot of things a whole lot better so I'm going to give you sort of a full review of all the different modules actually first before I even start going through that I'm actually going to make it a little bigger so I'm going to go to the font we'll make it you know 14 or something like that maybe that yeah that's much better so I have a couple modules up here I'll explain what they are one by one actually let's go ahead and open up the i3 blocks config file make that a little bigger so I guess I might as well start well I'll start from the right edge just because the stuff that's simpler over is over there so here this is not part of the i3 status bar this is actually just a network manager so I have a date date time stuff like that that is the time module here that just formats the date and the the setup that I want I have a battery module pretty straightforward what this command is actually doing is you know you have the ACPI command which returns basically battery information that looks like this and I basically just you know grab an awk and said things that to get you know this kind of format up here I replace you know different texts with Unicode characters so instead of saying charging it'll actually have something plugged in like it is here something like that so I have a couple customizations on that but that's pretty much all that is so the Wi-Fi and I face modules I haven't changed at all these are both just parts of i3 blocks I haven't made any kind of changes I might in the future but I just sort of feel like this they suffice I mean I when I use something network related I'm usually doing it through you know the network manager module or whatever applet and that's what it's called now volume now pretty much all the rest of these I've made myself so the volume one I'm gonna go ahead and go to my scripts folder CD into scripts so the volume module is pretty straightforward basically well really there are two possibilities that is there's actually volume playing or it's muted and I can mute it with you know my volume with mod shift M for mute and of course this automatically changes with that now one of the things that I think in the last video I hadn't implemented yet well let's actually look at the volume thing here so the interval at which it updates is once meaning it only updates right when I 3 first loads and then it never it doesn't like retest every couple of seconds to see what kind of volume changes you do instead what I've implemented is you know in case you don't know actually I should probably open up my audio script thing I actually have my own sort of audio manager script that basically it's a simple oops it's a simpler interface for pausing going forward in music stuff like that and the thing about it is what you can do whenever you run one of these commands you can run a P kill command to sit to basically signal to i3 blocks to update so if I you know increase or decrease volume which you can you know see up here if I increase or decrease volume basically what's happening is i3 blocks isn't updating itself instead this script is running that as I'm running you know up as an option and it's actually running this new volume command and it's basically signaling to i3 blocks if you notice on the volume module here the signal is actually 10 for this so when you signal 10 to i3 blocks that just says I need to update the volume module so instead I think originally I had it so that instead of this like i3 blocks was just checking every two seconds for the volume again but this is actually technically a lot more efficient because it doesn't check at all it only checks when you specifically tell it to update so that on the back end of that looks a little bit more complicated because basically I have you know these two scripts that sort of play into this well this one isn't really necessary all you really need is just to have your volume increase command and then put something like this on the end to update i3 blocks but it's way better on system resources because you're not constantly like I three blocks is not constantly checking to see if five different things need to be updated and I've implemented a couple changes like that so that's the volume script relatively straightforward I also have a mail script which I think I showed you guys in the last video but I'll pull it up regardless and this is specifically supposed to work with my mutt wizard just because the I you know in mutt wizard basically keeps all of your mails offline so it's simple enough to just run a fine command and count how many new mail you have and that's what this is here now I don't think I mentioned it with the volume thing but you do have the option of having block buttons where basically if you click on something it'll you can have it open another program and that's what I have here so if I left click on my mail thing it's going to bring up my mutt if I left click on the volume thing it's going to bring up my volume controls stuff like that but if I didn't have this I could just like put this one line as the command instead of having you know this script referred to there but yeah so that's that's that so again this is the mail one is pretty simple it just counts up all the mail that I have in inbox new so basically any kind of inbox in my local repository of mail it counts all of these up and and this is just so if I don't have any new mail this said command actually just gets rid of the zero so if no if I have no new mail nothing will actually appear here it there won't be like a mailbox in a zero because I don't want it taking up time now if you notice this little thing right here this sort of loading symbol that is I think this is in here somewhere yeah so this thing right here basically whenever so my mail sync script whenever it is syncing it actually puts this little symbol a unicode symbol in this file and signals stop the the module to update so what that means for you know a user is that whenever this thing is actually syncing mail you're going to see this little loading symbol and once it's over it's going to signal again it's going to remove that file and then signal to to you know i3 blocks to update again so as you see now it's actually disappeared now I have my mail update every I think three minutes right now I'll change that every once in a while but yeah so now it's nice because I can see my mail and I can also see when it's downloading or whatever so whether this is another command so a lot of people use this what is it WTTR.IN so you can there's this very nice website I mentioned it I think in the last video but you can oops see URL the main page and it'll sort of auto-detect your approximate location so here I'm not really in Millageville but I mean it's in the in the same state and it gives you a weather forecast or whatever so what my where am I so what my script here does what my i3 weather script does is it takes the output of that and it gives you something that looks like this where you have the low the high in temperature and then the precipitation chance it actually gives you the highest precipitation chant like if the precipitation chance is like different for different parts of the day it gives you the highest one and this is just what this script does I have I I haven't do it a little clumsily in that like I download it to a particular file and then I have two different commands that run on it just because I sort of wanted a one-liner for this but it was a little difficult there are a lot of things that are going on I'm sure it's possible but I didn't end up doing it but basically it auto-detects what's the highest precipitation chance it gets the lowest temperature and reports that is your low for today and your highest temperature and reports that is the high for today and this updates this actually does update on a timer so every 3600 seconds is when it updates or whenever you refresh i3 or something like that but that's that now one module I don't have active I'm still sort of playing around with is a torrents module let me actually turn this on for the purpose of the video so you'll see so this is for like transmission if you use transmission daemon or whatever and I'm sort of still deciding what the interface for this should look like but basically what it does is it has it gives you three symbols the hourglass is for something that's doesn't have it's not downloading basically it's idle the down sign is for downloading and the the little seedling is actually for finished downloads that you're seeding or something like that it's a relatively clumsy script I'll bring it up now and I literally actually just wrote it today because I was like you know it'd be nice to have that but I don't actually have it active on my machine so it's a little clumsy it's just a one-liner with some said and awking but it does basically what you need it to do and if you click on it it'll actually bring up i3 or i3 transmission remote or something like that so I'm gonna uncomment or re-comment that because I don't necessarily need it it of course will be going with larbs and all that stuff it's just I don't have it activated by default so another nice little thing I added is I keep closing out my scripts folder but another nice little thing I have is basically a pack man basically it tells you whenever you need to install updates or whatever so right this thing here means there are three updates that I can install I can click on it to run a pack man command and do it automatically but basically what this just does right is if you well I should give the context of this so I'm the kind of person I have pack man check for downloads or check for new updates and actually download those updates in the background you don't actually have to have them you know check for actually download them to have this work but if you're the kind of person who has a cron job who just who likes to update your repositories every once in a while basically what this does is it runs literally pack man Q you which just gives you a list of all the programs that you know you can immediately update it just counts those up stuff like that so three programs and it puts it in this file and the module it this file here pack upgrade and the module just actually reads what's in that file if it exists and puts it in i3 blocks so you know exactly you know how many programs you want to install and actually I might as well just you know go ahead and install this click on that and it'll actually run the actual update command and I will let it do that as again as I said I actually have everything download in the background so I don't even have to think of that so updating is just that easy on my machine but you can have a different setup if you well actually yeah I'll talk about cron jobs later I was meaning to do a video on that so I'll show you what I have but anyway so aside from that I just have two more and that is here I have an MPD module and here is a recording module so the MPD model module if I open that up it's relatively simple I think I got this from someone else but I made significant changes to it now so you'll see there is a an artist name and a song name here it is italicized and sort of grayed out because it's not active it's not playing if I unpause it why isn't it making so I was just very silent right now if I unpause it it's going to like you know no longer be italicized or grayed out that's just because I think the original module I got got just replaced it with like paused and you couldn't actually see what was paused if you unpause it but I just changed it around a little bit the nice thing about i3 blocks is you can actually use like pango formatting so you can get stuff like you know italics and stuff like this so basically all this command I mean this command is really just an advanced like again it's more setting and awking it's mostly just a one-liner to get the formatting because in PC if you just run it it gives you this formatting here with all these different lines and so this like shell command basically just puts it in the right order puts it in pango syntax depending on if it's paused or not so yeah that's nice and the last thing I have which I guess is nice for me I just implemented it so you probably haven't noticed on other videos but this little thing here which is basically a recording notification I could probably actually I don't have a separate script for this but I'll put it this way so I have recording script so the one I'm running right now to record this video is my screencast command which if you've seen my other videos you've probably seen I mean it's really just a straightforward ffmpeg if ffmpeg script that records my video but I just added this other little thing where it just echoes a recording symbol to this location and then it tells i3 blocks to update whenever it runs and so the i3 blocks the i3 block command for recording basically checks to see if this file actually exists and of course this script adds this little recording icon to it and it basically just puts it here so whenever I'm recording I now have this nice little recording script and I also have a special script for actually killing my recordings of course all the stuff is mapped in i3 I don't run these scripts manually I run them with keyboard shortcuts but I have another kill recording script which makes sure the recording is killed I've noticed sometime or I used to just like kill all ffmpeg which can be dangerous because if I'm like compiling something or you know what's the word I'm looking for you know compiling a video or something in ffmpeg while I'm recording and I kill the recording with kill all ffmpeg obviously all the ffmpeg instances are going to close so I made it a little better here I made it specifically kill my screencasting or audio video commands these are specific scripts that I have so it kills those and then it echoes nothing into this recording file or whatever basically just erasing whatever's there so when I kill this recording it's going to get rid of the little file that it made when it started the recording and then it's going to update i3 blocks so once I finish this recording and quit this little thing is actually going to disappear and that'll tell me that the recording is over so it's pretty nice just to have a little visual notification of all that so anyway that is basically all of I guess all of the i3 blocks config again I've thrown a bunch of other stuff in bells and whistles and stuff like this all of these should be on my dot files again most of these files are going if you go to my scripts folder I pretty much appended i3 to all of these just because you know they're different some of these are different like i3 resizes something different oh and what one more thing I should say I I only say it because I noticed that this was here I originally had some trouble with MPD yeah the MPD script just because it was a pain having to always signal whenever I you know on pause or go to the next song or something like that when exactly this you know MP MPD should update or excuse me the i3 block should update its MP3 command or whatever and so I made this little someone pointed out to me I forget who you can say if you were the guy in the comments but someone pointed out to me that MPC has this nice little idle command where basically you can have it so that it runs something every time that there's a change in MPC so this is how I actually I have this little script running in the background whenever I start i3 and then whenever I there's some kind of change in MPC it actually manually updates the it signals 11 to i3 blocks and of course 11 is the signal to update MPD so that's basically it but anyway if you want to check these out again you can go through my scripts folder and usually the ones starting an i3 are the ones that are important but this again is for partially for people who are using larbs just so you know how to configure all this so all of it is relatively easy to configure if you have any questions ask me about it or ideas I guess any extra modules to add just because you know I like throwing other stuff in even though you know who actually needs all this so that's about it I'll see you guys next time ask me if you have any questions