Sort:  
There are 2 pages
Pages

Let's go through every single package installed with a Linux install image. I'm going through the software included with Slackware, but these are all open source applications and libraries, so whether you're running Slackware like me or Fedora, Debian, BSD, or even Mac or Windows, you can probably download, install, and try these on your computer. So chances are you'll be able to learn something from this podcast. Let's get started. First package in the list, x11-skel. This is a Slackware-specific package. It's got a bunch of stuff by Patrick Volkerding in it. A couple of generated scripts from xf86config, such as a sample zorg.conf file, which is kind of interesting, I guess, to look at. Like if you've never had to do a zorg.conf file, this gives you an idea of what one looked like. It isn't pretty, like really, honestly, not pretty at all. In fact, this is one of those configuration files that for me kind of represents what not to do, which is frankly a little bit harsh, but that's (1/54)

just how I feel about it. I feel like this is not a configuration file I would want to hand someone and say, this is what a configuration file looks like. Granted, I think that configuration files are a little bit tough to rationalize and design because on the one hand, the config file needs to be easy for a computer to parse. That's honestly its primary function. But especially with zorg.conf, where you did have users having to go in very frequently to adjust it themselves, then you want the configuration file to be easily parsed by humans and easily replicated. And I don't know that this was it. This was pretty darn confusing. There's a lot of terminology that doesn't make sense. There's a lot of references to technology that maybe you're not familiar with yet. There are values here that you're maybe not really sure what they do or how you should obtain the optimal value. It's a big job. And this was a big part of setting up Linux for way too long, really. This lasted for a long (2/54)

time. Glad to deal with zorg.conf files a lot. Now a lot of early distributions, to be fair, had their own little configuration scripts as an attempt to help the user not have to do all of this themselves with varying success. I've tried lots of old distributions, and some of them got it right, some of them didn't get it right. And when I say that, I mean that some of them got it right for the particular situation in hardware that I was using at the time, which doesn't necessarily mean it wasn't exactly what someone else needed somewhere else on some other hardware. So there's a lot of variables I understand and I respect that it's just an insurmountable task. And the fact that the Zorg folks got all of this stuff working, and in the end, where we are today with X11 what, R7 or something, it just works for you. It just sets itself up. Astonishing. Amazing. That's so cool. That said, that's the slash etc slash X11 slash zorg.conf dash V-E-S-A. You can look at it just for reference. It's (3/54)

not really something that you're going to use in real life, I don't think. And the other stuff in this package are shell scripts by Patrick Volkerding. So there's one in user, there's user bin zorg setup and user bin XWM config. Zorg setup is a little shell script that attempts to help you set up X correctly. And I figured I may as well just step through it in a virtual machine where if everything fails, it won't matter. So I'm booting my slackware machine, my virtual machine, to run level 3. So there's no GUI interface yet. I'm going to log in as bogus, bogus123 is the password, and then do zorg setup, I guess. And it says, well, only root can configure X. Okay. So I'll do SU bogus123 and then zorg setup again. Oops. There we go. All right. If you like, X can attempt to probe for your video hardware and mouse and write an initial configuration file to slash etc slash X one one slash zorg dot conf. Would you like to do this? Absolutely I would. Okay. It did that pretty quickly on this (4/54)

virtual machine hardware. Oh, it's not done. Now you can select a default color depth. See, this is the kind of thing, this is what I'm talking about. Like through no fault of anyone's, how are you supposed to know this? For a new user or for an experienced user, this just to me seems, I mean, there was just so much trial and error in early X 11. And by early, I mean, you know, up until like 10 years ago. So here's, um, I mean, I've got 24, 24 bit true color, 16 bit pseudo color, eight bit two 56 color, four bit 16 color. Okay. So I, I figure probably modern hardware, 24 bit true color is probably safe. So I'm going to hit return and there's a bunch of output. Wow. That was a lot of output. That doesn't look like that's a success to me, but maybe it is, it looks like it just dumped all of the configuration maybe out to my terminal or something. Uh, let me do a cat on slash Etsy slash X 11 slash Zorg dot conf. And it says there is no, no, there's no such file as, as, as org dot conf in (5/54)

slash Etsy slash X 11. So I'm going to, I'm going to assume that didn't work. Let me do an LS of the current directory. Maybe it just saved literally the file to my current directory. No. Okay. I'm going to try that again. Zorg set up. Yes. I want you to do this automatically. Let's knock it down to 16 bit pseudo color. I don't, I don't really feel like that would end it failed again. Interesting. This is not expected. This is, um, yeah, it did not write the file out to Zorg dot conf. All right. Let's do Zorg. Uh, let's do man Zorg set up. There is no man page for Zorg set up. So that was a bust that did not work. Let's instead, because Zorg is actually already, um, it's already configured on this, on this virtual machine. So I don't actually have to do this and maybe that's why it's failing quite possibly. Um, so instead I'll do XWM config, and this is another sort of a menu driven process. And it says that, uh, I can select a default window manager for X and I'm doing this again as (6/54)

