 So you guys know I've been working on DTOS, which is a deployment script for my Xmonead desktop. I actually had to take a few days off from that year in the last week or so. I haven't really worked on DTOS at all because I had a family member that had a serious operation on their Achilles tendon. And I've been helping this family member out a lot because they're not able to walk right now. Of course, it'll be several weeks before they're able to walk and I've just been trying to help this person out. So I've taken a little bit of time off from doing things like DTOS. But today I had a little free time and what I wanted to do was I wanted to package my Elacrity terminal config for the eventual release of DTOS. For those of you that are not familiar with Elacrity, it's my terminal emulator of choice. It's light, it's fast, it's GPU accelerated, it's got a great little config file that's rather easy to read and to understand. Now one of the neat things you can do inside your Elacrity config is you can set multiple color schemes inside a single config file. So if I switch over to my desktop, this is my Elacrity config opened up in Doom Emacs. And if I do a search for color schemes all caps, I know I made a comment in my config color schemes here. And you see schemes colon and inside this block, everything after this block is specific color schemes I've set. And the next, the very first color scheme I've set is Doom 1. So I've got Doom 1 colon and then space ampersign Doom-1. That's setting the name of the theme as Doom-1. And then of course I've pasted the Doom 1 colors inside this block here. What this does, it makes my Elacrity terminal have the same color scheme as the default Doom Emacs color scheme, which is called Doom 1, which is why I named it that. And then if I scroll down here, the next section is Dracula colon space ampersign Dracula. So we're setting a new color scheme called Dracula. Of course this is the standard Dracula color scheme. I actually copied and pasted this from the Dracula website. They had a sample Elacrity config file on their website. So I just did a quick copy and paste. So I have two color schemes in my config. I have the Doom 1 color scheme and I have the Dracula color scheme. And which one do you select? Well, you select it with this line here. Colors colon space and then asterisks and then the name of the theme. So if I did instead of asterisks Doom-1, I did asterisks Dracula. And I do a write on that and then open my Elacrity. And you see right now I of course I'm using the Dracula colors rather than the Doom 1 colors. If I undo that, write that and then open my terminal again. I'm back to using the Doom 1 color scheme. Now because Elacrity is so easy to configure with multiple color schemes, you can put a million color schemes in this one config file if you want to. Because it's so easy to do that, people have actually already made it rather easy to do this to help you out. There is an actual, on the official Elacrity GitHub. So this is the main Elacrity GitHub page. They actually have a section called color schemes. And you see they've got a list, a rather long list of various color schemes. And you see these arrows? If you click the arrow, you will get the code block here. You just do a copy and paste and you can of course put that in your config. And now I would have the afterglow color scheme. I'm not sure what afterglow is. I think what I want to do is I want to add all the color schemes that are available in Doom Emacs. I want to also put those exact same color schemes inside Elacrity. That way eventually I want to have the ability to where, you know, if I change color schemes in Elacrity or in Doom Emacs, maybe I can change both of them to the same color scheme just for consistency sake. That's kind of the idea in my head right now. So I'm going to go ahead and add a few color schemes that I know are available inside Doom Emacs. I'm going to go ahead and make these color schemes available inside Elacrity as well. So I'm going to add Solarized, both Solarized Light and Solarized Dark as available color schemes. So I did a copy and paste there. So what I need to do is I'm just going to paste it right here, but I need to make sure that we get the alignment right because by default it is not right. If I go to the top here, remember when you're doing multiple schemes, you have the very first line as schemes colon and then everything else is indented over two lines. Well, by default when you paste those from the Elacrity website, it assumes you're only using the one color scheme. So you see colors actually needs to be indented over two spaces. Primary needs to be indented over four spaces, et cetera, et cetera. The good thing is inside Doom Emacs or inside Vium, they both work the same way. What you need to do is get inside visual mode. So the easiest thing to do would be to do control V to get into visual block mode and then go down and select all the lines that need to be indented. So that selects all the lines that we pasted. And then what you want to do is get into command mode. So if you do colon, by default, you'll get this information pasted automatically. You get single quote, less than sign, comma, single quote, greater than sign. That is arranged. That is signifying that this is this command we run. It's going to be run on a range from the very first line we selected to the very last line we selected. And then what you want to do after that is do space. And then what you want to do is type the word norm as saying, hey, we want to do normal mode, space, capital I. I in normal mode, capital I is insert mode at the very beginning of the line. And then what I want you to do is space, space, because we want to add two spaces to the beginning of every line we selected. Then hit enter. If we did that correctly, every line that we selected should have been indented over two times. And that is exactly what happened. Let me go ahead and actually add some spacing here. So that added solarized light to our color schemes. And just to verify that that worked, I'm going to go ahead and try solarized dash light. Let me go ahead and write that and open a terminal. And it appears we are getting an error and it says line 40 column nine. So apparently we did not type this right. Solarized light is probably not the right name. What did we actually set the name? We actually didn't set a name. So this is the problem. If I go back and look at Dracula, the first line should actually be the name of the theme and then ampersine name of theme. So let's go ahead and fix that. So this is good. We made this mistake. And so let's go ahead and set this as solarized dash light colon and then space ampersine solarized dash light. And now that we added this line, we actually need to go back and indent all those lines we indented before they need to actually be indented two more spaces. So once again, control V to get into visual block mode. And let me select all the lines from there. And then once again command mode. So do colon and then you've got the range from the first line we selected to the last line space norm for normal mode space capital I and then space space to add two more spaces to the beginning of each line hit enter. And now when I write this, no more error in the terminal here. Although it doesn't give us the solarized light color scheme. So it's still not quite right. Let's see. Obviously there's not an error in our alacrity config or we would get error messages. So it does recognize there is a color scheme called solarized light. And it should be using it, but it is not using like this background color for solarized light is a very light color scheme. And it's still using a dark color scheme here inside alacrity. If I close the terminal and reopen it, it's still, yeah, it's still not quite right for solarized light. Let me go back to the browser here and I'm going to go ahead and do a copy and paste for solarized dark. And let me go ahead and add it as well and see if I can get it to work and see if I can figure out what's going on with solarized light as well. I'm going to copy that. Let's go ahead and paste this color scheme as well. And remember we're going to have to actually add a line here right here. We're going to have to name it. So I'm going to call this solarized dash dark colon and then ampersand solar rise dash dark. And then of course everything else needs to be indented over a few spaces. Actually these need to be indented over two spaces and then everything past this needs to be indented over four spaces. So let me go ahead and do control V to get into visual block mode once again and select all the lines for this color scheme. Then let's type colon to get into command mode space norm space capital I then space, space, space, space because we're indenting over four spaces. Hit enter and let me make sure that all of that worked correctly. Looks like the indentation worked just fine. So now let me try solarized dash dark for theme. So write that and there's no errors but this is definitely not the solarized dark theme either so I'm not exactly sure what mistake I made when I was pasting these last two color schemes into the terminal here. All right I see the problem here in my original color scheme doom one I have doom one and then the very next thing is setting the colors primary colors cursor selection normal etc. I don't have a line that says colors right like I did in the Dracula copy and paste now this was a copy and paste they added this line here for some reason but I don't need that I didn't need it in my doom one settings and I don't think I needed it in my solarized setting since that actually didn't have this line either so I'm going to get rid of that line and both solarized light and solarized dark and then what I'm going to do is I'm going to go ahead and get rid of the extra two spaces on each line so visual block mode again going to go over two spaces and I'm just going to go down to the end of that line hit D for delete and that should take care of solarized light and then I'm going to do the same thing here control V go over one space so I'm highlighting two spaces on each line and I'm going to go down to the end here and then hit D and now let me type W and now everything works just correctly here so that was just a error on my part it wasn't really a error but because I copied the Dracula color scheme from the official Dracula website I didn't realize they had that extra line there that really isn't present in any of the other color schemes and I added that extra line and it was causing us a problem so now solarized dark obviously works so let's go ahead and see if solarized light works as well so I'm going to do a colon W to write and there is the solarized light theme so now I have four color schemes of course Dracula would work as well we've already seen it working and then of course my default one is going to be doom dash one over the next couple of days I'm going to go ahead and work on some more color schemes to add to my alacrity config those of you that are using my alacrity config you can go to my dot files repository on my git lab to grab my alacrity config and then of course what I really need to do for DTOS is actually just to package my alacrity config and how I do this let me go ahead and close all of this out because I don't need it let me open up pc man fm which is a graphical file manager and I have this git lab repository called DTOS dash configs and inside this imagine this is a file system on your Linux machine I have etsy slash etsy right inside slash etsy you have a directory called skill and inside skill that is where you should put a lot of your default config files that's typically where Linux distributions will put their system config files they'll place it in slash etsy slash skill that way they don't automatically throw it in your home directory and overwrite your personal configs they put it in slash etsy slash skill that way you can go grab those configs if you want them and that's the way I'm going to do it and then dot config uh I should have a folder here called alacrity so let's go ahead and add it and then inside alacrity of course you should have alacrity dot yml so what I'm going to do is I'm going to go ahead and open another file manager and I'm going to go in my home directory dot config slash alacrity and there is alacrity dot yml I'm going to go ahead and drop that in there and now I'm going to go ahead and I'm going to go ahead and close all of that out I'm going to open doomy max again what I want to do is I want to go ahead and create a package build for my alacrity config so I have a repository here called dtos-packagebuild let me go ahead and get into that so I've got a directory called gitlab-repose I'm going to go into dtos-package build and x8664 these are all the packages I'm currently maintaining and let me find one that would be similar to the one I'm about to create for alacrity I have dtos-fish which was my fish config let me go ahead and do the package build for it and I'm going to go ahead and get into visual line mode I'm going to do a quick copy of this whole document here and then what I want to do is I'm going to open up a second instance here of doomy max and I'm going to go ahead and navigate back to dtos-packagebuild and then x8664 and then I'm going to create a new folder here dtos-alacrity slash and then a new document package build I'm going to ask do I really want to create that yes I do and then let me go ahead and do a shift p shift p to paste that paste that in place that way it does if I just did a normal p it paste it but it paste it on the second line right it always starts on the next line capital P paste it on the very first line where we were at and now all I need to do for my package build here just for sake of time is I need to change the name from dtos-fish to dtos-alacrity will be the name of this package I'm going to say this is the default alacrity configuration for dtos it's going to grab a repository from gitlab it's going to grab my dtos-config's repository because all of my configs are in that one repository that way I don't have to maintain a million different gitlab repositories for each individual config file that I have installed and let's see what else I need to change this will provide a package called dtos-alacrity and then are we going to include a install file I will an install file it's like a post installation script that runs after the package build runs so it's actually not part of the package build itself it's something that gets executed after you know the build and the make and the install and all of that and then what exactly are we installing we are installing a file inside slash etsy slash skill slash dot config slash alacrity slash alacrity dot yml let me go ahead and make this full screen I'll zoom in here so you guys can see as well let me change this as well to etsy skill config alacrity slash alacrity dot yml and then of course we're going to install a license and the read me and this is pretty much the same for every package I shouldn't have to change that and that should work that should be a working package build we do need this package name dot install file which we currently don't have so what I could do let me do space period here inside doom emacs to get into the dred file manager and it's in the directory we're currently in I need to create a file called dtos-alacrity dot install and this is again it's just a shell script that will run after the the make package command or actually when you are installing the the premil binary that we're going to build so I'm going to go ahead and get the dtos-fish dot install file and copy that because again these packages are going to be so similar so let me get over here I'm going to do space period why is space period not working because I'm not hitting the right key all right dtos dash fish dash install I'm just going to copy all of this and we're just going to put this here and all of this is this is like a post installation hook and what it's going to do is because when you install dtos-alacrity it's not going to place that config directly in your home directory because pacman actually can't touch your home directory anyway even if it could it would be dangerous to do so you don't want to be overriding other people's configs you let them take care of that themselves so this post installation hook is going to tell you hey this config file was placed in slash etsy slash skill slash dot config slash alacrity in this case and that way nobody is confused about exactly where that file was placed when they installed this package now let's see if this actually works I'm going to open up a terminal here so I need to first cd into git lab dash repose dtos-config because we added my alacrity config to this we need to push it so I'm going to do git add asterix and let's do a git status to make sure what all we're adding it looks like we've modified a few things since the last time I did a push so I'm going to do a git commit dash m for message and I'm going to say adding new configs and then let's do a git push so now my dtos-config repository which is just a collection of my config files that is updated so now let's go ahead and do our package builds and build our repository of binaries as well so now what I'm going to do is I'm going to cd up a directory into dtos-packagebuild doing ls x8664 is the directory that contains all of the package builds for all of my packages that I'm maintaining and I have these two shell scripts build packages and cleanup so the first one I want to run is buildpackages.sh and this is going to take a while because some of these actually have to build from source there's a couple of them that actually take a while to build from source so probably take about 10 or 15 minutes but it's taking every package build that I currently have in that directory and it's actually building a binary let me go ahead and open a graphical file manager I'll show you exactly what all it's building so let's get into dtos-packagebuild x8664 right now it's building aura which is a package manager for Arch Linux written in Haskell it's going to take a minute to build that and it'll eventually build dmenu dmscripts it's already built dmscripts so it's already I run through that and it's going to also you know build binaries for my alacrity configs backgrounds which is a collection of my wallpapers xmonad my x wallpaper config my build a dwm my build a dwm blocks it's also going to build paru that's another a ur helper that one has to compile in rust that is another one that can take a while to build sometimes I've got several of these a ur packages paru aura lib xft-b g r a that's a ur package and the reason I have these a ur packages that I'm maintaining myself is I don't want to have to use the a ur especially for people that use the dtos deployment script once it's finally released I would rather everything be in a standard repository that you can install through pacman now once this build packages scripts finishes running you know all of these directories are now going to have binaries in them such as this one here it's going to have these binaries that's the binary package and that is the signature that goes along with that binary package and then I have another script that I run that actually moves all of those binaries out of the package build repository here and it moves it to this other repository I have called dtos-core-repo it moves all of those binaries into this so once I've run all these scripts I need to push all of this to my get lab we already pushed to dtos-config we'll then need to push to dtos-package build because we've updated a lot of package builds from running the script and then of course I need to update dtos-core-repo because we're going to have some updated binaries that need to be uploaded as well I'm going to go ahead and close out this graphical file manager we really don't need it for I'm just going to wait for this script to finish to complete and building the binaries from the package builds and that script completed just fine I'm going to open up a second terminal here zoom in a little and I'm going to go ahead and cd and to get lab-repo dtos-core-repo this time because now I want to move those binaries that we created in dtos-package build to dtos-core repository if I do it ls in dtos-core repository I have build-db that's script I'm going to run that it's going to take all those binaries from over here and package builds it's going to move them over into the dtos-core-repo directory run that this actually should just take a couple of seconds and let me clear the screen over here and in dtos-package build I'm going to go back because I have this cleanup script here just to clean up anything that's not a package build I want it to be deleted from this repository now that I've moved over the binaries to core-repo now let's do a get status and yeah I've got a bunch of new package builds or updated package builds now so let me go ahead and do a get add and get commit and I'm going to say adding updated package builds and then a get push on that repo and then in dtos-core-repo I'm going to do a get status to see what has changed all the binaries have been overwritten to newer binaries updated binaries so let me go ahead and add everything in this repository as well I did a get add and it takes a few seconds for that get add because these binaries are you're pretty big some of them and then I'm going to do another get commit message I'm going to say uh let's do updating the repo database and then let's do a get push and now that I've updated dtos-config dtos-package-build and dtos-core-repo these changes should be live and I now should have an installable package called dtos-alacrity and the reason I have that is because I have dtos-core-repo as part of my pacman.conf if I close this terminal here and if I do a sudo vm slash etsy slash pacman.conf it's going to of course ask for my password and at the bottom of my config you see I've added dtos-core-repo to my repositories list here so when I do a sudo pacman-s and do dtos-alacrity that should be an installable package I may need to do a sync of the repositories first let's just update the system first too I go ahead and run this update because there's several things from that repository that will now have an update available such as my build of st and you guys can see one of those post installation scripts for the package builds if you were wondering what those did you can see when a st-distro tube was installed you know the post installation hook the source code can be found in slash opt slash st slash dash distro tube so that's what the post installation hooks are doing and of course with suckless software you know my personal suckless build it's very important to tell people where the source code is because that's how you actually configure your suckless software is you have to edit the source code so if you don't tell them where the source code is on the system you know people will be angry so now that that update has completed I'm going to go ahead and once again try to do sudo pacman-s dtos-alacrity and now you see that package is available config files were placed in slash etsy slash scale slash dot config slash alacrity and if I wanted to I could actually uh let's just read it in vim here I'm going to copy and paste slash etsy scale dot config slash alacrity so and of course I should have gave it the full path but there is that config file and then if you wanted to install this on your system of course you would copy it from slash etsy slash skill slash dot config slash alacrity over into your home directory slash dot config slash alacrity so that's how that would work so again I haven't done much with dtos in the last week I probably won't do too much with it in the upcoming week because I again I'm having to help out a family member that's had some major surgery and you know I've got to spend a lot of time at their house helping them out they've got a lot of farm animals that need feeding and watering and thanks because this person can't walk at least for like two months they're not able to actually be on their feet and they've got turkeys and chickens and pigs and ducks quills dogs and cats and pretty much everything from the ark every animal that's possible to have they get about 40 acres of land and that's actually quite nice been kind of relaxing going out there and playing with their animals but of course that's taken time away from all of this as well but you know here in a couple of weeks once we get past the worst of it and of course you'll have some other family members that'll be able to help her out and once we get to that point you know I'll be back to working on dtos kind of hard we're getting close though we're getting real close to this thing being ready for a public release now before I go I need to thank a few special people I need to thank abscade James Mitchell Paul Scott West Akami Allen Chuck commander angry Kurt David Dillon Gregory Hico Mike Erion Alexander peace arching for door polytech raver red prophet Steven and willy these guys they're my house tiered patrons over on patreon they are the producers of this episode the show is also brought to you by each and every one of these ladies and gentlemen as well all these names you're seeing on the screen these are all my supporters over on patreon because I don't have any corporate sponsors I'm sponsored by you guys the community if you like my work and want to help support me look for distro tube over on patreon all right guys peace