 Recently, I made a video introducing you guys to GNU Geeks. What is GNU Geeks? GNU Geeks is a 100% free as in freedom GNU slash Linux distribution. And it is a really interesting distro because it has a really interesting package manager. It has a unique directory structure. And of course, it's so different than any other GNU slash Linux distribution out there. It has some pros and it does have some cons. So I wanted to share with you my thoughts on using GNU Geeks for three days. So since I made that video the other day, I've had that virtual machine that I did the installation on camera. I've had that virtual machine going for about three days and I spent many hours playing with Geeks in that VM. I also installed Geeks on a test laptop. It's running on this Lenovo ThinkPad behind me. You see the C Matrix server running behind me. That is running GNU Geeks. The Wi-Fi is not working, by the way, on the Lenovo ThinkPad because of the hardware. It's incompatible with the Libre distribution. So I have one of the problematic chips in that Lenovo ThinkPad is one of the Broadcom chips. So I need to replace that particular Wi-Fi chip if I'm going to run GNU Geeks on that laptop, you know, for the long term. Let me kill C Matrix here because the fans are spinning like crazy on that laptop. C Matrix normally doesn't affect that laptop that way on standard distributions. I don't know, but the fan is spinning and I can feel the heat coming off that laptop. So let's talk about coming to GNU Geeks as a brand new to Geeks user. You don't know anything about it and that's kind of how I came to the project. You know, I didn't really know what Geeks was. I mean, I read a little bit about it, but until you really start playing with Geeks, you don't, you don't really know anything. And here is that VM that I've been playing with for a few days. And one of the interesting things about Geeks is how do you install other desktop environments or window managers in this thing and actually get them to appear in the login manager here? This is GDM, of course, and you have the cogwheel and you see I've added a bunch of different sessions here. Now what I did the other day is I installed XFCE and when I installed XFCE during the installation process, you know, I didn't know that I was eventually going to come back and install other window managers or desktop environments. I just went with XFCE and there was no cogwheel, of course, because there's only one session. But then I installed all these other window managers I installed. Well, what did I install? Let me go to the cogwheel. Awesome, Herb's Luftwm, i3, Openbox, and Xmone. And when I did this, I didn't know how to get these to appear here in this little cogwheel because if they have an X session file, most Linux distributions, what you do is in your user slash share slash X session directory, you should have an X session file for each window manager and desktop environment that you want to be able to log into. That directory does not exist in GNU Geeks. It does create these X session files, but they didn't really seem to affect the login manager here and I wasn't really sure what to do. Well, the great thing about GNU Geeks is they do have fantastic documentation. You can go read the GNU Geeks reference manual over at GNU.org and it is an extremely long one page manual, but it has a table of contents at the top and it is very well written. I'm really impressed with the documentation from the GNU Geeks team. So let me log in to this VM here. So I'm going to go ahead and log in to Xmone ad. And let me get a proper screen resolution here. So let me run an Xrander dash S 1920 by 1080. Of course, after running that, I need to refresh the wallpaper because it's not going to look right until I run nitrogen dash, dash restore. And this is Xmone ad running in Geeks in this virtual machine. And it looks and functions almost exactly like Xmone ad runs on my host machine that runs Arco Linux. The only difference is in XMO bar up here. It's not rendering some of the Unicode characters and the little icons that should be next to these widgets. I haven't installed any fonts other than some basic fonts. I think I installed the deja vu font family and the Ubuntu font family. But other than that, there's really no fonts installed on the system. I didn't play with that stuff. I was so interested in getting the stuff installed that I knew that I absolutely had to have if I ever wanted to hop to Geeks like on my main production machine. So I wanted to make sure that all the window managers that I used work, I wanted to make sure the terminal emulators that I use work. So let me open up Alacrity here in Xmone ad here in Geeks. And it took a second for that to launch. But again, this is a VM. It actually launches pretty quick on physical hardware. I installed a lot of the same window managers and programs in this VM as I did on the Lenovo ThinkPad. One thing to note is because this is really a sourced based distribution, there are some binary packages, but a lot of what you install has to be built from source. The install times for certain things can be a long time. And it's one of those things that when you run a sourced based distribution, you know, when you see people that run Gentoo, for example, why do so many of them run minimal window manager only, you know, they're not running big bloated full desktop environments like GNOME or KDE Plasma? Why is that? It's because those gigantic desktop environments, they take a long time to build. They take a long time for compiling, you know, when you're installing and updating. And you got to start thinking that way. And one of the things that really took a long time to compile the other day was Alacrity. I wanted the Alacrity terminal. Alacrity is written in Rust. It had to pull down all the Rust packages and then it had to compile Alacrity in the VM here because I gave the VM one core, two threads of my threadripper on my main production machine. You know, it didn't take terribly long on this Lenovo ThinkPad behind me, this test machine. It has a AMD A8 processor and building Alacrity seriously took nearly an hour. So now these are the kinds of things you have to start considering is, is it worth it? Is it worth it for me? I love Alacrity, but is are the updates going to take that long as well? Yeah. So in the back of my mind, I'm already thinking, you know what, maybe I'll just use X term. So getting back to the problem with adding these window managers. So you run a geeks install and then, you know, the name of the window manager and pretty much most of the window managers I want to run are packaged for geeks. Matter of fact, all of them, but one that, you know, and it's one of my favorites, Qtile is actually not packaged for geeks. So that is unfortunate, but, you know, you could do a geeks install open box or for those of you that want to do Xmonad, and I know a lot of people probably would want to run something like Xmonad with geeks. So you want to do install Xmonad, then you're going to want, of course, a bar XMO bar is also packaged, then you're going to want GHC, which is the high school compiler. You got to be able to compile all these Haskell programs and you might want to go ahead and install GHC-Xmonad-contrib. That is the Xmonad-contrib package that gives you all the extra libraries and modules that you need to really, you know, pimp out your Xmonad. So you get all that installed, you reboot, Xmonad still doesn't appear in the session list in GDM and your login manager. So what you need to do is there is a file, a configuration file on your system. You actually have to go and edit that. Now when you first run through the installation of geeks, it tells you that there is this configuration file on your system at slash etsy slash config dot SCM. Edit that file as root. So I'm going to run a sudo vim slash etsy slash config dot scheme. Basically it's written in scheme. By the way, by default, there is no editor on the system with geeks. You know, it's a very minimal installation. Every program that you want installed on the system, you have to specifically pick that program to install. So vim was not here by default. Emax is not here by default. Nano won't be on the system. So if you want an editor, you're going to have to install an editor. But whatever editor you install on the system, open slash etsy slash config dot SCM as root. And what I needed to do is in this, when I first installed it, there really wasn't anything here. One desktop environment at the time, XFCE was here. What I did is I went ahead and I added some other things to the packages list here. You see packages append list, and then I made this comment in list and in scheme to make a comment, semi colons is what you need to do. So I did a couple of semi colons. And then I left this comment here, window managers. And these are the window managers I installed, open box, awesome herbs, Lyft WM, i3, window manager and XmodeNed. And I also added to the packages list the status bars needed for these window managers to work i3 status, D menu, Polybar, Xmobar. All of these were also packaged for Geek. So you can find these in the repositories. And then some terminal emulators that I installed, LACRETY, ST and XTERM. And then some Haskell stuff. We need the compiler. We need the Xmonec and TRIB libraries. And then the last two lines of the packages list were already here. The NSS certs, that's for HTTPS access, and then the base packages. And then at the top of this config, I added this line, use package modules. And then I added the modules for Haskell, open box, suckless, terminals, WM, I'm assuming for window manager and Xorg. Now again, I don't know list, I don't know scheme. I basically, I just went to the GNU Geeks documentation and I just copied some of what I saw in some of the example configs in the GNU Geeks manual. So once you edit this config, of course, you need to write and quit. You need to save it. And then you need to run the following command as root, so that you have to be sudo for this. You need to do a sudo geeks system reconfigure. And then of course slash etsy slash config dot scm. Run that and it reconfigures your system using that newly edited config because you added those window managers when you reboot the machine, you should see your newly installed window managers or desktop environments appear in the sessions list inside GDM. By the way, when you run this reconfigure command, it does take a while. You know, it reconfigures everything, it's going to update some packages and install some packages, especially if you added packages that you didn't already have installed before to your config dot scm. So it's not something that just, you know, you hit a key combination or enter something in the terminal and it just takes a few seconds. Your machine is going to be tied up for a little while every time you have to run this reconfigure. So that's, you know, some of what I needed to learn initially with geeks is how to get the window managers installed, how to get them appear in the session list. It's really basic stuff. Some of the other things that you need to consider with GNU geeks is, you know, building some of these packages. Some of them just will not build correctly on your system. I'm not talking about the stuff in the geeks repositories. I'm talking about some of the stuff you try to build yourself. Don't expect to go get clone something and then run a pseudo make install. And it actually works for you. That stuff, it doesn't happen that way anymore because geeks doesn't have these traditional kind of GNU slash Linux directory structure, you know, bin and user bin and it doesn't use all of that. So these packages that you go get from third parties and try to build on geeks, they won't build correctly because it's expecting, you know, geeks to have this other kind of directory structure, you know, the traditional GNU slash Linux directory structure and geeks is just not built that way. So one of the problems I've run into here, and maybe you guys that have run geeks for a little while know a way around this, I can't build all the suckless utilities. I can't edit them. You do have packages for DWM and ST and D-Menu packaged for geeks. But how do I edit the configs? I can't find the config.def.h anywhere. I can't find the source code that I could edit. And then how do I do a pseudo make install? You know, I just told you the problem of building stuff from source, you know, third party packages, uh, I'm not sure what to do. Like I have my own personal builds of DWM, ST, D-Menu tab to serve over on my GitLab. So typically when I distro hop, I just pull all that stuff down, run a pseudo make install and I'm done. I have all the programs I've been using because I use D-Menu on every system. I don't mind using DWM as my, uh, window manager. ST is a fantastic terminal emulator, but I can't get any of that stuff to work for me. So if you guys know how to configure and make install the suckless utilities, I would love to figure out how to get that to work here on geeks. I also mentioned Qtile is not packaged for geeks. And because it's Qtile is a Python program, I thought maybe I could do a PIP install Qtile. No, I can't do it. The install through PIP also fails. Every other window manager that I could possibly want to use is packaged. I know awesome is their I3, BSPWM, Herbsluff, SpectreWM, Xmonad, uh, for those of you that are full time Emacs guys, EXWM, you know, running Emacs as your window manager works just fine and geeks also stump WM works fine. Rat poison works fine. For those of you that want to run one of the big traditional desktop environments in the installer, your options are GNOME, MATE and XFCE. So those three desktop environments run just fine. The geeks documentation says that plasma is a no go. I'm not sure what the problem with getting plasma to work on geeks is. But those of you that are plasma users, it's something that you may have to take into account. Some other things, of course, you're going to have to take into account. I mentioned the Wi-Fi chip on my Lenovo ThinkPad. I don't have Wi-Fi because the driver for it is not a free driver, right? This is proprietary software. And that this is something else you have to consider. Can you be 100% free as in freedom and get all your work done? Obviously, if your hardware is not compatible, you either have to change your hardware or not run geeks. Well, there is another option. There is a non-free repository for geeks. So over on GitLab, we have non-geeks. What is this? This is the geeks channel for packages that can't be included upstream. So this is basically the non-free programs, specifically your non-free firmware and drivers. It tells you exactly what to add to add this non-free channel to your config.scm. And then, you know, once you add this stuff, you need to, of course, run the geeks system reconfigure and hopefully you have the once you have the non-free firmware and drivers, hopefully your Wi-Fi problems or whatever driver problems you were having on your machine go away. Now, think long and hard about adding a non-free repository to something like geeks, because I would say, why are you on a 100% Libre distribution if you need proprietary software? You're making your life so much harder by running geeks. If you know that you're going to have to go out of your way and get all this third party non-free stuff anyway. So on my main production machine, if I ever wanted to hop to geeks on my main production machine, you know, the only really non-free software that I have installed on this machine, I have Zoom installed. I don't necessarily have to use Zoom for video conferencing. So that's not really an issue. I have Steam installed. Now, I'm not a gamer, but I have Steam installed because sometimes I do these gaming live streams with the community once or every month or two. I'll game with you guys, viewers of the channel. We'll get together in a Steam game, maybe, and we'll do voice chat in-game through Discord, which is also not free software. And I'm not sure if there's any way to get Steam installed in geeks. If I didn't have Steam, it wouldn't be the end of the world. Discord, you know, sometimes, especially when you need support for certain pieces of software, a lot of times their best support channel, the biggest support channel is a Discord channel, even with free software. A lot of free software projects have Discord channels and Discord is one I probably would need to figure out a way to get installed on geeks. And I think there's a flatback, but I'm not sure how flatbacks work on geeks. Looking at some of the issues people have with geeks. And I've read a lot about geeks, you know, people running geeks. Snaps are a no-go. So snap packs are not going to work because SystemD is not in geeks. So without SystemD, snaps don't work, so don't even bother with snap packs. They don't exist anymore. App images also seem to be a problem. I see people opening issues about app images. And then flatbacks. There is a flatback package in the geeks repositories. I can run geeks and install flatback, but I didn't see people posting on the geeks subreddit and IRC chats, things that, hey, this flatback didn't work again, probably because maybe the directory structure of geeks, you know, some of those flatbacks are expecting stuff to be on geeks, installed on geeks that's not actually there. So, you know, a lot of that third-party stuff, again, it's kind of like building stuff from source, you know, your third-party package manager snaps and flatbacks and app images. And then all the programming language specific ones like cabal for Haskell, pip for Python, cargo for Rust, probably won't work. So I don't want to be a Debbie Downer, you know, saying that, you know, a lot of this stuff that I tried on geeks, it hasn't worked or maybe won't ever work. I think it's a fantastic distribution. I have spent hours, several hours each of the last three days playing with geeks, mainly just watching stuff build. All right, it takes so long to build some of this stuff. But I got to say geeks has been fun. I have had a blast the last three days playing with this distribution. And, you know, I'm going to keep playing with it, you know, for a few more weeks, a week or two, maybe, maybe a month, I don't know. But if I go a month playing around with it on that laptop and this VM and I think I can get my work done, I may go ahead and distro hop on my main production machine. Now, before I go, I need to thank a few special people. I need to thank the GNU slash producers of the show. I need to thank Michael Gabe, Heplo, Nate, Corbinian, Mitchell, entropy, UK, John, Arch 55, 30, Chris, Chuck, DJ, Donnie, Dylan, George, Lewis, Omri, Paul, Robert, Sean, Tobias and Willie. These guys, they are my highest tiered patrons over on Patreon. Without these guys, this episode about GNU Geeks wouldn't have been possible. I also need to thank each and every one of these GNU slash ladies and gentlemen. I need to thank each and every one of these folks, because they are my supporters over on Patreon. Because without those guys, this channel wouldn't be possible because this channel is supported by you guys, the community. You'd like to support my work, you'll find DT over on Patreon. All right, guys, peace.