root, which I think I have to, uh, because it sets this in slash Etsy slash X one one slash X in it. So the ones listed are X in it, RC dot KDE that's for the KDE plasma desktop X in it RC dot XF CE the cholesterol free desktop environment, flux box, black box, W maker for window maker F WV, no F VWM, um, which we don't really know what that stands for. F something virtual window manager, version two dot X, X TWM, which is the tab window manager or the, um, timeless window manager, depending on who you ask and then motif. So I'm just going to set it to XFCE and that's it. It just returns me to the prompt. Now, if I were, if I, if I wanted to, I could start X at this point and it would start XFCE. I don't want to do that because I don't want to do this as root, but you're actually kind of meant to do is edit your, um, slash Etsy, init tab that's I N I T T A B init tab, uh, which is like your initialization table. And there are, there's a list in here right at the top default run level (7/54)

do not set to zero or six. Uh, currently the ID colon three, colon init default colon is set. And if I look up just up to the top here, it gives me a list of all the run levels as defined by Slackware. Uh, three is the multi-user mode. That's the default Slackware run level, but four is the X one one slash Wayland with SDDM slash, um, KDM slash GDM slash XDM session managers. So I could, uh, I could change ID colon three to I E I D colon four, save that, save that and then reboot this machine. And then it'll, it's going to boot straight to a session manager as appropriate to whatever desktop environment I've chosen, which I don't actually know what that's going to be for XFCE. I think it just defaults to SDDM. Okay. It's rebooted. And yes, that is exactly what it has done. It has defaulted to SDDM, which is a pretty reasonable, uh, default I think. And I'm accidentally trying to log in with, so a peculiarity that I don't know. I have not really looked into how to fix this, but on (8/54)

Slackware, if you have your keyboard set to Dvorak, it'll respect that everywhere except SDDM. I just cannot get SDDM to accept that I have a Dvorak keyboard and it keeps insisting that I type everything in with a QWERTY keyboard for, um, for, for logging in, which I have to actually look at the keyboard these days. Um, if it's not Dvorak, I have to look at it. So there, there I've, I've logged in correctly. Now I am going to quickly set this back to run level three because I do not like my, um, virtual machine to boot straight to a graphical environment because that just isn't always what I want. Okay. So that's that. I'll shut the virtual machine down. So that's XWM config. That works as expected. That's a really handy little helper script. I mean, it's silly because honestly it's not that hard to set your own dot X init RC file. Really. It's, it's pretty easy. And yet that XWM config thing is just so it's just a nice little convenience. It really is. It's nice. Zorg setup. I don't (9/54)

know why that failed. Um, I feel like I've probably used that before in Slackware and it has worked. I'm assuming that it's got something to do with either modern X11 not requiring that level of setup or, uh, the, the, the virtual hardware. One of those two, I'm not sure which, and it doesn't matter, but that, that's a, that's a nice little tidy package. Just a couple of helper scripts by Patrick Volkerding. As I've said before, I think Volkerding's shell scripts are highly, highly, they're, they're just functional. They're well commented. They are nice and neat. I've learned so much from reading Volkerding's bash scripts, honestly, that I just, I highly recommend them. If you're getting into shell scripting and you want some good examples, do a find on slash etc and then grep the results for Volkerdie V O L K. Well, actually probably just V O L K would, would get you there. And you'll, you'll see a grep dash I Volker. And, and you'll see a bunch of shell scripts by Volkerding and (10/54)

they're just, they're, they're really, really good. So I highly recommend it's, it's a good afternoon read. Next package is X one one perf. This is a performance test of your X 11 server. You can, it's, it's not the easiest command to use in a way you can type in X one one perf. And I believe if you do nothing, yeah, it gives you a whole big long list of options and it is a long list. I mean, it's, it's, I don't even know how many lines it is. And bizarrely when I do like X 11 perf and pipe that to less, it just skips over. It doesn't, it doesn't go into less. It like, it skips right past less. So it's like one of those weird things, you know, where I don't know, it somehow escapes the pager. So and you can do head doesn't, doesn't matter. So it's really hard to get sort of capture all of these options in a digestible way other than just scrolling through your terminal manually, which I don't know, kind of annoying. So that's, that's a problem. Is there a man page for this? I believe (11/54)

so. Yeah, there is. And the man page says that the program runs one or more performance tests and reports how fast an X server can execute the tests. So if you do X 11, yeah, X 11 perf, and then just choose something like here's get dash get image 100. Then it pops a window onto your screen that will surely get in your way and kind of annoy you. Upper left hand corner. It's got a nice little label at the bottom to tell you what test is being run. And depending on what test you've you've chosen, it might be a bunch of blinky lights, or it might be a bunch of lines drawing back and forth, or it might be just a grid rendered on your screen like it is right now for me. And then in your terminal, you'll see a report on how quickly it was able to do a repetition of the test. This was actually a pretty short test. I've tried some of them that go on for seemingly hours. And certainly if you find, well, not hours, sorry, several minutes. Many of you try all of the tests, like if you just (12/54)

