 Here in the past few weeks, I've been slacking a little bit in some areas. I've let some things go. I realized just the other day that I haven't updated the repositories for DTOS in a while. DTOS is a custom repository of software that I maintain for the DTOS post-installation script, which is a script you run after you've installed Arch Linux or any Arch Linux-based and it installs basically my suite of applications, my .files, my config files. You basically get DT's desktop environment, essentially, you know, you get DT's X-Mooned desktop, as well as the option to install other things such as my Qtile configs, awesome window manager configs, DWM configs, etc. So it's been probably at least a month or longer since the last time I actually rebuilt the DTOS packages. So I'm going to do that today on camera and then I'm going to run through a quick installation of DTOS. I think I'm going to install it on top of Manjaro. So let me switch over to my desktop and I'm going to open my graphical file manager. So on my system, I have this folder called GitLab Repos and inside these GitLab Repos. These are all my repositories over on GitLab. And then I have this one here called DTOS. If I click on it, the DTOS is actually a group for repositories. As you can see, I've got several DTOS-related repositories here. And this is all locally on my system. But if you actually want to see this on GitLab itself, let me make my browser full screen, go to my GitLab, GitLab.com slash DWT1. And then go to groups and you will see the DTOS group, click on it. And there are all those repositories that you saw in my file manager a second ago. They're locally on my machine, right? And but this is them on the web. So you guys can check out everything I'm going to do as far as we want to go check out the source code for all these scripts and everything you can do that if you so choose. So when I rebuild the DTOS repository, what I do is I have this repository DTOS-packageBuild, which has all the package builds for all the programs that are in the DTOS core repository. These are all the packages. If I go into any of these directories, you will see the package build that will build that particular program. I've got these scripts here, this build packages.sh script, it's just a simple bash script, right? It just execute this little code here which it goes into each directory and it finds the package build for each directory for each package and it builds a binary package. Then I also have this cleanup script that gets rid of any extra crufts that is left around in this repository after I build the packages. And once I've built the packages in the DTOS-packageBuild repository here, then I need to go into the DTOS core repo repository here and I need to run this script build database. What this does is it takes all of those binary packages that now sit over in the DTOS package build repo and it moves them into this repository. There's all the binary packages. Each package has a binary which will end in .pkg.tar.zst and each package will also have an accompanying signature, right? Because all of these packages are signed packages. I've chosen to build them as signed packages. And again, if you want to see all of this on the web again, just go to my GitLab. Again, just there's the DTOS package build repository. You can see all the package builds here. You know, if you want to go investigate them. And the same thing with the core repository. You can see the DTOS core repo go into x86 underscore 64. And there's all the binary packages hosted right here on GitLab. But let's go ahead and build it. Now that I've explained that, so I'm going to open up a terminal here. I'm going to zoom way in. Let's go ahead and clear the screen. And part of the reason I've kind of slacked a little bit here lately, keeping up with DTOS and rebuilding the packages on a somewhat regular basis is because the process of building these packages is kind of lengthy. I mean, it doesn't take a long time, but you know, I'm going to have to spend 15, 20 minutes to rebuild the repos. I'm probably going to have to spend at least 15, 20, maybe 30 minutes to install an ArchBase Linux distribution and then install DTOS on top of that just to make sure that works. So you're looking at a good hour of time to update the repos and then test to make sure everything works. So I'm going to CD into my GitLab repos slash DTOS and then slash DTOS dash package build. Got to do the package builds first. Let me zoom in a little more. If I do an LS, you can see there is the build packages shell script. I'm going to go ahead and do a dot slash and then build packages.sh. Let me go ahead and run that script. It's going to ask for my sudo password. Actually, I just thought of something. Let me cancel that. This is a bad idea. Let me close that terminal. Let me check how many updates are available on my system right now. 423. I haven't updated this machine in a couple of weeks and if I'm going to rebuild my DTOS core repository packages, they need to be built against the latest versions of the software that's currently on my machine. Well, I don't have the latest and greatest software on my machine because I haven't updated in a while. So let me do a sudo pacman syu and since I've got over 400 packages to update, this may take a while. And the system update finished. You can see here in the fish shell it gives me the time that that last command took to execute. So it took about 4 minutes 29 seconds to update those 423 packages. Now let me cd back into that DTOS package build repository. Once again, I'll do an LS and dot slash build dash packages.sh is the name of the script I want to execute and I shouldn't need to enter a sudo password since I just entered it. Oh, I guess enough time has passed. I think it's my sudo timeout is about five minutes. So four minutes 30 seconds was the time for that last command. So I guess I just missed it. So let me go ahead and enter my sudo password. And right now it's going into each one of those subdirectories in that DTOS package build repository. So each package has its own directory. It's going into each folder finding the package build for every program and building the binary. This is going to take a few minutes. And the build packages script has finished. You can see the time here in the fish shell four minutes one second. So that actually was pretty quick. I'm going to open a second terminal and what I'm going to do is I'm going to CD into my get lab repo slash DTOS slash DTOS dash core dash repo because now I need to get all of those binary packages that are now sitting over in the DTOS package build repo over into the DTOS core repo. So what I'm going to do let me clear the screen so you can see the command by doing LS I have this cleanup script. This is what I need to run after those binary packages have been removed from the repo. They haven't been what I need to do is I need to run a script here in the DTOS core repo called build database. So that's what I'm going to do. Build database just goes and rips out all of those dot pkg dot tar dot zst files those binary packages from this repository and moves them to this repository. That's all that did. And now that I've done that I'm going to run finally this cleanup script because after building those packages there could be some extra cruft laying around because it cloned a lot of get repositories and you know downloading source code to build those packages sometimes that stuff gets left around so run the cleanup script just to make sure all of that stuff is gone. And then finally I need to actually push the changes right that I have on my local system to the remote repositories right the repositories over on git lab. So I need to do a get add dash u for update right any files I've updated in this repo and then I need to clear the screen so you guys can see the next command get commit dash m for message this commit message is going to be simply updating package builds. There's really nothing else I need to say right I'm just simply updating package builds then push the new package builds with a git push and now I've done that and then I just need to do the same thing over in the dts core repo so once again I'm going to do a get add dash u that's going to take a minute because these packages these binary packages are much bigger I do a get status let me make sure that it actually added everything that is new just to make sure I'm going to do a get add asterisk so add everything in this repo and now that I've done that I'm going to do get commit dash m for message this time I'm going to say updating the database and then go get push on this repo the push may take a while again these binary packages are kind of large and the push completed it took you know right at one minute for that push and now that I've done that I've updated all the packages in the dts core repo if I wanted to verify this since I do have the dts core repo uh as part of my pacman.conf here on my arco linux system I could run another pacman syu and see if any of my packages yeah so these are all in the dts core repo packages that I had installed from it you can see those packages have an update none of the other packages under my system have an update because I took that update before I did this now I'll decline taking that update for now because I want want to actually run the entire dts installation in a virtual machine just to verify everything is working correctly so I've already downloaded manjaro's xfce edition so I'm going to install it inside a virtual machine so I'm gonna do this inside vert manager so let me go ahead and create a new virtual machine here let's choose iso so let me browse I'm gonna browse local it's in my downloads directory let's search for something called manjaro manjaro xfce and it already detects that that is manjaro so I'm just click forward I'll give this virtual machine about six gigs of ram two cores of my 24 core cpu is plenty of resources we'll give it about 25 gigs of disk space that's more than enough then I'm gonna click forward name of this vm manjaro xfce is what I'll name it let's go ahead and finish and now let me make this full screen let's boot with the open source drivers since I'm in a vm all right and what I'm gonna do is I'm gonna go ahead and run through a quick installation so I'm gonna go ahead and launch the installer here manjaro uses the familiar calamari installer so very quickly let me move the installer I'm gonna go ahead and click next and Chicago central time zone is correct for me I'll click next English us is correct I'll click next I'm gonna erase the disk give the entire disk to manjaro I'm not gonna create a swap for this vm so let's show just go ahead and click next my name is dt the username of this computer the host name I'll say manjaro dash vert and then let's create a strong and complicated password for the dt user repeat the strong and complicated password do I want to log in automatically no do I want to use the same password for the administrator account so dt's password and the sudo password are the same yes I'll click that on then click next and then the summary all looks good click install install now and this should take about five to ten minutes and manjaro finished installing I'm gonna tick on the box here that says restart now and then I'm gonna go ahead and click done and it should automatically reboot the machine for me and now that the machine is rebooted and I've logged in let me go ahead and I'm gonna open a terminal so open their terminal emulator let me log in here and so imagine you're wanting to try out DTOS what you need to do you need to install this on top of an arch Linux base system so either mainline arch which is probably the best thing to do or an arch based Linux distribution such as manjaro the very first thing you need to do is you need to download the DTOS installation script and you basically you need to do this with git so you need to do a git clone https colon slash slash gitlab.com slash dtos slash dtos is the location of the repository now that you've done that if you do an ls you should see the dtos directory there in your home directory assuming this is where you did this then cd into dtos if you ls now you see the dtos repository including this script here and it's an executable script that's why it's colored bold you can actually run this so let's run it so dot slash because anytime you run a script you need to prepend it with dot slash dtos enter your sudo password the very first thing the script does it updates the machine before installing the dtos packages it runs a pacman syu essentially and depending on how old this iso is there may be a bunch of packages that it had to update once it finished running the pacman syu then the dtos installation process begins you get this little pop-up screen here right it basically walks you through exactly what dtos is about to do to your system i'm just going to click okay a few times here and it errors out because it says your locales have not been set and this is going to happen to pretty much most people when they try to run this script you're going to get this error message now this error message all you need to do is read it it tells you exactly how to fix the problem the problem is slash etsy slash locale.conf you need to set the lang and the lc underscore c type variables in the slash etsy slash locale.conf they need to be set essentially to the same value or they need to at least be set to something so let's with sudo privileges because it's a protected file so you'll need sudo i'm going to open this in vim but if you wanted to you could use nano slash etsy slash locale.conf says vim is not found so let's do a quick sudo pacman dash s vim and now let me up arrow to rerun that last command sudo vim slash etsy slash locale.conf and you see the very first variable lang is set to english us right so i'm just going to yy copy and then p to paste and the problem is this variable was missing lc underscore c type now let me escape and then colon wq to write and quit the reason that variable is needed is because some of the packages i install especially some of the suckless packages like d-menu they act a little flaky if you don't have that particular variable set so that's why i go ahead and make you set it it's just to save yourself from any potential errors you might get later now that i've done that uh the error message before said once you set those locales you need to reboot the machine so let's reboot all right now that we've rebooted now that we fix that config file let's go ahead open the terminal once again and i gotta remember the key binding to zoom in and then cd back into the dtsus repo once again dot slash dtsus rerun the script this time it should allow us to run the script with no problems and now let's see okay continue continue okay should we begin installing dtsus begin installation all right now it's adding some pgp keys and then it's going to ask us which window managers do you want to install uh typically i would recommend installing x-mone add this is the one that i've tested the most although i do offer the option to also install awesome and q-tile so uh what i'm going to do is i'm going to do a capital y for yes and then it's going to install all of these packages needed for my x-mone add desktop so x-mobar all the haskell libraries some fonts that i use an x-mobar and etc i'm just going to hit enter on that and once it's done with this it's going to ask us would you also like to install q-tile would you like to also install awesome i'm going to install them all just as just to make sure all the packages work all right and now we get another prompt do you wish to install awesome once again i'll do capital y for yes and then begin installation yeah it's going to install just a few packages for awesome because most of the stuff that awesome needed we've already installed with x-mone add you know so these are very quick do you wish to install q-tile capital y yes and then once again just a few packages to install our q-tile and now it's installing a ton of packages just general packages from the tts core repo as well as some of the packages just from your standard arch repository or in this case manjaro repository you can see it needs about 354 packages if you were doing this on a like a standard base arch linux installation you can basically think of it as it's going to set up you know your entire xorg server your your graphic server your display server it's going to install you know all the needed libraries and everything for a proper desktop kind of linux experience and now that it's finished installing all the standard arch packages now it's running through an installation of doomimax and the way the script is set up now no longer do you have to confirm anything for doomimax it just automatically answers all the questions with yes so before in the earlier versions of dts you had to stay at your computer for this link the installation and answer yes for some of these doomimax questions because it does take doomimax about 10 minutes or so to build this is the biggest part of the installation is building doomimax i will go ahead and say it looks like the installation script is going to complete because we probably wouldn't have got this far had something were to go wrong typically where things go wrong is after you set the slash etsy slash locale you know reboot and then rerun the dts script typically where it fills is right at the beginning when it starts installing stuff from the dts core repo is because some of my packages conflict with some of the packages on certain arch based linux distributions because for example i maintain my own package for xmo net well some arch based distributions may maintain their own custom xmo net package or whatever it happens to be that's just an example and the packages conflict so what you have to do is there is some trial and error if you run into that problem what you need to do is you either need to uninstall the conflicting package from your existing system if you can or what you'd probably have to do otherwise is not install it in the dts script what you'd have to do is if you go into the dts repo the directory that you cloned you'll find a package list dot txt file open it find the package that conflicts and just want to install for you and just delete that that package from the list and then rerun the script and it finished the installation of doom emacs and then it recompiled xmo net for us it compiled the xmo net ctl script and the very final part of the installation what shell would you like to be your default user shell the dts script installs fish bash and zsh and installs all three shills so pick one by number for your default user shell so i'm going to choose fish as the default shell do you want to reboot yes and the machine reboots and everything is working correctly this is actually my login manager theme for this is a sddem and this is my multicolor sddem theme it's a package uh so i just need to log in here so let me go ahead log in actually before i log in by default it looks like it's going to try to log us into qtel wailand which won't work because i didn't install any wailand stuff so that would just be a black screen so i need to either pick awesome qtel xfce which is because manjaro had that installed or xmo net let's try xmo net first and everything works you even get my startup sounds and everything you also still get some of the manjaro startup stuff going on uh that's easy to fix though what i need to do well the first thing i need to do is super enter to get a terminal let's do xrander dash s 1920 by 1080 to get a proper screen resolution and now that i've done that let me also do super p b this is one of the dm scripts super p for prompt b for background let's set a random background just to draw another background so we get that let me go ahead and kill the cocky kill all cocky all right now that we've done that let me launch pc man fm which was installed for us using the script and let's go ahead and show hidden files i go into dot config auto start so this is all the stuff that manjaro auto starts by default if i just delete all of that i'll never see like the manjaro hello screen or any of that stuff again so that is how you get rid of that for those of you wondering next mobar all look fine you've got trayer which is the system trace sitting over here let's see if doom emacs works so super e followed by e should launch doom emacs and it does the very first time you launch it after the installation it's going to ask do you want to download the emoji images it's got to install some emoji font stuff i strongly recommend you actually do install that stuff because it makes doom emacs a little prettier especially for some of the the glyphs and bullets and things especially in org mode documents and stuff like that so doom emacs is working i can close that do you really want to close it yes it doesn't look like the emacs daemon started though uh the emacs daemon should automatically start when you log in to uh xmonad but the very first time i don't know why this is just the very first time it doesn't now if i log out and log back in it will start the emacs daemon but for those of you wondering how to start it without doing that just uh launch the command let's do the full path user slash bin slash emacs space dash dash daemon space appersand hit that it's going to run the emacs daemon the emacs server in the background because it's running it as a background process you can go ahead and kill the terminal the emacs server is still running now when we do super ee it launches doom emacs as a emacs client window so now everything looks fine let's go ahead and see if awesome works and qtile works i'm going to uh super shift q to quit and get back to the login manager just very quickly i'm going to log into the awesome window manager uh awesome taking a minute to load which is not unusual awesome takes a second to launch at least using my config i got a lot going on my config a lot going on in the panel everything seems to be working just fine though once again super enter we can get a lacrity once again i'll fix the resolution there super pb once again set a random wallpaper yes we'll keep that all right so awesome looks just fine super ee should launch doom emacs as a client window and it does so the emacs server is still running uh which it should be because us killing xmonad didn't kill the emacs server right so i can actually switch between all these window managers the emacs server should always be running as long as the computer is running until i shut down our reboot so awesome is working super shift q to quit now in awesome i have a confirmation uh screen for quitting which for consistency sake i probably should add that to all the window managers so let me log out do you really want to log out yes all right and now let's finally check out q-tile q-tile with xorg don't try q-tile with wayland i haven't tested it so so q-tile launches correctly once again super enter gets us a terminal let's run the xrander command to fix the screen resolution super pb once again set a random wallpaper yeah we'll keep that and uh i'll do d menu and do kill all khaki right here inside d menu that way i don't have to launch a terminal of course i do have to spell kill all khaki correctly there we go and super ee should launch doom emacs it does but it does not look like it did the client window let's see if emacs is running kill all emacs emacs was running so i guess that was a client window because if it wasn't running kill all emacs wouldn't have done anything right but it said no process found so emacs the everything is working correctly so it's working correctly in q-tile awesome xmo neds so there you have it for those of you that are using dtos uh the next time you run an update on your system uh do a sudu pacman syu you should see a new package version pretty much for all the dtos packages now before i go i need to think a few special people i need to thank the producers of this episode james maxim meant mimit michael paul roe west armor dragon bash potato chuck commander angry george lee met those nate urion paul peace archon fedora polytech realities for the less red prophet roland tools devlin willy these guys they're my highest tier patrons over on patreon without these guys um you guys watching me rebuild dts it wouldn't have been possible the shows also brought to you by each and every one of these fine ladies and gentlemen all these names you're seeing on the screen right now 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 want to see more videos about linux and free and open source software subscribe to distro tube over on patreon all right guys peace i still need to get around to adding dwm to the dts script