 Today, I'm going to be running through a base installation of Arch Linux inside a virtual machine, and then I'm going to be installing DTOS on top of that. And the reason I'm doing this is because I need to actually test out DTOS in a vanilla Arch Linux installation because I'm getting support requests about it. So I've got VMs of all kinds of Arch-based distributions right now, Arco, Manjaro, Garuda, Endeavor. And because I have to be able to test out the DTOS script on all of these distributions, I don't have an Arch Linux virtual machine handy at the moment. So what I'm going to do is I'm going to run through this quick installation inside Virtual Box, and then we're going to install DTOS on top of that and see if it works. So let me switch over to my desktop. I've already got Virtual Box open. So let's go ahead and create this new virtual machine. So I'm going to go to the menu, click Machine, click New. And then I'm going to title this virtual machine, I'll call it Arch Linux DTOS. And then what I'm going to do is type as Linux and version is Arch Linux. That's correct. So all I need to do is click Next. Then we need to give it a certain amount of RAM. However much RAM your host machine has, give it a little bit of that RAM. So if you've got 16 gigs of RAM in your host machine, for example, you can afford to give your virtual machine two, four, six gigs of RAM, whatever it is you want to give it. I've got actually 64 gigs of RAM in my host machine. So I've got plenty of RAM to give these VMs. I'll give it about six gigs, which is more than enough for what we're doing today. And then create a virtual disk now is actually ticked on by default. And that's what we want because you need a virtual hard drive in your virtual machine if you're going to do an installation of an operating system. And that's what we're doing today. So click Create. And then the image type VDI is the default virtual box disk image. That's what's ticked on. I suggest leaving that as the default click Next. And then the hard drive. Do you want a dynamically allocated hard drive? Or do you want a fixed hard drive? The dynamically allocated drive is the default. And that's what I suggest going with. And then you get the next screen, which you may or may not have this here. This is the location of that VDI image file that it's going to create. And then you have this slider down here where you can size your virtual machine. So how big is this virtual machine going to be for Arch Linux by default in virtual box? It looks like it wants to create eight gigs for the size of the virtual machine. I'm going to make this virtual machine 20 gigs in size just to give us plenty of room. In case we install a whole bunch of software because I'm actually going to install a whole bunch of software because that's exactly what the DTOS script does. It installs a whole bunch of programs. So I'm going to click Create. And that's it. We created our Arch Linux DTOS virtual machine. Now, before we actually launch it and run it, I do want to right click and go into settings. And let's go ahead and change a few basic settings. I'm going to go into the system tab and I'm going to go to processor. I've got 24 threads on my processor and kind of like you can give part of your RAM to the virtual machine, you can give part of your processor to the virtual machine so I can give this however many threads of my CPU I want. I'm going to give it two threads of my 12 core 24 thread, thread ripper. More than enough for what we're doing in this VM, then I'm going to click on display a video memory. You can give it up to 128 megabytes of video memory. I suggest just giving it the max 128 megabytes. It's not very much video memory. We need to go to storage. And this is where you go ahead and attach the ISO. It's kind of like if you burned an ISO to a USB stick and you plugged it into the computer or you burned it to a CD and put it into an optical drive. What I'm going to do is I'm going to go to controller IDE and I'm going to click on the little optical drive icon here and I'm going to click on add. And it's going to go to my downloads directory. I have several ISOs here. And one of them is the latest Arch Linux ISO for the month of November. So I will click on that, click choose and you see Arch Linux 2021 1101. So it added that. So it's it's kind of like we plugged it in to an optical drive and when the computer boots up, it's going to read the optical disc first. It's kind of what's going on there for audio. I'm just going to disable audio in this virtual machine because I won't be using audio for anything. And by selecting a null audio driver, it will prevent conflicts from the audio server on my host machine and the virtual machine because I'm actually recording right now. So that's just something I do because I do these videos. You guys don't have to do that other than that again, because I do these videos, I like having my virtual machines be clean, meaning I don't want menus and status bars in them. So I go to user interface and I turn off the menu system and I also turn off the bottom status bar. Again, that's just for me because I'm recording the VM. I just want a clean window. Then I'm going to click OK. And now that we've got the virtual machine created and all the settings to where we want, I'm going to go ahead and double click this VM and let's get this window out of the way. We won't need that anymore. And let's go ahead and boot directly into the live environment here in Arch Linux, which is just going to be a TTY command prompt. Now also because I'm recording, I'm going to go ahead and try to zoom in here. So let me go ahead and switch to full screen here. And there's a menu at the bottom here. By the way, Control-L will get me into full screen. And now I get this little menu that I can get to by taking the cursor all the way to the bottom of the screen. If I go into view, click on scaled mode. And that will scale it to size of the monitor. So that way you guys can actually read what I'm about to type here. Now I will warn you because this VM is strictly for me to have around. So I can test out the detail of script. I'm not going to cover everything in great detail. I've done many detailed videos about how to install Arch Linux. I'm going to run through this Arch installation very quickly. And I may skip some steps and I'm not going to follow the wiki at all. I don't even have the wiki open right now. So this is going to just be me doing me. So let me go ahead and type fdisk-l to get a list of our devices, our drives, because I'm not sure what they're going to be named. It looks like our one drive, our virtual hard drive, is called slash-dev-slash-sda. So now I'm going to do fdisk-space-slash-dev-slash-sda. And I've done a video how to use fdisk in the past. Check that out if you're confused about how to partition your drives using the fdisk command line tool. And now that I've done the fdisk on slash-dev-slash-sda, I'm going to type in for new partition. It needs to be a primary partition. So I'll type P. And I'm going to do a master boot record, by the way. So by default, you only have one through four partitions for master boot record. You can do up to 128 partitions if you do UEFI. But in this VM, it makes sense just to do master boot record. So we're only going to have one partition. And I'm only going to do one partition for this VM. There's no reason to create a swap or anything for this VM. So I'm just going to make the default size. I'm going to hit Enter on the starting size and the ending size. So I'm going to make one partition. I'm going to give that one partition the entire 20 gigabytes of space. I don't have to change the partition type or anything. By default, it sets the partition type as a Linux file system. So that's correct for this. If I had created a swap, then I would have to go in and change that particular partition type to a Linux swap rather than Linux file system. But for what I'm doing, I'm making things easy on myself. I just create the one partition. Then I'm going to do W to write. And now we have made those changes. Now let's go ahead and make our file system. So I'm going to do MKFS for makeFileSystem.ext4. It'll be an extend4 file system. And it's going to be on slash dev slash SDA1. Because that's the disk slash dev slash SDA. And we only created one partition. So it should be SDA1. I could have actually checked that just to be certain with LSBLK to make sure that was the case. And it is the case that was SDA1. So we created our file system. So now I'm going to go ahead and mount slash dev slash SDA1 to slash MNT. And now the most important thing we need to do is actually run the packstrap command. So this is the command to install the base arch Linux system. So you want to run packstrap space slash MNT because that's where the drive is mounted to that we want to install the base arch installation too. And then the packages that we want to install are base space Linux, the kernel space and then Linux dash firmware. And then hit enter. And this should just take a couple of minutes. And the packstrap only took about maybe a minute. Maybe a minute and a half, very quick installation for the base arch installation. Then after that, we need to generate our file system table, our FS tab. So run gen fstab space dash capital U space slash MNT space and then do two of the right pointing chevrons, two of the greater than signs space. And then where are we directing this to? We're going to direct that to slash MNT slash ETC slash FS tab. So that should generate our file system table. And now let's go ahead and cheroot into the new arch Linux installation. So we'll run arch dash cheroot space and then slash MNT because again, that's where the drive is mounted that we just installed everything to. Now the first thing you want to take care of now that we're cherooted is the time zone information, the arch wiki is going to have great information on that. I know exactly what I always set my time zone to. So what I'm going to do is I'm going to run LN and that's the link command space dash SF and then space and then the location of the time zones and they are in slash user slash share slash zone info slash and then the next part is going to be region slash city except region slash city is actually going to be the names of a region and a city. For me, it's zone info slash America slash and I typically do Chicago space. And then you need to write that to slash etsy slash local time. And then let's go ahead and run HW clock, hardware clock and dash dash sys TOHC run that command that should set the hardware clock. Now let me go ahead and clear the screen here. Now this next command that I show is very important and this is going to be setting your locale. If you set the locale incorrectly or not at all in Arch Linux, certain programs are not going to run correctly. And that's going to be the case with many of the programs that DTOS installs. If you do not have your locale set correctly, D menu is going to complain. The XMO bar panel inside XMO net is going to complain. So anytime you get weird things going on with the XMO bar panel, like it's not displaying icons correctly or you get weird messages like invalid byte sequence and things like that, that is you didn't set your locale correctly when you ran through your Arch installation. So let me go ahead and set my locale. I'm going to do vim slash etsy slash locale dot gen and vim is not found. So what I'm going to do is I'm going to take some time to go ahead and do a pacman space dash capital S to install software. I know I'm going to need vim. Let me go ahead and install that. And now I'm going to up arrow to vim slash etsy slash locale dot gen and I'm going to search for en underscore us here in this list. And they go down to this right here. What I'm going to do is I'm just going to uncomment that line right there. And then after I uncomment it, I'm also going to copy it in vim yy copies a line. Then I'm going to write and quit. And now what I'm going to do is I'm going to vim slash etsy slash locale dot comf. And then I'm just going to paste that line there. En underscore us dot utf dash eight space utf dash eight. Then I'm going to write and quit that. So now that you have those two files set correctly to at least one locale, run the command locale dash gen. And you can see it's generating my locales, which is just the one English US. Now let's go ahead and set up our host name. So clear the screen. What I'm going to do is I'm going to vim slash etsy slash host name. And this just needs to be a single word, the host name of the computer. And I'm just going to call this computer arch vbox if I can type correctly. I think that's descriptive for a host name. Then I'm going to do vim slash etsy slash host. Let me go ahead and make a new line here. What I'm going to do, I've just done this enough. I know it's 127.0.0.1. So that's just your local IP for local host. I'm going to tab over and actually write the word local host. And then I'm going to go to the next line. I'm going to do colon colon one and then tab over and write local host one more time. And then I'm going to hit enter. And this time 127.0.1.1, tab over. And I'm going to do arch vbox.localdomain and tab over arch vbox. And arch vbox, remember, was the host name of the computer. Obviously, if you chose a different host name, you should probably use that host name. Then I'm going to colon wq to write and quit out of vm. By the way, you could also use nano for all of this. Nano is not installed by default either. You would have to do a pacman dash capital S nano to install nano before editing all these files. And we're really close to the end of the base arch installation. Really, now I need to set up passwords and users. Let's go ahead and set the root password with pass wd and give the root password. It needs to be a strong and complicated password. And then now that we've set the root user password, let's go ahead and create a regular user. So I'm going to go ahead and do user add space dash m space dt. dt is the name of the new user I'm adding. And then I'm going to run the pass wd command, pass wd space dt to set dt's password. It needs to be a strong and complicated password. Now we need to set the groups for the dt user because by default he's not going to be a member of any groups and he can't do much. So let's do user mod space dash lowercase a capital G space and then the groups separated by commas. So he needs to be a member of the wheel group comma audio comma video comma optical comma storage and probably some other groups. But that's fine for now for purposes of this virtual machine and then space and then the name of the user that we were modifying, adding these groups to dt. Now the most important group that we added him to was the wheel group because wheel gives you sudo privileges. But the problem is sudo is not installed. Let's do a pacman dash capital S. So now dt can actually do things as sudo, but we need to edit the sudoers file. So what I'm going to do is I'm going to do capital editor. So all caps editor equals vim space vi sudo. And then just go down this file until you find a line that talks about the wheel group, which is going to be right there. See wheel all equals all all uncomment that. And now what that will do is that will allow anybody in the wheel group, which dt is a member of the wheel group to actually use sudo. And let's go ahead and install grub. So I'm going to do a pacman space dash capital S grub to install the grub package. But just installing it doesn't actually do anything. We actually have to run through an installation after the pacman installation. You have to use grub dash install. And then the name of the device you're installing grub to, which in my case was slash dev slash sda. And it needs to be the device. It doesn't need to be a particular partition like slash dev slash sda one. It needs to be just the device slash dev slash sda. And now that we've installed that, we need to go ahead and generate a grub config file. And you do that with grub, if I can spell it, dash mk config. So grub make config essentially. And then dash o, I'm assuming for output. And the location of this config file needs to be in slash boot slash grub slash grub.cfg. All right. And it generated our config file. So now we could actually exit out of the gerute and reboot and we would be in a fresh Arch Linux installation. But there's one other thing I definitely want to take care of first. I want to take care of networking. So let's go ahead and do pacman dash capital S. And I'm going to install network manager just to go ahead and take care of internet, the ethernet. So let's go ahead and install network manager. And then what we need to do is enable the network manager service with system D. So run system CTL enable and then capital network, capital manager, all one word, no space between it. We created that sim link. So let me exit out of the gerute and then I'm exited out of the gerute, but we're still mounted. So let me go ahead and you mount for unmount slash MNT. And now let me go ahead and just type the word reboot and see if we reboot into a newly installed Arch Linux. Actually before rebooting, I went ahead and killed the VM because before rebooting, I need to go back into the settings of the virtual machine, go into storage, highlight that ISO that we attached earlier and then go down here and remove ISO or remove disk. So get rid of that because now we're just gonna boot directly off of the Arch Linux DTOS.VDI, the virtual hard disk that we created and then installed everything to click okay. And now let's go ahead and launch DTOS and this should boot us. Yes, into our newly installed Arch Linux and it looks like it installed just fine because we got the grub menu and looks like everything is booting up and we get a command prompt. So now we're ready to go ahead and install DTOS. For those of you that wanna try out DTOS, what you can do is you can go to my GitLab, my GitLab page is gitlab.com slash DWT1 and I have several repositories. I have like 20, 25 different repositories. Look for DTOS. Click on that, you'll get some information about DTOS and you will get instructions on how to install it. It's just three simple commands. You have to enter at the command line to install it. So let me switch back over to the virtual machine here and once again, let me get back into skilled mode so you guys can see exactly what I'm doing here. So I'm gonna go to view, skilled mode, switch. All right, now Arch Vbox login. Remember the host name of the computer was Arch Vbox. So now let's go ahead and login as our DT user that we created. Let's see if his username and password works. Yes, but I did get an error bash en underscore us.utf-8 command not found. So obviously I set the locale wrong. I mentioned if you set the locale wrong, you're gonna get errors and I talked about graphical programs but in this case I'm getting command line errors as soon as I log in. I know exactly what I did in this case though. So what I'm gonna do is I'm gonna sudo vim because DT has sudo privileges, a slash etsy slash it's gonna be locale.conf is the problem because en underscore us.utf-8 now all of that is right. Except in front of that what I needed to do was I needed to actually write lang equals an escape. And I'll try to annotate earlier in the video where I made that mistake because I know people don't watch the whole video and many of you guys are probably gonna follow me exactly step for step. And remember I didn't have the arch wiki in front of me when I was doing this. So I was just kind of flying by the seat of my pants and it gets me in trouble sometimes. Now to run the installation of DTOS we need get installed which is not installed by default. So I'm gonna sudo pacman dash capital S get. This should just take a second. All right and then we want to get clone and then the location of the DTOS repository which is HTTPS colon slash slash getlab.com slash DWT1 slash DTOS. All right it clone that repository. If I did it LS you see DTOS. Let's CD into DTOS. If I did it LS you will find the DTOS script to run it with period slash DTOS. All right and you get this little welcome screen. You can read it but just click continue or okay four times begin installation. It's gonna add the PGP keys. It's gonna add the DTOS core repository to this installation of Arch Linux because the DTOS core repository contains a lot of DTOS packages that I build myself. And you can see it's going to have to install about 665 packages. I will pause the video while this installs. All right and it looks like it finished installing everything from pacman. And now it's gonna run through the installation of Doomy Max. So Doomy Max actually takes the longest to install out of everything here. So those 665 packages they only took about five minutes to install from pacman. The Doomy Max installation itself is gonna take five to 10 minutes. So I'm just gonna let this run a few more minutes. By the way Doomy Max will pause a couple of times and ask you a yes or no question. And we'll ask you do you wanna create an ENV file. And we'll also ask you do you wanna install all the icons fonts. Answer yes to both questions. All right and the Doomy Max installation has completed and now it looks like the DTOS script is asking for a sudo password one more time. It's gonna recompile XmodeNed for us. It's also gonna change our default shell. Now what do we want the user default shell to be? The system default shell is bash. But your user default shell can be anything. Fish, bash, ZSH. I'm gonna choose fish. So I'll choose number one. And then do you want to reboot your DTOS? Yes. Yes is the default answer. You just hit enter on the keyboard. And we should now reboot Arch Linux. And instead of getting a command prompt, I'm hoping I get a login manager. Let's see. That is the login manager. And that is the multicolor SDDM theme. So that is one of my packages. And then let's go ahead and log in as the DT user. All right. And this of course is my XmodeNed desktop. And let me go ahead and do super enter to enter a terminal here. Let's do Xrander because this is obviously a very bad screen resolution. I'm not actually sure what kind of screen resolution this is. But that is much better there. Yeah. All right. And now let me hit enter. Now the very first time you entered a terminal, it's going to complain about fish errors. That's the very first time you launched the fish shell. From there on out though, everything looks right. It's using my shell color scripts here inside the fish shell. And now because we changed the screen resolution, the wallpaper and the cocky are all weird because of that extremely small screen resolution that was there by default is like an 800 by 600 screen resolution. Now we can actually fix the wallpaper and the cocky. So what I'll do is I'm going to go ahead and do a. Let's go ahead and fix the cocky. So I'm going to enter a terminal. I'll zoom in. And then what I'll do is I'm going to kill all cocky. Let's go ahead and relaunch the cocky. And the cocky config should be in the home directory slash dot config slash cocky slash xmonad slash doom dash one dash o one dot cocky dot rc. And that redraws the cocky there. Let me close that. And now let's redraw the wallpaper to get that set right. And how you would do this is I have several command prompts. If you look at the cocky, super P followed by B runs a D menu script called D menu dash set BG set background so super P B. And you get what would you like to do set random or exit. So set means pick a wallpaper random. We'll give you a random wallpaper exit exit out of the script. Let's set. And it should launch while it doesn't launch anything. So there is obviously a problem here. So let me get into PC man FM. And let's go ahead and show hidden files. Let's go into dot config. There's DM scripts, which is the D menu scripts. And there should be a config file. There is. Let's open that. I'll just open that with them because I don't think eMax is going to work just yet. And let's look for a setting here that is not right. Should be a setting about the wallpapers, the background directory right here. Set BG user share backgrounds DTOS. Yeah, and use IMV equals one. And that is for people that are using Wayland and it will use a program called IMV to set your wallpaper for like 90% of the people that use this thing. You're going to want to use, you're going to use Xorg anyway, if you're using Xmonad. So it doesn't make sense to... I hate that I have to change that specifically for DTOS. But the person that wrote this script here, he really loves Wayland. So let's change that to use IMV equals zero. And I will change that right after recording this and editing this video to where hopefully you guys don't get this error, I'll repackage that up so that when you guys install DTOS, hopefully that is changed. So now let me do super PB and then set wallpaper. And now it launches SXIV which is the image viewer and it shows all the wallpapers from user share DTOS backgrounds. And then I just go and navigate to a wallpaper I want such as the one that was set by default. I hit M on the keyboard to mark it, just type M. Now close SXIV, super shift C to close a window here inside Xmonad and you see everything looks just right. Now one thing doesn't look just right. The icons are not showing up on some of the widgets. You see the word updating dot, dot, dot. That actually should be a font awesome icon that is not displaying. I mentioned that XMobar will complain if the locale is not right. So let's go ahead and sudo vim slash etsy locale.com just to verify that we actually did set that. Yeah, I don't know, I've done this enough times I should know. I didn't need that space UTF-8 at the end. It just needs to be lang equals and then your locale in my case en underscore us dot UTF-8. Let me write and quit that. Oh my goodness. I cannot believe sudo locale dash gen. Let me restart Xmo. Well, I probably, I may actually just have to reboot for all of the localization to take effect. I don't know, but let's launch XMobar and it's dot config slash XMobar doom dash one dash XMobar RC and let's see, yeah, I'm probably, I'm gonna have to reboot the machine. So I could reboot just entering a terminal and typing the word reboot. But for those of you that would rather do this in a graphical way, I do have a command. I think it's super PQ and this is a DM script, DM logout is the name of it and you see reboot. I just hit enter, do I want to reboot? You get a yes or no confirmation just so you don't accidentally shut down your computer without you really wanting to. All right, let me log back in and the localization was fixed. You guys can see now we actually get icons instead of the updating dot dot dot. So that is that error and let me go ahead and rerun all of the commands from before but just kill all khaki and then we'll redraw the khaki and then super Pb to set the wallpaper and super Pb to, and super Pb, well, super Pb not super Pb. How about DM dash set BG? Why is that not running? No locale support and so now what the locale was fixed for X-Mobar but it's not fixed for D-Menu. D-Menu underscore run, no locale support. All right, I think I've got the problem solved and I go back into the slash etsy slash locale.conf and what I needed to do other than setting the lang I also needed to set the LC type. So LC underscore C type equals C. For some reason I guess D-Menu really needed that and if I set that correctly, now D-Menu works but oddly enough X-Mobar is not working. Let me go back in here. Maybe if I set the LC C type to en underscore us.utf dash eight we are going to get this guys. We are not going to let this defeat us. Oh, I didn't have to enter my strong and complicated password there. Let's reboot and see if that actually changed anything. Let's go ahead and log in. X-Mobar is working correctly and D-Menu is working correctly. So that actually was the problem. Let me go ahead. I'm going to kill all conky and then I'm going to relaunch conky in the correct spot. Now I'll close the terminal and now if I do super P, B, yeah, we get DM dash set BG and I can go ahead and choose set to set a background. SXIV is going to load all our wallpapers and I go pick a cool wallpaper. I type in on the keyboard to market and then close SXIV with super shift C. And there we go. All right, that is DTOS. So I'm glad I made all those locale mistakes because I know you guys have been making them. Actually that was kind of the point of me making today's videos is I've had people that are installing Arch Linux for the very first time and one of the biggest mistakes people make is not setting the locale, right? So now we know that for X-Mobar, you need laying equals and then a locale set. That's for many programs. If you don't have that set, you're going to be in trouble and apparently D-Menu really needs LC underscore C type also set to something. In my case, English underscore US for that as well. And now D-Menu, X-Mobar, everything looks great now. Looks like everything is working correctly. Of course, there's the terminals. Let me run some of the other D-Menu scripts. So if I do super P followed by E for edit configs, these are all the config files that are on the system that you could edit, such as the Alacrity config, et cetera. Let's see if I can launch DOOM Emacs. So control E followed by E. So control E followed by E. Apparently that is a conflict with virtual box. I actually did not know virtual box use control E for anything, but I can still launch DOOM Emacs by just typing Emacs in the terminal. And let's see if it actually launches correctly. It's got to install some emoji icons. It's asking a yes or no question. I just typed Y and yeah, there is DOOM Emacs. So apparently for virtual box users, control E is a conflict. I was not aware of that. Control E launches this file picker for some reason. Dang, I hate to change that just for you guys trying this out in virtual box. I mean, I guess what I could do, I may do this right after the video, I could change that key binding to super E followed by something because super E, I don't think I use that key binding anywhere else and super E won't conflict with any other programs. The reason I liked control E rather than super E on those Emacs key bindings is because you actually have two control E's. You've got the one on the right hand side of the keyboard and that makes sense. So right hand control followed by E, which is on the left side of the computer or on the keyboard, that's a little more comfortable than super E, but super E isn't bad. I'll probably change that key binding as soon as I'm done with this video today. So I'm glad I ran through this because I discovered a lot of bugs that do need to be fixed of such as that key binding. And also I do wanna be able to document how to solve that locale problem because I know a lot of you guys are running into that locale problem with both D menu and X mode bar. Now, before I go, I wanna thank a few special people. I wanna thank the producers of the show, Devon Gabe James, Matt Mitchell, Paul Scott, Wes Akami, Alan Chuck, Commander, Kurt Deioka, David Dillon, I think he's Commander Angry. I shouldn't pronounce his full name. Anyway, Gregory Hico, Lee Maxim, Michael, Mike, Nitrix, Erion, Alexander, Peace, Arch, and Vador, Polytech, Raver, Red Prophet, Steven, and Willie. These guys are my high steered patrons over on Patreon without these guys. This installation of Arch Linux plus DTOS on top of it, it wouldn't have been possible. The show's brought to you by each and every one of these. Fine, ladies and gentlemen as well, all these names that I'm showing you on the screen right now. These are all my supporters over on Patreon because I don't have any community sponsors. I'm just sponsored by you guys, the community. If you like my work and wanna support me, please subscribe to Distro Tube over on Patreon. All right, guys, peace. I guess I should have followed the Arch Wiki.