trigger all to do it, it'll just go on. Yeah, it will be probably an hour or several hours. I didn't, I had to end it eventually because I just doubted that it would ever end. But in this case, I've got 24, no 240,000 reps at .0219 milliseconds, 45,700 per second get image 100 by 100 square. And it did that two, four, six times. And I'm assuming higher numbers are probably better. I've definitely seen higher numbers on other tests. It really just kind of depends. None of this really means anything to me. So I don't know, you could tell me, oh, you got a score of 10 and I'd be very happy until I found out that the correct score was 1000, in which case I would be less happy unless you then tell me that 10 is better than 1000 because lower numbers are better. Who knows? I don't know what these mean. All I know is that it draws shapes on your screen and then reports back to you on how quickly it was able to do that. So let's compare the numbers to something. I've got my laptop here. It's (13/54)

running Fedora 40, but I'm going to SSH in from my laptop using SSH forwarding. So I'm going to do SSH dash capital Y that's trusted X 11 forwarding to my workstation at my desk. That's the one that I'm recording on right now. And run X 11 perf dash get image 100. So the same test. Oh, can't find display. Okay. I must not have that set up correctly. All right. Back over on my workstation. I'm going to open up slash etc slash SSH slash SSH D underscore config. And then I'm going to locate the value, the values X 11 forwarding. Let's change that to yes. Let's uncomment that and change it to yes. Just an explicit yes. And then X 11 display offset 10. Let's uncomment that. I feel like that should be enough for this. Oh, and then I'm going to need to restart the SSH demon. So I'll do pseudo slash etc slash RC dot D slash RC dot SSH D. And I think in this case, a restart is fine. It does warn you that that doesn't stop the like every process if there was something connected, but that's okay. (14/54)

I'm just going to exit. Oop, darn it. I guess I had already exited. All right. I'm going to exit out of that session in my laptop and then open a new one. SSH dash capital Y and then to the workstation. Okay, there we go. X 11 perf dash get image 100. X 11 perf dash get image 100. There we go. Okay. Yeah, that's, that's correct. Okay. So now it has popped up a window on my screen already. It feels slower, frankly. The sync time adjustment has been 20.9 seconds on the laptop with, you know, in this forwarded session. In comparison, it was 0.0173 milliseconds for, oh, is that 20 milliseconds? Yeah. Okay. 20.9 milliseconds, but still on my workstation locally 0.0173 milliseconds for sync time. And now, oh my goodness, 1,200 reps at 4.8 milliseconds, which is 206 per second for this get image 100 by 100 square. That's on my laptop. Again, on the workstation, 240,000 reps at 0.0219 milliseconds, which is 45,700 seconds. So definitely orders of magnitude better locally, which doesn't feel (15/54)

great for X 11 forwarding. I'm not sure exactly how like realistic really it would be to do anything very intensive through X 11 forwarding. I guess that was one of the big things about, what was it, no X or something like that. Do you remember this? I think it was, yeah, no X I think was what it was called. It was some kind of forwarding system that someone had come up with where I think it was like you could, was it in X maybe? No X is not coming up. I mean, this might not even exist anymore. I mean, this might not be a thing anymore, but there was a system, probably a couple of systems to be honest, where I think that instead of forwarding X, it, I don't know, I want to say it like grabbed what X would do on the local computer and just sent that back and mimicked it on the remote and then mimics it on the local or something. So that you're not really forwarding the traffic of X itself. You are forwarding where you're grabbing onto the calls being made and you're making it to some, I (16/54)

don't know, local widget set. I could be making this up. Either way, I do know that there were systems for a while that were designed to kind of, I guess, improve upon or circumvent or, you know, both in a way X forwarding. But yeah, that performance isn't great. And I don't, I mean, my, my network is not terrible. I mean, that is a wired connection, but my, my router is pretty good. It's, it's a router that I purchased specifically because the old router was not good. And I wasn't seeing, you know, even half of the bandwidth that I should have with my fiber connection. So the router I have, I upgraded several years ago now, but I mean, it's, it's, it's quite good. I don't know the specs off the top of my head, but it shouldn't, to my mind, it shouldn't result in a 20 time increase, you know, in, in, in minor tasks when forwarding X. So that doesn't, that's not great. That's, um, makes me feel good about my workstation, I guess. I mean, those, my numbers there were higher than, uh, (17/54)

when forwarding. So I guess that's good, but yeah, that is interesting. That's, um, that's more severe than I would have expected. Okay. So that's X11 perf. It's a performance check. I guess we can talk about XAuth now, which is the next package. And I'm going to talk about XAuth because that's actually one of the things that we just used to do the X11 forwarding. You don't necessarily, you're not necessarily aware that you've used XAuth when you've used XAuth, but it is happening. It's working in the background. Okay. So XAuth is a way to prove to another computer that yes, you're, you're authorized to do a thing that you want to do remotely because X11 is designed to accept remote connections. Obviously it can do things like forward an X11 graphic. Uh, what, what would it be a client or am I getting Wayland terminology confused now? I don't know. It can, it can forward a session, uh, across a network. So obviously it's designed for remote connections, but at some point you just kind (18/54)

