 Hey everybody, welcome back to Linuxcast. I'm your host Matt. I'm joined by Tyler as usual. How you doing Tyler? Doing good mostly, you know, the eye is better. So I'm glad really complain glad your eye is better It has been an interesting week. I think for both of us. So Tyler, why don't you tell us what you've been doing in Linux this week? well in Linux I've well for one just been struggling to look at my computer Thankfully backlight settings are you know an option and you can crank those bad boys real low So I've been able to manage but I've been using rat poison as my tithing window manager And here's that even more insane part. I've really really liked it. It's actually good It's about a name Completely agree. I mean try telling people that you use rat poison Some new designer drug or something Well, I mean the kids these days they snort tied pods and all that shit. So Yeah, it could just be rat poison I could just be huffing raid or something I What what's the what's the name of the next germinator company? This is dumb it doesn't matter. I know what you're talking about. I can't remember their name either. I know their logo Yeah, I can say the logo too. I can't remember the name. It doesn't matter Um, I just anyway, uh, so tell me what the the the idea behind rat poison is What's what makes it different from like, you know, DWM or BSPWM or whatever? essentially like It's not like other tiling window managers where you're going to be like Even though DWM doesn't come with like, you know gaps and borders and stuff Almost every single person out there patches it with at least some decorative border or something like that You spruce up the panel, you know, you do something Inside of rat poison. There is none of that. There is no panel You're not really meant to add a panel. I mean I assume you can Because a common misconception too in rat poison. It doesn't come with workspaces out of the gate And the way it uses windows like You split up your screen into frames And each frame is not just the window that you've opened up. It's Uh, every window you open up will take up the full screen inside of that frame And so you you can cycle through windows. It's it's very different But you can have workspaces and stuff, but there's no panel and there's really no Reason to have stuff like that like there's a shortcut for popping up the date and time and You you can create more of those types of pop-ups for different things if you wanted it Like if you want to check your battery percentage and stuff. Yeah If you lost it when you said no workspaces, I mean like Again out of the gate the common misconception is that they're like they're not supported Just because the config file for one when you install rat poison, there is no default config Because your config like I have a bloated config in mine's like 12 lines like Configuring your rat poison. It takes checklist to a whole new extreme Yes, yeah, like rat poison is actually in my opinion is way more succulus than actual succulus software. It is crazy I don't know if that sounds interesting or horrible Yeah, you might try it and like it's one of those things where you'll either try it and Really like it or you'll try it and instantly walk away Yeah, all right I don't know if I'll ever be brave enough to try it. So obviously Most of my week has been spent bash scripting We'll talk more about when we get to it, but we're doing the best challenge today. So it should be very interesting, but Uh, that's been most of my week. But other than that, I've transitioned back to qwerty. I made a video about that Uh, and I'm happy that I'm back at qwerty because my key bindings are back where they're supposed to be Uh, but I kind of should be happy to be back. Yeah, I kind of miss qwerty or colmak I kind of do Uh, because you know when I typed I was actually getting used to the the all the you know common keys in the center place So, uh, there's a chance that someday like I went on a vacation and like I'm not gonna make any videos. I'm not gonna do a podcast. I'm not gonna do any of my, you know, actual job And I'm not gonna do any typing for anything else. I'll just sit there. I'll put on colmak And I'll sit there for eight hours a day just doing typing tests until I get used to the damn thing But that's not gonna happen for a while So but I do miss it a little bit and so and the comments on that video were very, uh Complimentary towards colmak dh, which is like a mod of colmak and supposedly that's way better. So I might give that a try Um, I did see one comment that sort of talked about how like I mean the benefit of switching to something other than qwerty Is like the improvement that you're gonna get is like very Small d would you disagree with that? Like did you I didn't stick with it long enough to know But I I have a feeling that if I stuck with it for long enough, I'd probably get to the exact same speed as qwerty, but the It it's almost 100 true That no matter what keyboard layout you switch to you're probably not going to be faster than you are with qwerty You don't switch to a different keyboard layout to get faster You get you switch to a different keyboard layout in order to uh, you know either Be more happy with where the keys are placed or for uh ergonomic You know reasons and um I've also been told that it'd just be better just to get an ergonomic keyboard That actually switched to things and I've also heard good things about work the linear keyboards the ones where all the rows are straight Yeah The problem with that is I I I looked at one like on amazon It's like so expensive man Dude the like one of the ones that I've looked at is the plank Plank ortho linear one. Yeah, and that one even like trying to get it wholesale Like on drop or something like that. It's gonna cost like 114 bucks. Those things are not cheap Yeah, and you still have to buy the key Uh, the key the key switches and the key caps. So and then those things can add up, you know Quite quick. I mean it's stupid to complain about pricing because I'm a keyboard enthusiast I collect keyboards. So I the one I'm using here was 180 dollars That include didn't include two keycaps Uh, the one that's sitting behind me on my desk was 149 Oh I have a wireless tkl 913 that I spent 200 and something dollars on And I don't use it nearly as much as you should use a 200 dollar keyboard So we both don't have any right to complain, but still it's a lot of money I was looking at that moon moon lander or whatever one the one that is Oh my god, yeah, that's like $400, but oh man I kind of want one But the thing is is I have like a keyboard tray where my keyboard has to sit out So I don't know how well Uh, uh split keyboard would work here because I also have to have room for my mouse So I don't know Luckily with the way my desk is the standing desk. I have room for that But I mean and I really like a split keyboard. I know I really enjoy the hell out of it but almost $400 for any input device is Whew that is hard to swallow Yeah, some someday I desperately need a third monitor before I go buying another keyboard Like I so need a new a third monitor and I have it pegged out and I have the because I'm gonna have to redo my whole I I've never shared a setup a picture of my setup But basically I have two 27 inch monitors in front of me and my computer sits behind it, right? And I have this stupid 30 year old oak desk From like oak express and it's not wide enough for a third monitor. So what I'm gonna have to do Is take the hutch off because it has like a like a wooden hutch Where it has like books a bookshelf or whatever. I'm gonna take that off and throw it away or whatever and then I'm gonna get two Like monitor arms will go onto the wall But one for dual so I'll do my two 27 inch monitors Which they'll have to have adopters because they don't have base amounts And then I'm gonna get like a 32 inch monitor to go above them And that's the point like I have I have all the stuff saved to my amazon list. I'm gonna buy it eventually I just haven't like I even have the money for it. It's just the fact that I'm gonna have to go through and move all The shit in order to do it Um And it's one of those things where you're excited for it Like you you're excited to get it and stuff, but you know as soon as you get it There's so much setup in it like my problem This is I normally will negate like going and getting all of this crap here I was really excited to go get it and then when I got home and like, okay I've already spent like half the day getting this stuff I'm gonna be up till like one o'clock putting it all up and If you've got monitors and stuff that rearranging stands Doing all of that stuff moving your desk so that you can get back there and plug everything It like it is a Hassle yeah, and it's even worse in my case because like I said this desk is about 30 years old and one of the legs Is not so stable and it weighs about 800 pounds And I shoot you not and like I can't move this desk one more time Like the last time I moved it we knew it was the last time it was going to ever get moved Because that level is going to fall off the next time it gets moved like we know what's going to happen It's so bad when I get enthusiastic with typing the whole fucking monitor shakes like It's like it's bad right and like I have a thousand dollar computer on here. I really Wanted to fall down I don't think it's going to end up being that bad, but I I love a new desk. I just don't have room For not really. I mean I could get rid of that standing desk back there behind me. I use that Barely frequently, but I could go through and just get a single desk that actually goes up and down You know like a like I think yours goes up up and down. Yeah, right. Yep. Mine's a standing desk I because I had this 800 pound desk and I have no place to put it I just got a second desk that one there doesn't go up and down. It's just a standing desk Ah, okay My setup is jank af as they say The other thing I did this week was I worked reworked some key bindings after my transition from colmag back to qwerty And I'm really liking because before all my like I I think I've talked about this before but I use scratch pads like crazy like all the time I'm like I went to bspwm for a little while because I'm using it back there on debian And it does not have scratch pads and oh my god. I miss it. I miss it like a arm Like I use them all the time. I have let's see if I can do this without actually doing it I probably better not do that with that that that terminal thing that I was doing that I was going to go through and actually open them But I think I better just not touch anything because we just spent a half an hour trying to set this shit up But anyways, I have uh neomutt. I have get cracking. I have pulse mixer. I have two terminals. I have bit warden Um, okay, and a couple other things all tied to scratch pads and key bindings And they were all over the keyboard before there was it was p o u y and m before This time I have them all on vb and an m And then I have like a shift modifier to get to a couple, you know the other four Oh, so it's just so good man. It's so much better Uh, so the colmak experiment did not something it did actually get me to go in and clean up my dw I'm configured but so anyways, that's what I've been that's always good, you know When you go in you just clean up a config and it looks nicer. You're like, uh, yeah Yeah, it does it definitely I didn't I didn't actually go through and like I love going through like removing lines to like I went through my i3 config and If you've ever tried arco lines before their i3 configuration is 2000 lines long It's like Our friend is the one it's not actually 2000 lines long. That's their poly bar config their poly bar config is 2000 lines long Actually, it's not that's because they use the same poly bar config for 22 different Best window managers. It's so it's it's dumb But their i3 config is like I don't know I go eight seven or eight hundred years long lines long And I went through one time and took out all the key bindings and got to 97 were 97 lines long and I was so proud of myself Because I moved everything to sx hkd. So anyways, all right, uh, so Uh, to get if you want like to get in contact with us, you can do so You can follow us on twitter at the linux cast where I tweet about a whole bunch of linux stuff You can subscribe to all of our audio feeds and stuff like that at the linux cast.org And I also said all right here's something else. I did this week I sat down and I planned out the website that I've been promising forever Okay, uh, it's not done yet. It's not up yet. So this could still be many moons away But it's one step closer because you inspired me with the um the gemini capsule you were talking about And I've what I've decided to do something like what hex dsl has done is we'll do a gemini gemini capsule And then I'll write a script to push that up into like a github page So I don't actually have to pay for anything and that'll be our website And that's gonna that will happen eventually But anyway, that's awesome. Yeah, it's gonna be nice. The linux cast.org is where you can find all of our, uh Audio feed and stuff like that if you want to get in contact via email email until next cast.org You can support us on patreon at patreon.com slash linux cast You can find tyler who goes by zany on the internet with the links in the video description I don't say those links because they're you know fugly links Uh, but they are in the video description They'll also be in the audio description if you listen to this in the audio which a lot of people do We appreciate every single one of you and you subscribe you can subscribe to the youtube channel at youtube.com slash linux cast So Technically this is episode 51 I I know last week I said it was gonna be episode 50, but I miscounted it's episode 51 We pushed this back because Matt's procrastinating his stupid asshole No No, really we pushed it back because I hadn't even have an idea yet so Hey, hey now my idea my I might have had an idea But some will I'm sure will argue in the comments Or just getting back to us on this video that my idea Could have also used the extra time to get better But Well as long as you use that time, you know, well, I'm and I'm sure you did I definitely did because like I said, I didn't come with with I so I had four or five ideas um Before this like but I couldn't decide between them and some of them were just the stupidest thing ever Uh, the one that I really really liked and I really really wanted to do was a a movie Uh management script where we'd go through rename a file for the movie Save the file with like a comma separated value list where it had the title like genre and Are um, you know actors or whatever and then eventually I could go through with another program and language and create some kind of Tui that would allow me to search through my music library or my movie library and then like play music and or movies and uh search through them, but that was Way too ambitious I was like that sounds just a little bit complex It was just way too ambitious and The bash part of it would have been such a minuscule project Uh, because the rest of it would have been done something like python or rust or something like that And I don't know any python or any rust so, uh I figured a project that was like a precursor to something else wasn't going to do all that great so Like I said, I just started on sunday with this idea so You probably wonder what we're talking about if you're watching on youtube You're about to see some awesomeness. If you're what if you're listening through audio, uh Stop now go to youtube and watch this. I will try I will try my best To go through the lines of code that we're about to talk about so the audio listeners can at least kind of Uh, imagine what we're talking about here, but I'll do my best If not, you can go to the like I said you go to youtube. There'll be a timestamp. You can just watch this part here You don't have to watch it all um, so I'm either one of us. I mean there have been glimpses of my script today while we were setting up But I don't you don't know what i'm doing here, you know, no no and I have no and also the Script that was loaded up on the screen. I even though I saw it I wasn't reading any of it because I didn't know if it was your script or if it was something like To be honest the way that the setup was going I didn't know if it was something that I really shouldn't even be seeing in the first place So I was like I should read it Only one of us here here has shared a password on on a stream recently. Okay, so Not not as bad as me sharing my address that one time it was It wasn't my whole address. It was just a zip code, but it was still bad enough. I had to pull that video Well, you're still assuming that I haven't docked myself in streams before anyways, all right, so Our task I should actually go through And see if I can find the rules Oh, yes, because I'm sure some people aren't familiar with them. So this is the bash challenge And where the hell are the rules? I I know you sent them to me in telegram. I did all right. So here are the rules and It must be pure bash. We changed that. Uh, so it doesn't actually have to be pure bash But I think we said that has to be as close to bash as possible. Yeah Uh, so, uh We kind of shied away from using things like awk grip and said so another thing it has to and I'm really glad this I worded it this way. It has to be useful or cool or both Um, if I just said cool, I would have lost Just say it for good guarantee. Um And also if it was just useful, I'm pretty sure I would have lost so right So I'm glad we said it was useful or cool and the third one is we couldn't tell each other what we were working on now Both of us have become Parallelously close to breaking this rule Tyler's been streaming every night for like the last three or four days and he's talked about his script In vague terms like he's become very close to breaking this rule a couple times I have danced on that line like crazy All right And yeah, so in the fourth and final rule was that it had to be something new It could not be something that we've written before now What we did not say was that it couldn't be based on someone else's work So that was a little bit of a loophole. I don't know whether or not you actually discovered that loophole or not because I certainly did Although I don't I didn't actually look at anybody else's code. I just know that what my script does Other people have done as well Um, and probably done way better All right, so, uh, this is the best challenge And we plan on doing this at least every 50 episodes and if this still goes well We maybe we'll do every 25 episodes and we don't it won't always be a bad challenge It'll be some kind of challenge where we kind of go head to head and some kind of uh, you know, whatever so Without further ado Tyler you're good to go first Oh I I okay, so before we do this. I have done a magnificent job Of lowering expectations for my script So much so that I have been messing with Tyler's head the whole time Or he thinks I have because I really haven't I mean there was no like, uh nefarious, you know, uh Evilness to my plan it just kind of worked out So, uh, Tyler, uh, let me see if I can find your script here while we're going Let me um, so we're gonna do I have to do a little bit in podcast setup here We've tried to do our absolute best to try to get this to actually work Um Without having to go through and actually set it all up, you know Right here. So first I need to share the screen so that Tyler can see Okay So we do that and then we have to go through and change to A different scene here in OBS so that everybody else can see so Tyler you can see my screen. Yeah. Oh, yeah Okay, and we'll I will zoom in here in alacrity so that everybody can see and We're gonna go into the bash challenge folder And if we do an alice here, we have our scripts now There's also another file in here that had my like idea thing in here. So, um I'm gonna open up your script now and then you're gonna tell me what you did. So all right hide and seek is the name of the folder Uh, it's definitely prettier than mine Okay, so well, what is this so mine is uh, so it's called hide and seek and it's a little hide and seek I do you It's not straight pure bash through it, but it's almost all bash If if not pretty damn close to all bash and it's a little hide and seek game and So the first first little bit of it here is just printing out how it works and Also sort of the options that you get so it explains you're going to choose your difficulty level and then If you check the directory that you ran this in after of course after you've chosen a difficulty level You'll find a folder called hide and seek and as soon as you move into it Or move into it based on your difficulty, there will be anywhere from 25 to 100 files inside this directory Find the file that contains hydrhythm. So you're essentially playing hide and seek with your own Okay, so on your own it like creates the directory After you run the script, right? um Well, so there is an option for quitting with and if you just quit out of it It won't make the directory. It won't create anything Uh, I I wanted to do that just because I know there's going to be someone who runs it It was like I don't trust this one bit and if you actually choose quit I didn't want you to find cruft on your fold or on your hard drive. So, okay um So i'm going i'm going up and down this and why don't show you let's What should we do for should we go ahead and run it? And then go back through and talk about the line, you know go through You know line by line or whatever and you tell us how you did what you did or should we do Go through and um, you can tell us what you did and then we'll run it. Which would you rather prefer? Uh, let's go ahead and run it and and then i'll go back through and explain it. Okay, so I need to make this, uh executable Otherwise it won't work. Okay. So we're going to do dot slash hide and seek Okay, here we go. All right, so And of course it's cut off the top here because It is but that's mostly because i'm zoomed in so far if I zoomed out here quite a bit Yeah, there we go. Um, can you still read that or should I just zoom back in? Okay I apologize if you can't read you know watchers read this so let's so For the audio listeners, we're doing a horrible little job of actually doing this I promise that we're going to try to do this better for the audio listeners. I do apologize So on the screen what i'm looking at is a hide and seek like ascii art thing with the words hide and seek It says how it works choose your difficulty level if you check the directory you ran this in you'll You'll find a folder named hide and seek move into it Based on your difficulty level, there'll be anywhere between 25 and 100 files This sounds like a thing to fill out my hard drive Based on your difficulty level, there will be anywhere from 25 to 100 files inside this directory Now find the files that contain hider in them Okay So, uh, you said on the stream last night You wanted me to check hard so All right, all right. Was it supposed to stop? Yes All right, so it spits you out if we do an ls here. We got some a folder here Okay, so if we go into the hide and seek folder All right, can I go ahead and clear the screen now? Yeah. Yeah, okay So if we do an l I'm in the hide and seek folder now. Holy shit um So I'm supposed to find one of the fuzz these There's like somewhere within these hundred files. There's eight of them that have Yes, oh and so for the audio listeners again, we're trying here. Um, that so the diff After it explains the first bit there it it also says enter your difficulty and it has options for E being easy and easy there is two files that have high there's what says two hiders But there's two files that have hider in them Um in is for normal difficulty that one has four and hard has eight Um, so you have eight files in here that have hider in them And the goal is to find which ones that do have hider in them. Okay. So what uh, is in the other ones? So are they all almost empty? Yes, okay. Yeah, all right. So Before I go through and start searching I guess one by one. I don't even I don't even know Uh, uh before I start searching it feels to me like two would have been harder than eight Because there are fewer They're where you'd It's easier to find eight needles in a haystack than there is to find two So I'm very curious how you went through so this is not that it's not going to be hard with eight two Because there's a hundred files here now. I was about to say I mean we could I could have made the difficulty level that insane But I figured at least if you're playing on hard difficulty, it's nice to feel like you're winning at some point right, so And so I'm the point of this game Is it is not just to find them But also Are you good at like because there are different ways that you could go about finding The file which files have hider in them faster but What also a thing that I did to make it even more difficult is For again those people who are just listening and can't see the files have um Not necessarily an easy naming scheme. Uh, they're all starting off their file 001 dot 00 And they all go up incrementally from there. So the file 002 is dot 001 So it's not exactly like you can just go through there and like recursively go up and up Making it really easy um, so I was while you're talking I was thinking about how I would go about doing it and um That's really it is quite a hard thing to do Um, I'm sure that if I was more proficient with the command line That there's a way to go through and like use the find command to go through and find those files But I don't know enough about find because I always use locate find file Because locate is better than find for what it does just to search for files because it searches more um so I think friends that we're going to pet a cat So, um, let's see just randomly Um, we're gonna choose 30 right off the bat dude right off the bat that's where it's at Right off the bat you can't you couldn't even have So let me ask you this is this random every time so if I played this again after deleting the the The thing is a random Thing or is higher in the same file every single time it's random or as random as you could probably make it Yeah, yeah All right, so there's one We don't have to go through and play the whole game because I don't know how long it would take to find eight of these If we're going to cut out every file. So we're going to try zero six eight zero six eight was empty, okay, so, uh, we're going to try zero Let's see 20 20 was empty. This is really random, man No, okay, um, let's try let's try to go all our way all the way up to 100 100 was empty There has to be like a better way to do this. I'm sure there is now. Let me think about it. All right, so We've seen the way I would do it. How would you go about finding it? I'm just asking Um, well for me, I I honestly can't remember the command off of off the top of my head but I did find a good way of going through it that was Dang now I can't remember the man I can't remember. There is a command that I found that you can go through and search the files. Um Dang, I can't remember. Uh, I think it was using the fine command. I found I should have had to get saved That would have been great. Did you just see what I just did? I found all eight of them But it doesn't tell me what file they were in I just I just did cat star You know if I just went all of them That obviously is 100 cheating I mean technically you just won the game I I did it, but the game didn't say I had to know which files they're in just that I had to find them So true winner winner chicken dinner You didn't see that one coming did you? No, I did not Okay, um, I didn't first of all I didn't even know cat would work that way And neither did I had no clue that cat would work that way. All right All right, so let's go back to your script here and go through it Line by line. So we'll we'll cd back up a level. Oops. I did it wrong I do know how to use the the terminal trust me And we'll vim into high and seek and So at the beginning you just print it out the the screen we saw Okay, and then we have a while loop. So what does this while loop do this is the whole script is the while loop, right? Yep, like I try I mean I had it way more as People would like to call it bloated than it is now Before but I've I've gotten it down pretty pretty basic. So it's it's just a while loop that's going and it's it's taking in the The value for difficulty and then It reads the difficulty and Then it creates the directory of hide and seek Well, um, so first off there's the there's the case statement there. So we're going to read for Different input and I have it for e or if you do a capital, you know, right one, it'll still work But it's going to create as soon as you choose your difficulty. It's going to create the directory um Then it's going to cd into it and then it's going to it's going to run this touch command that pace And then it's going to do the print f so that you get the randomized file and I'm doing the file like 00.001 to 25 so you're going to end up with so that's an easy one Yeah, so you're going to end up with 25 files with That being the name and then it print another print f is running for the after the dot so that you get, you know A more randomized ending to it too. So zero through 24 for that. Okay, and that And then we have an n equals two here Yep, and that is for the Well, if I can remember. Oh, yeah, that's for the number of hiders. I almost forgot that Oh, yeah, when you're naming variables, it's it's always better to name them something that you know makes sense not just a letter just Let you guys know that Put some comments in here, man Yeah, that'd be great too Okay, and then we have an ls in a sort and a tail and some stuff here. So what's what's this stuff about? um, so we're gonna This is actually doing the hiding right? Yes, this right here is putting in the hiders For you and it's it's it's listing out the because we seeded into the directory hide and seek and we've made the files So now it's going to list them out randomly sort them And then we're going to use tail to get, you know, the the first two or the randomized first two files there and then While we're while we have that we're going to echo hider into that into those files and And then we and then and then it just does the same thing but for the higher difficulties, right? Yep And then it ends itself off down there at the bottom with just For the quit command, you're just going to exit the script and it literally does nothing So again very simple script Yeah, um, so I'm trying to think so our friend terminal for life is going to take these scripts and critique them I'm trying to find places where he's going to critique this and uh I don't know whether or not these counts count as subshells or not Uh, but I would say this maybe that's something where he's going to comment But uh overall this is really quite good because I don't know anything I know Before we did this challenge. I knew very little about while while loops I'd never used one before And I when I created my script. I actually had to look up how they worked. So This is very this while loop is much more complicated than the while loop that's going to be in my script so I'm very impressed with the randomization of the numbers and placing the Hiders in different files. That's really cool um, yeah, so I If I hadn't found my work around I'd probably still be sitting here trying to find those damn big fuckers But because because I'm a big fat cheater I found them all very quickly Found them extremely fast You would have You'd want to have to have an honest player to say to have a rule that says you can't use that particular You know mechanism to get around it because you have to say hey, you want to not only do you have to know so You can do this with my script how how you would improve it So if there was a way for you to stay inside the running script to go through and find those Files that way the the game is still technically running and then in order for you to win the game You have to tell the script what files have the hiders in that way. It knows That you didn't just go through and cut the whole thing out You actually have to enter The file name into the script in order to tell it That's where the hider is and it goes through and actually checks Where the hider is that I like that. Yeah, I don't know whether or not you could do that with bash or not But that'd be a that'd be a challenge for a version 2 of version 2.0. Oh, yeah So I like that that that is a that's a good recommendation. I like it really cool. All right, so that was your script Very impressive Yeah, I'm me nervous. I am I am just if I was sitting down, I'd be on the edge of my seat waiting to see yours All right, so I did not go with a game I thought about like a text based text based adventure game where I'm you know like organ trail or something Like when we first decided we're gonna do this I had wild ambitions Right, like some of the things I was thinking like I'm these these games are going to be so cool or The script is going to be awesome and it's going to be huge and it's going to be do so much And then as I continued to procrastinate the ideas continued to get smaller and smaller and smaller, which they had to for strips So mine If we see if we've been into mine so mm DTS Mine is called if let me go to the top here It's called the my dots to repo converter So mine is not cool, but it is I think useful so When you want to manage a GitHub files thing you can do it in any number of ways some people just Decide to create a dot files or a a get repository of that just hold that config file Not the greatest way of doing it because there's a lot of stuff in there. You probably don't want to share Alternatively, you can just copy the dots you want to share into another repo and then always update those through a Every once in a while go through and copy the One files into the other files and then do your whole get up pull and push and stuff and stuff like that So you can do it that way The way A lot of people do it is through symbolic links So what my script does is it goes through Right now for alacrity bspw mi 3 and awesome window manager It will go through into your configure dot config folder It will move those files from dot config into a repo like move them and then it will can create symbolic links From that repo back into your configuration file So that you can go through and just create your get repo in that one folder and upload that to github and That way you can make all your changes in that folder and your your config Like your window managers or whatever we'll pull from the sim links. So all of your updated Your updates are all done within the same folder and you can just whenever you make a change Push it up to github And cool. Yeah, so there are many other programs that do this and I'm sure like I said much better so I'm a little worried about running this on stream because like I said, this does move Actual configuration files out of your config folder into another folder. So the configuration files are no longer in Your configuration file for a little bit and if it fails, you know, whatever so I'm gonna I like how we were considering just exchanging scripts and running them on The thing is is it wouldn't have worked because you probably don't have bspw mi 3 or awesome window manager on your machine, right? Don't have any of them So I do I have I have everything All right, so You ran yours before we went through. I'm going to go through mine before I run it. I will run it on camera I promise it probably won't work because it worked last night, but I'm sure someone's gotten here. So the first thing I do is I define the repo So it always creates your my repo in your home directory Originally, I went through and had it asked for a user input. Where would you like your repo? That was messy because I had to use a An absolute path in order to actually work And that said it was messy And then it just defines a couple colors so that I can and I use those colors here right away in a warning So if you're listening through to on audio, here's what the warning says warning This script will move directories from your doc config directory into a directory if I could use directories one more time in the sentence I'm going to shoot somebody Into a directory called my repo in your home directory. That's four uses of the word directory in one sentence. Awesome I didn't even notice that It does attempt to make a backup the backup file will be located in your home directory if it is needed And then and then we use the read command it says are you sure you'd like to continue? Yes or no This is where I get to use A case input. So I use whether the input for that is Yes or no or something else and it does all the whole case sensitive things for yes or no And then it well all it does is just continue on if they hit yes no exits out So after that I check and make sure that a doc config file exists Because if the doc config file doesn't exist The whole script is pointless and you know, it just you know, it wouldn't work So if if it exists it will continue and just print out something like the doc config file exists And then if it doesn't it will exit And then what it does it will check and see if the my repo Directory exists if it doesn't it creates it if not it just prints out already exists um And then I'm I I don't mean to critique too much But I would say if the check if config file doesn't exist Maybe a warning there letting the person know that like the scripts like it's not complete It's just ended would be good there. Yeah, I can I can Echo out something like that that'd be easy, you know um Yeah, like say what why it exited out. Yeah, that's a good idea um And then after that this is where it creates the doc config backup So this will back up your entire doc config folder um And yes, that could take up a lot of disk space and it might take a little while on longer or on less powerful machines, but Originally, I wasn't going to do the the config backup at all But I realized that if because when you move files sometimes Things mess up either they don't get transferred or something And this happened to me So I wanted to make sure that in the process of this if something went wrong People could get their whole doc config file just back completely So that's what this does it It just is this if doc config exists then it goes through and copies the doc config into a doc config backup file that has is is a A date stamped so it uses date in order to create a date stamp all the way down to the exact second the file was created um, and then if it Um, if the doc config file doesn't exist, it just echoes out. Where's your doc config file you hooligan? Um, that board happy lab. I was like, right? Yeah, um, and then all of all this does Is for the specific window managers that I've chosen in alacrity Is if doc config slash bspw makes exists then it moves that file that directory Into the repo folder and then it links the That directory that it moved back into doc config And then it moves on that's all it does Uh, and that way when you go through and make changes in the repo The doc config stays up to date all the time And you don't have to go through and create multiple repositories for every single window manager All you have to do is go through and create that one repository and upload that to get and it's all of your window manager You know config files And right now I like I said, I have bspw m I3 awesome and alacrity. It would be very easy to go through and you know like add Your own to this all you have to do is cop You know yank this block of text Paste it in and then change the word alacrity to whatever's in your doc config file that you'd like to add to your repo. That's all it would do Uh If I were smarter with bash, I would go through and make it that kind of automated so people could go through and like say I want to add these things to my of repo, uh herpes loft Of kitty or whatever and they could just have an input of those file names and it would go through and You know add that to like one block of text and do it over and over again until it ran through all of the Ones that the user inputted, but I didn't you know do that and then all of it The ends on a print f Where says if the script seceded delete the backup of your config file as it does take up a lot of hard drive space Um, all that's left to do then is to create your get repo and get in it And that is the script Um, I mean that that is a Uh much more useful script than mine I don't think there will be any contest there You went cool. I went useful. Um But there's nothing wrong with that because I think we all agree that between the two of us you got the cool thing going on Way more than I do. All right. So, uh, just to show that this works Um, I'm going to actually Go into my home directory and do an ls here And we can see that there's not a folder here called my repo The only directors I have that aren't hidden are desktop downloads media and virtual box window managers. Okay So if we go back into downloads here And the bash challenge and run this Uh It's going to ask give me my warning. I'm gonna hit yes And then it's done Okay, so if I go back into My home director here and we'll clear this people can see and do an ls. We now have A my repo directory. So if we seed into my repo and do ls I have folders alacrity awesome bsbwm and i3 If we cd oh and we can also look up here and see that it created a dot config backup folder and if we go into my dot config file and Clear this and do on ls. We can see That alacrity Awesome bsbwm And i3 are all symbolic links So that any changes I make in that other folder will automatically be here and i3 bsbwm awesome And alacrity all will just continue to run just like normal But you have one file that you can manage all your stuff in And also create that into a git repository So that you can upload all those all in one, you know one swell fell swoop in order to You know upload to git That's it. That's my script. So critique Much more useful than mine The again the only thing that I I see again I think both of us are basing any critiques off what we Assume that terminal for life is gonna point point out And I think the only thing that I really see in in your script there because I mean the Again, it's much more useful to mine is just the fact that it it exit exits without You know letting the user know like Like hey where we're exiting because your config file doesn't exist or your dot config folder doesn't exist Um, I mean I could cheat and go through and change that right now. It takes exactly Like I mean that that's one of these smallest gripes ever you could fix that and I mean, how long does it take to write an echo command like four seconds? um If I had to look and see what is probably going to critique it's At least at first. He's going to critique this long as printf command and the new line thing I'm not sure if that's was the proper way to do that and it's not formatted very nicely Um, and I don't I don't know about that because if a long printf command is something he's going to critique then Uh my script it starts off with a extremely long printf command. Yeah, yours was pretty though. Mine is all weird I couldn't because printf doesn't have a functionality for actually like Uh, like centering or something because I what I wanted to do was like center The printf but you can't actually do that. There is like a width thing that you could do for like the width of it um But it ended up being beyond me Anyway, so yeah, that's my script and that's your script. Uh, so Uh, let me go through and get us back to our side-by-side scene here Which in order to do that I need to stop sharing the screen um And then go back to obs here and switch back to the pain I mean, let's see. All right, so For those of you who are watching on youtube You had a much better experience with what we just did than if you listen to audio So I do apologize for that. I do encourage you to go to youtube.com slash the next cast where this video will be up and um Actually see these scripts in action for yourself But we tried to go through and and explain what we're talking about But it's kind of hard to remember when we're looking at at each other through video That there are also people who just listened to the audio. So Yeah I do apologize for that now This was a competition. This was this was a challenge that was meant to be won by somebody um On the community page as soon as this goes up For the public it won't be for the patreons Uh, the patrons will get this a day early, but for everybody else when this goes up on youtube Around three o'clock on friday There will be a poll on the community But page of the linux cast that has a poll Where you can vote for my script or you can vote for tyler's script Uh, the winner gets bragging rights until the next challenge. Uh, there's no actual prize because Hello cheap bastard here Same All right, uh, I have keyboards to buy Just saying Anyways, um So vote for the script that you liked the most Uh And Obviously the comments on that whether or not uh, how you liked it how you think they could be improved So on and so forth. We will also after this episode is done upload these scripts to our Github repositories. I will leave links to mine now. I don't know Uh, we'll probably put up on our both individual because we both have repositories for this kind of stuff So, uh, we'll leave links to these scripts in the video description So you can go through and download these and use them if you want to Uh, just caution if you use mine Make sure you remember that shit's gonna get moved I am not responsible if she gets moved and uh, it races itself. There's no rm in that That script so they shouldn't remove anything it but sometimes stuff happens Anyways, so whoever wins like I said will be announced Sunday night on the stream So you'll have two days and a little bit of you know, a little bit extra to vote So we'll see Who wins may the best man wins you're winning Okay, uh, so, uh, that was the best challenge Tyler, what what did you think of that so far? What did you think of that challenge? How do you think that you? Um Okay, I am way less confident after seeing yours just because your I feel like people are going to vote On the more useful side Mine might be nifty and cool, but I don't think mine mine is by no means useful unless you're like Trying to learn how to find stuff in files. I guess that'd be good practice But it would be good practice to go through and try to find because I mean I'm sure That other than using cat there are other ways of doing it, right? I mean they have to be so Um And I mean I know there are other ways of doing it that actually what it will spit out the files that have the matching texanum I just don't remember it and also I've not I'm not my terrible for life where I know stuff in the terminal room You don't want to go through and spoil it. I mean that'd be a waste of a game True true. Yeah, that that's what we'll go with and that's why I don't know Yeah, so I think it's going to be closer than you think it's going to be because They're going to be some people that are going to say well, you know what matt script There's like six or seven or five Thousand other scripts that do this exact same thing. Why did you create the same thing? That other people have created so uh, that is definitely going to be a problem I will go ahead and say this in your defense to those people look There was nowhere in the rules that it had to be unique. Okay Well, this this would have been a lot harder to do If we said it had to be unique. I'm glad. Yeah, I didn't I'm glad we didn't have that rule I will say that I don't think anybody has done what I've done in the way that I did it Um, because most people would have a more complex way of doing it instead of just a series of if commands I mean, that's literally all I did was a series of if commands There's like six if commands and a case You know a case loop or whatever and a couple reads. It's literally all it is So it's not if this is like the height of batch scripting So same with mine I think I think that The other programs that do this I'll do it in a way that's much more Customizable and has a lot more user input in order to tell say hey upload these files into the repo or whatever So Uh, it'll be interesting to see who wins I'm I'm not confident one way or the other. I couldn't tell you. All right. So anyways That is the badge challenge. So we do have Picks of the week for you this week. So tyler Why don't you tell us what your pick of the week is there's not going to be anything Uh on the screen to show this because I didn't have a chance to go through and actually put these in the browser. So Uh, just talk about it. Yeah. Well, my mind's pretty much One that most like it if you're a All radio Linux user and you're watching this Uh, just know you've probably already heard of my pick of the week, but it's it's seamless It's a great great terminal music player. I don't think I've actually Really ever talked about it, but I know there's when it when it comes to terminal music players If you want to play music in the terminal almost everyone knows either about seamus or use a seamus It's a great music player. It's The key bindings for it make total sense. It's It's the most simple thing to set up and use So if you if you want to play music inside of the terminal and you don't want to you know loaded graphic user interface for just pressing play on a song seamus is a is a great way of managing playing music and Also, for some reason, I don't know. I I saw a reddit form Or form where people are going back and forth talking about how it's difficult to turn The or change the volume in seamus If you're that person out there and you You don't know anything about seamus. Just know as soon as you have a song playing the minus and plus buttons Just turn up and turn down volume That was the funniest reddit for for me to see because it was like eight people going back and forth talking about how it's impossible I'm like, what are you guys? Like come on. It's it's in the Read the man page. Like I hate to be that type of arch user who's like read the manual, but like I mean, come on the most funny is for like the last minute your voice has been breaking out. So I only heard about half of what you're saying uh No, it's fine because the recording should on an audacity should be fine but uh, the funny thing is one of the parts where you dropped out is where you said the word Like it was like automatic sleeping. It was awesome. Uh So I've used seamus before I don't particularly care for how it looks So I use the crazy nc mpc pp or whatever the fuck it's called No, I've never even heard of it. Uh, it's a front end for mpd Oh, okay. Oh, so the mpd server runs in the background and has all the music and playlists and stuff like that And this is just a front end for it. It's really cool. It's more customizable. I think than seamus But it's also harder to customize because you have to do mpd first And mpd can be a slog to actually get set up because you know it worries about ports and all this sorts of stuff So definitely seamus is better for you. You don't know what you're doing All right, so mine is also a program that a lot of people have heard of it's called Zathura It's a pdf reader that is kind of meant for the suckless crowd It's very much just a pdf reader. It has a lot of features, but they're very much Bared in terms of uh, key bindings you use key bindings to navigate through this thing And it's a pdf reader, you know, it's for reading in pdf. So There's not a lot to say about it But I found myself the last week or so having to go through and actually viewing some pdfs because I've been trying to learn some stuff about like print f like last night, for example Uh, I wanted to know more about print f because I wanted to see if I could go through and add some extra lines Without having to go slash n slash n slash n, you know, uh, and I found a pdf of A docked. I think it was like a doctoral thesis on print f. I was like first of all nerd I mean, could you if you write your doctoral thesis on print f you win The nerd card. I mean like you have the the biggest nerd card of all the nerds Could you imagine being a professor and getting a thesis? And it's like it's all point is print f the glory of print f Yeah, like I couldn't even imagine that guy says like first of all, what the hell is print f I'm sure like have them probably what the hell but um Buddy Yeah, all right Apparently my aunt just got here. We're we're going on a trip right after the podcast ends So that's gonna be fun. Yeah. All right. Anyway, so That's the reason why I was looking up Zerothura as I needed to be able to view as pdf on my computer and uh Zerothura was the thing that I used and I read the whole thing on print f. I swear to god. I did Uh, it no Yeah, yeah, I did it's not that long. It's like four or five pages So it's not it's not as bad as you think it would be and it's not it's not as dry as you think it would be either I actually learned quite a bit about print f Uh But I still can't get my head around that somebody actually wrote this thing. I mean It's hilarious. Anyways, um So that is it for us this time Coming up next week We are talking about should native links game development be the focus So I'm assuming we're gonna be talking about steam and the steam deck and proton and all that stuff So that should be very fun. Make sure you turn all that good interesting gaming stuff. Yeah, we're going back to gaming We're moving from bad scripting to gaming Uh, we're nerds. We're diverse here. Yes. Anyway, so before I go I should take a moment to thank my current patrons Uh devon chris east coast web gen 2 is fun too. Thank you. Um I'm That was kell of devils Uh, what was his name and he changed it to gen 2 is fun too because I know they wanted me to say gen 2 is fun too Okay, uh marcus magland donnie's spen mitchell mr. Fox arts center american camp. Thanks everybody for watching We'll see you next week. See you