of need to know that this computer that's trying to connect to an, uh, a running X11 server is indeed authorized to do so. So the, um, one way that they figured out how to do this is that once you, once you've, once you have authorized yourself, once you have, um, validated your connection with your password or your SSH key or whatever you're using, uh, XAuth auto, um, randomly generates a magic cookie and places it into dot X authority. When you are making requests of that computer, it compares what it has generated for, for you. What, what the magic cookie with, uh, with what's in your dot X authority file. And if there, if there's a, if, if, if you are indeed authorized, then it permits that connection to, to happen. You can look at X authority with the cat command cat tilde slash dot X, capital X authority. And you'll get some, some data. Uh, you get your host name, you get MIT magic cookie dash one. Uh, and then probably some stuff that you can't read. So that's, that's, uh, I (19/54)

don't know, hashed or salted or salted and hashed. I don't know. That's obfuscated in some way. You can look at what's, what, what, what's actually, you know, the actual data. You can look at the cookies with the command that comes with this package X auth X auth space list kind of dumps the contents of your dot X authority out, except decrypted. So, or, or un-hashed or whatever it is. I haven't looked into it. Um, so here's my host name, MIT magic cookie one, and then some long string of numbers and letters. And here's the other host name, some long string of numbers and letters and so on. So those are your, your X auth, um, that's what your authorized or rather those are tokens and those tokens might mean something to some other computer on your network. That's, that's really all that is. I'm trying to think if X auth comes with nope, that is it. That's literally all X auth comes with. It's just X auth and the man page for the X auth application X auth. The command has, I mean, you (20/54)

can do the standard dash dash health and help and get a list of commands and you get the idea pretty quickly that it is kind of a maintenance application. Like it's, it's, um, maybe a little bit like, uh, you know, a GPG, uh, kind of tool where you can use it to, um, curate your key ring, essentially. Although it's not a key ring, it's just your dot X authority file, but same, same concept. You can do things like, um, get info about each entry, like X auth info, get a location of your X auth file, whether the file is new or locked, how many entry numbers there are and so on. You can do a X auth remove to, uh, remove a, an entry from your X auth file. Admittedly, you can also just go in and edit the X auth file. But like I say, because it's a little bit mangled, it can be difficult to do that reliably. Um, in practice, if you just ditch your X authority file, it's not that big of a deal. It's going to come back when you SSH into another machine. So it doesn't really actually matter. (21/54)

Like I'm just going to trash a tilde slash X authority, and then I need to turn on another computer because I closed my laptop. Here we go. So now SSH in from my laptop into the workstation where I have just removed my X authority. And of course that works without a problem that SSH is in just as usual. And then back on my workstation here, I'm just going to do, I guess, a file of tilde dot slash capital X authority. Yes, it exists. Yes, it is a file full of data. So it just gets auto-generated. And if I do an X auth list now, X auth list, uh, I've got one entry with a new magic cookie for, for, for this machine. So, uh, and, and it's got data, like, you know, your host name, your display offset, your magic cookie type, your magic cookie itself. So if you had a, a, a, a, an X authority file with a lot of entries and you wanted to curate a little bit, you can use X auth command to do that. But in practice, I think for most people, you won't need to, cause like I say, you can just remove (22/54)

it. It'll get read, you know, the new authentication token after you've provided your password or your pass key or, or your, um, your, your SSH key. It just gets re remade, rebuilt. It doesn't matter. Okay. Next package. No coffee. That's what, that's where we are. We're at coffee time. So go get some coffee. We'll come back and do more packages. Okay. We're back. We have coffee. I hope I have coffee anyway. It's very good coffee, as you know, I've raved about it in the previous episode, so there's not a whole lot else to say. I do have more on order from flight. It's going to be, I think B2 is what I got. I think, or did I get bomber? I get the two confused for probably obvious reasons. It'd be two bomber. Like there it's, it's basically the same thing, but they're two separate coffees. So I always forget which one it is that I like, but I mean, I like both, but I forget. I'm pretty sure it's bomber. We'll find out next week for now. We're going to keep going through these packages. (23/54)

Cause we got to get through at least 10 X backlight is the next package. I'm not going to say a whole lot about it because it doesn't work for me. But if you have a screen, I guess that supports being adjusted through X 11 or X backlight, then in theory, you're able to do something like X backlight dash set, and then some percentage, like let's say 56%. And that ought to dim your backlight by 50. Oh, you know what? No, that should, yeah, that should set it to 56. Let me try dash DEC decrease by 56. No, still not. So I'm just going to go back up to set 100 and there's also a get, so you can set or get, so I'm going to do a dash get and I get nothing in response. So I'm assuming that's telling me that nothing is, um, that, that it detects no screen, no supported screens. So I think that's why this isn't working for me. But in theory, you should be able to do that, uh, provided you have the correct, uh, setup. All right. After that is X BIF. This is a mail notifier. It's a graphical (24/54)

notification for when you get new email. It only handles mail stored in a file system accessible file. So this isn't going to tell you, it's not pinging a server somewhere over IMAP or POP or whatever to see whether you've gotten email there. This is locally. If, if something comes in locally, then it will, then it, it can, um, ping you. You'd have to set this up yourself. Of course, you know, if you're using mutt or probably Alpine, then you, or, or I guess X mail or mail X, whatever it's called, then you could set this up. If you just want to see it, you can launch it manually with X BIF, or you could tell it what color to use with dash BG and then a color name. You'll recall that those are listed with the RGB command dash FG for the foreground color. So the background versus the foreground, the foreground being the drawn, you know, the lines that draw and the background being just the blank space behind it. If you do type in just X BIF, you get a little picture of a mailbox. So (25/54)

that's the notification on my computer. It just appears in the middle of the screen. So you'd probably want to have this X BIF thing appear somewhere other than just the middle of your screen. And with programs or with, with window managers like flux box, you have a high degree of control over that. You could put it in the slit, you could put it anywhere you want on the screen. And I guess, I mean, even with KDE and with plasma desktop, you do have system settings where you can identify a window by regex or by some identifying thing. And, and, or not a screen, a window and tell it where to draw that, that sort of thing. So you do have control over it. I just, I don't think that this is going to be in practice all that useful. However, if you wanted to configure it to work, you can do in your dot X defaults, capital X defaults dot X default. You can do like X BIF asterik file colon slash home slash clattoo or whatever slash mail or wherever you keep your mail slash inbox or whatever you (26/54)

call your inbox file. Then when that file gets updated, presumably when it expands, I don't know, then X BIF will, will trigger that notification. And in X default, you can tell it, you know, you can set things like the geometry of X BIF. X BIF asterisk geometry colon 28 by 28 instead of 48 by 48 or whatever its default sizes. You can even set its location within X defaults. I mean, it's, it's, it's location on the screen, you know, from assuming zero, zero is top left. Then you have to calculate, well, how many pixels over do you want it from the top left and so on. But you can do that. All of this comes from srob.net slash mutt dot HTML. I've never tried it myself. I don't care to, not something I'm interested in, but it is there. It's an alert that you could use if you needed it. All of these applications. I mean, there's, there's a bunch of things that you're sort of stringing together, right? Mutt doesn't automatically check your email. You, you, you need to set a cron job to do (27/54)

that. If I recall correctly, maybe mutt, maybe mutt. No, I'm pretty sure. No. Yeah, I know that. Mutt does not automatically check your email. What am I talking about? Of course it doesn't. It would have to be running a daemon to do that. And it's not. So you could do a, like a cron job or some thing like that so that you're checking your, your email consistently over time. And then you'd, you'd have your mutt configure, your mutt application configured, and then you'd have X biff entered in your X defaults, looking at the file that mutt is also maintaining as your inbox and so on. So it, it, it isn't, you know, it's a, it's a different process. And it's actually kind of a picture perfect explanation of, of really kind of like what, what, what, what is involved when you decide to build your own system on Linux or your own subsystem, I guess, arguably on Linux. Because on the one hand is, and especially if you're just using modern app, you know, like modern sort of shall we call them (28/54)

mainstream applications, a lot of those things, they just, they do all of that for you. Like if you're just using contact or K mail, then there's not a whole lot of setup that you have to do. You have to enter your email account and your password or whatever your credentials, and then Katie plasma desktop, just, it just checks for you every so often. I mean, maybe there's a configuration where you can change how often it does that, but I mean, all that'll happen. The, the notification will happen for you up in your system tray or down in your system tray, wherever you keep yours. So it all just kind of happens like, like normal quote unquote, like, you know, other computers, like most other computers and, and, and mobile devices, it all just happens. And that's a great luxury. But if you're one of those people who are using Linux, because you want to design your own Rube Goldberg machines where, you know, one thing triggers another and that triggers another thing, or you just happen to (29/54)

enjoy the lightweight nature of some of these simple applications. Then you just have to kind of accept or understand both that, that these are not all in one solutions. The, you, you, you have to part of the, the power of these applications is, well, yeah, they don't do a bunch of stuff that isn't very targeted to what they are meant to do. So mutt, in other words, does not check your mail for you. You have to open up, open up mutt and, and, and trigger a mail check. Otherwise it would be running a demon in the background. And, and maybe you don't want that. That's not what you're signing up for when you say, I want a lightweight mail client that just does not, that's that doesn't equate. So then you have to run something else. Well, luckily you have something else to run. You could do cron, you could do anacron, you could do whatever. Um, you could write a script that, that does it for you every so often. I don't know why you do that. I just use cron. Um, but you could do that. Uh, (30/54)

and then for the notifications, you can choose XBiff or you can choose XBuffy or something else, something of your own design or something else that I just don't know about or don't, can't think of off the top of my head. So there, there's a lot of just manually connecting the dots. And that's not something that you're necessarily used to. If, if, you know, if you're, if what you're used to is like the quote unquote mainstream, a stream applications, neither is right. Neither is wrong, or I should say both are right and neither are wrong. It just, it depends on what you're looking for. And I think it's sometimes easy to get lost, you know, or, or not quite comprehend what people might say, oh, Linux, you know, this requires a lot of setup. Well, why does it require a lot of setup? Well, maybe it doesn't. Like maybe you're using it in a way that it shockingly doesn't require a lot of setup. Like the last time I installed, the most recent time I installed Slackware 15, I was, I mean, (31/54)

like on my workstation, which is years ago now. Right. But I mean, I was shocked at how little I had to do because I had a settled into a lot of the defaults of Linux. I just started getting used to whatever, just accepting whatever the developers have given me. And that's a fine place to be. Like, there's no problem with that. It's nice to be able to have the luxury of being lazy. Just, oh yeah, this is fine. Yep. This'll, this'll work. And, and to this day, I don't think on my main workstation, I've bothered installing VLC, which I keep saying because that used to be like the automatic first install for me. Like that was something that I always had to have. And now it's just like, well, whatever Dragon Player works actually fine for what I'm doing here. Um, I didn't even have to install FFmpeg. It's already there, you know, so there are so many little things that are just like, yep, that's fine. That'll work for me. And that's a great place to be. But at the same time, like if you (32/54)

want to get deeper into Linux and really, and you want to spend time messing around with it, I think an onlooker can sometimes think, well, what are they doing? Like what, what, what could they possibly be doing for so many hours on a computer? Like what is going on? Like what, what do you have to do? And it's like, well, one thing I have to do is I want to connect my mail client to my cron, to the cron system and then trigger notifications with this XBiff thing. But actually I heard about XBuffy, which apparently has better support for multiple mailboxes. So I've really been trying to get that to exactly the right color and the right position on my screen and so on. So yeah, point being there's, it can be as complex and as time intensive as you want it to be. And that's, that in itself is a luxury, right? You have the choice to either really, really geek out and decide this is going to be the system that I designed for myself. And I mean, the good news is you can spend hours doing (33/54)

that. And then if you want, you can forget about it for several years. Like you don't have to think about it. It's set up, it goes, it may be set up for a decade or more. I mean, there are systems on my computer that I have set up that I just, I just don't think about anymore. I've, I've, I do know that they're there. And sometimes I remember like, I should probably look at that and just remind myself of how it all works. But you, for years, you can forget about it. And that's cool. That's fun. But if you don't want to forget about it, you want to constantly improve it and change it. You have the luxury of being able to do that as well. You could, you could find alternatives or better ways to do something, cleaner ways to write that code, whatever. It's very cool, very fun. And this is bizarrely, yeah, a really good example of how that is. Because what could be simpler than getting a notification for incoming email? Like, come on, that's not a big deal, right? Well, it can be if you (34/54)

make it into a big deal. All right, that's XBiff. Let's talk about XBitmaps. This is a, these are rather miscellaneous XBitmap files. So if we take a look at the var log packages, XBitmaps, sure enough, in user include X11 bitmaps, there's just a bunch of little, presumably, bitmap files. So I'm going to copy one path randomly and type in display slash usr slash include slash X11 slash bitmaps slash echornaut. And sure enough, there's a bitmap of an echornaut, one of those impossible knots with no beginning and no end. It's a pretty respectable size. I kind of thought it was going to be a lot smaller. I don't remember how to get the size. Well, I do, but not in display. How about identify that file? It is a 216 by 208 XBM XBitmap. And there's a bunch of things like that. I have no idea what these are for. I couldn't tell you. But if you want a bunch of bitmaps, user include X11 bitmaps, that's where they are. Next package is XCalc. This one I know inordinately well, and I'll tell you (35/54)

how. So back in the days, and I hate to keep referencing this because it sounds like I'm being nostalgic. I'm really not. I'm just saying earnestly and honestly, there was a time when my main window into Unix was Mac OS 10. That was like my entry point into Unix because that's the computer that I had. And I picked up I had picked up this book, learn Unix in 24 hours or something like that or 24 days, whatever. And people used to laugh that I was reading this book and they just thought it was so silly. But I was reading it and absolutely enthralled. I was absolutely I was just I couldn't put the book down. And it was just so cool to be able to open up a Mac OS terminal application and do do useful things like that was really cool. And I do think that there's a point when you're learning Unix and Linux that you go from. Well, there's a couple of points. The first point is, oh, my gosh, what is this application like this terminal thing? It looks like a text editor, but it doesn't act like (36/54)

a text editor. It seems really, really broken if it is a text editor. And I wouldn't even know what to type anyway. And all the obvious things that you can think to type don't seem to render anything useful. So you don't know what to do with it. And then you ramp up and you suddenly start to know you learn interesting commands, like things that give you a response that you can somewhat understand, you know, things like LS. LS shows you a list of directories. Wait a minute. I know that list of directories, because if I open up my file manager, that's the same directories as that. That's really cool. OK, that's something that I can understand. So then you learn CD. So you go into a documents folder, for instance, and you do an LS again. There's a list of all your documents. You open up the same folder in your file manager and you realize, yes, you're looking at the same thing. Then you move. You move a file from A to B.txt and the file magically does it in your file manager. Like you're (37/54)

controlling it. You're a puppeteer. You're magically manipulating this thing without even touching your file manager. You have now changed how your computer, you know, the data on your computer. Super powerful. You're empowered. You feel excited about what you've just done. But then there's a plateau because you've hit like this point where you can do stupid things in a terminal, but you're not really sure how people could spend much time in a terminal. You know, it's like listing and CDing and maybe a find here and there if you're adventurous. But like, what do you actually do in a terminal? And so you learn a little bit more. And then eventually at some point you get really good at it and you start realizing what exactly you can do in a terminal. And now all of a sudden you're in a terminal every day, all day, whatever. So at some point I was in a terminal and I'd broken I'd gotten to the plateau, but I was ramping up for the second for the second level up. I was I was figuring out, (38/54)

OK, what are useful things I could do? What are some really cool tricks I can do? And eventually I stumbled across XQuartz as you do on Mac OS X or as you did on Mac OS X. I don't know what they're doing now, but you found that. And that's the X11 environment within the Quartz window manager of Mac OS. And when you figure that out and there's a bunch of stuff you have to install and enable and, you know, do a lot of work to sort of turn on this magic thing that Apple, the company, was advertising. Is like this huge benefit of switching over to Mac is that you would get all this Unix power, but then they they hid the Unix power away, you know, in a back room and made you really work to get it. So after you finally get to that point and you launch X, you have, I believe, a menu with like two applications in it. One is XCalc and the other, I think, was like XClock or something, you know, or yeah, no, it would have been XClock. And maybe XEdit, maybe, probably not. But anyway, you have (39/54)

like two applications and you're just like, wow, this is not exciting at all. So you've hit another plateau and then you have to figure out how to use some kind of application to install Unix applications in a little file system like the Fink project or MacPorts or Homebrew now, whatever. But that's a different story that's going too far. The thing that I'm saying is that XCalc was one of those applications that while I was still figuring out like what exactly you could do with all of these Unix tools that you had, one of the tools that just kept coming up, because every time you tried something with X11, it would be there in the menu, was XCalc. So I've used XCalc more than probably you would have thought. Like it just, I don't know why, but it just it kind of became a mainstay for me when I needed a calculator. XCalc was often the one that I would go to because that's I would have been running that. This was years ago. So I'm speaking about a bunch of outdated things that probably (40/54)

don't even apply anymore. But that was my early experience. And XCalc, I mean, that's I've already said more about this than really should be possible. XCalc is a calculator, not a particularly great calculator. Like these days I just use KCalc, but XCalc is there. It does exist. XCBproto is the next package. This is the X protocol, the C language binding protocol specifically. So this is X C language binding protocol or bindings, I guess, probably. So this is libXCB. It generates the majority of its code and API for the C language. If you're writing C code and you're writing for the X11, for X11, you're going to be using XCB. Next up is XCButil. These are utility libraries for the X C bindings. You've seen utility functions before, probably. I mean, if not in real life, then on this this podcast, they exist. They do things. Not a whole lot to say about them. There's like XCButil cursor. This is the cursor module for XCB, which is the XCB replacement for just straight lib X cursor. (41/54)

XCButil errors provides useful error messages. Yudl image, Yudl keysim, Yudl render Yudl, Yudl WM for window management. These are all libraries and they're all doing a lot of work for programmers who would otherwise have to manually write functions for actions that are reasonably expected to be fairly common when you're developing. This is the kind of thing that you love to see as a programmer, because, yeah, you do have to kind of like learn that library. You have to understand, well, what functions are available to me? Why does this library exist? But the moment that you do, like I think mostly the moment you realize why the library exists, then you can kind of, you know, you just search through the library for the function that if that is its purpose, then surely there would be a function to do this or that. And so you search for that, you find the function and then you use it. And it's great. You'll see this kind of thing in frameworks and in IDEs all over the place. That is just (42/54)

it's such a beautiful, beautiful thing. And the power, once more, power of open source. Sure, other SDKs do exist. Like you can buy into an SDK from Microsoft or Apple or whatever system. But with open source, you get the SDK and then you get everybody else's SDKs. You know, like everybody else who's ever thought, I really need to get the exact pixel location of that one button, regardless of how the user has configured their screen or something like that. Hey, don't worry, there's a library for that. There's a function in that library. So, yeah, it's just it's really nice. It's very, very useful. And the next application is XClipboard. This comes with two commands, XClipboard and XCutCell. So XClipboard is just it's a clipboard manager. So if you if you want to copy something, when you copy something, it appears in XClipboard. You can have lots of sort of pages in XClipboard. You can remove, I say pages, I guess, entries, maybe. I mean, it kind of looks like pages because it has a (43/54)

little number that you can increment like new. Now you're on page four instead of page three or however many there are. And you can flip through them previous, next, next, next. So you can you know, if you've ever seen a clipboard manager, this is basically the this is this is known to you. This is a this is a clipboard manager. You get an entry and you can flip through the different entries. And the one that you are currently on becomes the primary clipboard entry. So, for instance, if I type the word foo and then with my cursor, I'm typing into my terminal with my cursor, I'm going to select foo. I'm going to hit there. I'm going to right click and hit copy. And now in XClipboard on page one is the word foo. So that's the primary selection. I'll delete this from my terminal. I'm going to hit control shift V. I paste and the word foo appears in the terminal. That's because that's the primary selection. OK, well, now I'm going to type in the word hello or the words hello world. Once (44/54)

again, with my cursor, going to select that right click and copy. OK, so now XClipboard has changed to hello world. I look at it. I'm on page two now. So this is the second entry. Hello world. If I go to the previous, it's foo. So with my with my XClipboard open to foo control shift V, the word foo appears with my clipboard set to next hello world control shift V. I've just pasted in hello world. That's your primary selection. So if I wanted to, then if I if I launch Xcutcell, this is a very simple application. I'm not entirely sure really why it exists personally. I don't quite get the use case here. But Xcutcell copies either the primary selection to the cut buffer or the cut buffer back over to the primary selection. So if currently so currently sort of yeah, currently, if I hit control shift V, then I've just pasted hello world. So hello world is my primary selection. Now, I guess I will now I can't figure out a good way to do this. So I could copy primary to zero. And now control (45/54)

shift V still hello world. Yeah, I don't know exactly what the cut buffer is really, really good for. And the man page doesn't give me a whole lot of a clue. I mean, it says the Xcutcell program is used to copy the current selection into a cut buffer and to make a selection that contains the current contents of the cut buffer. It acts as a bridge between applications that don't support selections and those that do. Okay, okay, okay, okay. So I think that actually just means let's see if I select Xcutcell in the terminal and then go over to well, maybe that's a bad. Let's let's let's select I'll select the word buttons. So I've just selected it. I haven't copied it, haven't pasted it, haven't done anything with it. But you and I know that if I were to hit the middle mouse button, buttons would appear would get pasted in, right? Because that's how X works. It's got that secondary buffer, that secondary copy buffer, the selection buffer. So I've got buttons selected the word buttons. And (46/54)

now I'm going to copy primary to zero. And now I'm going to deselect buttons. So buttons is no longer selected. And if I do a control shift V, I get foo. All right, well, that did not work the way that I thought it was going to work. No, that did not. Okay. Yeah, I don't know. I don't know the use case for Xcutcell. It's quite possible that there is no real use case for this because maybe modern Linux applications just handle that on on their own, possibly. I don't know. But that's X clipboard and Xcutcell. Don't know what Xcutcell is. But hey, the package ain't named Xcutcell. It's named X clipboard. All right. Let's really quick here talk about Xclock. That is exactly as it sounds. It is a clock, a square clock rather than oclock, which is you'll recall was a round clock. As you can imagine, there are options for background and foreground. So you could do something like Xforeground. Oh, that didn't work. Let's try Xforeground white. No. Wow. Maybe the foreground isn't working. I'm (47/54)

not sure why that's not working. Yeah, the foreground color does not seem to be working right now. Am I doing this wrong? FG color. Yeah, no, it should be. Oh, maybe you know what? It must be maybe HD color instead of yeah, it must be HD color. No, I don't know. I don't know how to get the foreground to work. That's really interesting. Um, okay. Yeah, I'm just getting Yeah, all right. Well, supposedly you can control the the colors, although, as I've said, like an oclock, I was able to change the colors. But in Xclock, I can change the background color successfully, but not the thing that is being rendered the the time markers and the hands. I don't know how to change those to different to different colors. But you can change Xclock between the analog option, which is the the default or a digital option. So if you do Xclock dash digital, then you just get the time. It's not like a LED looking clock face or anything. You get a date and a time and your time zone, which is kind of nice. (48/54)

It is a little bit quirky because I mean, what do you want a window just for this? Probably not not on modern, not on a modern system, but I mean, you could embed it into some something on some window managers and and have that displayed there. So that seems relatively useful. And then finally, I think for this episode, we've got libX or rather XCM, which contains and XCMSDB, I guess. So these are color utilities and color libraries for X11. This specifically XCM is able to parse EDID data or I guess I'm probably being redundant. I don't remember what EDID stands for. Look it up really quick. EDID extended display identification data so it can parse EDID and EDID is literally it's a it's like a handshake between your display device and your operating system or your operating system. And it's a way for your you know, this is how things understand the capabilities of a of a specific monitor. So this is how information like color, you know, bit depth and resolution and all that stuff is (49/54)

There are 2 pages
Pages