In about 30 seconds.
All right, should I say something? Something?
something.
Yes, we'll start the meeting. Look in, Gary.
Okay. Bookend. This is, uh, Thursday, October the 16th, 2025. This is the St. Louis Linux User Group meeting.
Uh, it's our monthly meeting, uh, usually on the 3rd, sometimes the 4th, Wednesday, Thursday of the month.
Um, our presenter tonight will be Sean Tweehaus. And, uh, he'll be talking to us about, uh.
a command line demonstrator that works with the Kitty terminal.
Uh, to great, uh, aid to being a speaker, uh, in an event that lets you do a live presentation.
Our usual format for the meetings on Thursday night is to start out with the announcements, which is what we're doing now.
And, uh, then have a very brief question and answer.
Uh, and then go to our main speaker. Uh, followed up by… the questions about his talk.
And, uh, discussion of his talk. And then, uh, perhaps a more general Q&A at the end, if there's still people who have some, uh.
things they'd like to discuss. Uh…
You want… you want to do a quick summary of the meeting? We've got to have about, uh, you know, about 12 slides here, and if you can do them all in less than 30 seconds, it'd be really great for this new guy that just showed up. There's two new people in the room.
Okay. All right, uh, about us, uh, we're the St. Louis, uh.
Linux user group. We're part of Slug, the St. Louis Unix Users Group.
Uh, that's been around for, oh. I guess something like 3 decades or so? Yeah, something like that. And, uh… Uh, we hold about 4, uh, public meetings a month. Two of them have presentations.
Uh, two of them, uh, do not, uh, and uh… I'll talk about that.
You're deviating from the slides, Gary.
Yep, you're right. Uh, let's see… Okay, our mission is to educate, inform, and support Linux users.
Be careful, Tripp.
I said, be careful, Tripp. Don't mess with the slides.
You start to say something?
Not me.
Okay. We haven't had a physical meeting at some time.
Uh, we do almost all of our meetings, uh, virtually all of our meetings, in either Zoom.
or JITSI, uh… One or the other, not both.
Um, we do have an archive of our presentations.
And, uh, you can look up our old presentations. We've been very good about recording them since the beginning of the pandemic. We've had some before that.
Uh, our meeting times are all in Central Daylight Time, which is GMT-5, or 6, depending on whether it's Daylight Savings Time.
Um, we almost always turn the meeting on at 6… 6 p.m, basically, it's what some would call opening the doors.
Uh, gives people time to test their microphones, their… screen is their sound system.
And then the actual meeting actually starts at 6.30.
as again said, tonight, uh, we have about 15 minutes of announcements and Q&A, and then we'll actually go to the formal presentations.
chair, uh, James Conroy is the normal chair for the, uh, uh, LUG.
Um, guess he's not here this evening, at least not yet.
Uh, I'm Gary Meyer, I'm, uh… I'm our MC for this evening. I'm also president of the group.
Our host is Lee Lamert. He's the principal scientist at Omnitech Corporation, and, uh.
That's where our particular host machines are running. Um, Stan Reichert is the vice president of our group, and also takes care of so many things in the production.
Uh, so he's always, uh, a reel. help getting these things done, if not mainstay.
chat monitor. Looking for a volunteer, somebody to just… actively read the chat group.
Um, you know, there's a chat button, and anybody can type something in there.
So, if somebody wants to just be paying attention to that, that way, if somebody types something in the chat, if it's something that should be.
answered immediately. Uh, we'll know that there's something waiting for us in chat.
what's the going hourly rate?
Uh, let's see, you get two kudos instead of…
I think we have a volunteer. Topic Wranglies. Um, we always need more people to help find speakers or topics. I mean, part of this is just.
thinking of, ooh, that would be a great topic, uh, be something that somebody could do a presentation on in an hour.
And, uh, so, you know… Maybe that's all you do is come up with good ideas. Somebody might be able to fulfill.
Other people, you know, might be the people who look for somebody who might be willing to speak on those topics, or… Somebody who might speak on some topic that he wants to.
So, if anyone would like to volunteer to help find presentations.
We'd appreciate it. Okay, announcements. 12 days from now, i.e, the fourth Tuesday, is the new Linux meeting.
The new Linux meeting, basically, is for people who.
Uh, you know, consider themselves a newbie in the world of Linux.
somebody who's not a very… frequent user or long-term user.
We have a lot of newcomers that consider themselves to be newcomers, for they've been only doing Linux for 7 or 8 years.
Yeah, yeah. Uh, but, you know, if you're newer than that, don't let it worry you, because it's… It's good to have those old hands, or older folks there, and for those of you who consider yourselves experts, you come to the meeting, too.
It's amazing that somehow the simplest question. We'll get four, five different.
approaches, different answers of, well, I do it this way, and somebody else who's been.
doing it for, you know, a dozen years, goes, I never tried it doing that one. Wow, oh, you can do that? So it sometimes really informative, what you learn at those meetings.
Um, Slack meeting, as the St. Louis Area Computer Club.
It's a little more hardware-oriented, we'll even talk about Microsoft questions, uh, or, uh.
But as I say, you know, what's broken in your hardware, how do you get the hardware to work? Uh, GUIs, uh.
Uh, anyway. Slug General Meeting is the second Wednesday of every month.
And that's, uh, again, our general meeting. The original name was Unix. It's basically anything on open standards, open source, uh.
type things, uh, we're more than happy to talk about.
Um, let's see… this year… Next month, uh… November the 14th is the end of life for Windows 10.
Let me…
Well, wait a minute, wait a minute, I think I got that wrong. Isn't it just… Two days ago? October? I'm sorry.
Yeah, that's a typo. Yeah, I'm sorry, that's a typo.
I think it was October, yeah, I think that…
It is October.
Okay.
bad… bad fingers, bad fingers. Yeah.
And I do have solutions for that.
Ah, okay, okay. Well, here… here's some of the details on that, uh, when I finish up these announcements.
the, uh… let's see… Any other announcements that we should be doing?
There's a nice, uh, free… PDF available out there, I don't know, a book that was written by.
Some guy at the Atlanta Linux, uh… group, and uh… you can get the paper back if you want, from Amazon, or the Kindle, or whatever, but… Even in the first chapter of the book, he gives out these two.
Uh, URLs, you can go get the book PDF for free.
And the first half of the book talks about.
Installing Linux, particularly Linux Mint. Which is recommended for beginners, and the other half of the book is for people that want to stay with.
Uh, going from Windows 10 to 11, and uh… It's kind of a fairly well-balanced book.
uh, manage free. And there's also a project in Europe called Endof10.org.
Nice.
And I've posted on that a little bit. If you go there.
Uh, they got… they got maps of the… of the world, where it shows the locations of different events and… and people that will.
charge you $10 or $20, or $50 to install Linux on it, or… There's just an install fests that are free, that kind of stuff.
And uh… a lot of groups in Europe, because that's where they started this thing, and very few, uh.
continental U.S. Sites listed, and I try to pass this around, the information in my spare time, I send emails to some of these groups and say, hey, you oughta advertise yourself on this.
end of the 10 thing. Um… Yeah.
Uh, Stan? Stan? Going back… going back to your previous slide, 9… 9… 9. Okay, the top of it says, endof10.org, but the content of the slide doesn't seem to be talking about that here. Am I wrong?
That's the… that's the item that I posted there.
For the new Linux workshop. That's an example of what, you know, what's there.
Oh, okay, okay. Ah, I see. Okay, good. Thank you.
Okay, carry on. Sorry.
I lost my train of thought.
Big Brother's watching!
I had half a thought, as I called half-wit?
You mean you had one?
Okay. Huh?
I shall not go there.
Alright, you get… you get half credit.
There you go. All right.
Well, obviously, yes, we record these meetings, uh, you heard me do the bookmark for the beginning of the recording.
Uh, but even when we aren't recording it to put it in our archive.
Uh, do remember that anytime you're online. Somebody else can be recording it, so, uh… We may not know about it, just be aware.
Dan, do you want to add something?
I've got a link there to the presentation I did on simple screen recorder, which is a Linux.
tool for recording stuff. It's very simple. And there's a 52… base session, uh, that we did, and a link to the PDF, and there's another link to.
some additional, uh, websites on how to use Simple Stream Recorder.
Again, our presentation… patient archives, so only the main general meeting slug, and this particular meeting are.
are archived and posted up on our website.
We have a calendar. That shows the events that originally started out to… just the events in St. Louis, and one time there were any… every month, there used to be, like, face-to-face meetings. We'd have, uh.
anywhere between 150 and 175, uh, face-to-face meetings. Well, there's this thing called a pandemic that came along, and that kind of altered things, so we've started including remotes meetings and.
and logs in different locations and so forth. And all of our sponsored events are highlighted in red on that, on that.
that meeting. Uh, let's see if I can… bring this up to show what it looks like, you know.
Maybe not. Can't get there from here. I'll get this in at a time.
Anyway, we have… For a mailing list, people can join, they can ask questions on our discuss list.
Uh, they can ask, uh, sysadmin questions or computer-type questions, uh… And we also have a limited.
announce a mailing list for just the… only the meeting instructions and things like that.
And we have our sister administ listed as far.
people have actually volunteer and help work with our systems.
And we have a steering committee. Where people can come and throw out their opinion, and they don't have to volunteer for work, but IDs are welcome, and it's essentially… how the sausage is being made, and it's usually interesting more than you would think.
But it's, uh, generally revolves about keeping the meeting going.
As I said, we have, uh… our main sponsoring meeting in St. Louis.
Unix usersgroup, it's .org, that's the, uh. the umbrella group, or whatever.
And the Linux presentations are here at the St. Louis Lynx.
user group, the new Linux. User group is for beginner workshop, and the Slack meeting is the.
configuration workshop for hardware and software. The call for help is… appropriate before we go on?
Anybody desperate for something? They've got some time here to ask.
As we said, there'll be time. after the main presi- or the presentation tonight.
I guess…
Um, but, uh, we know some people. have dinner waiting, or other plans, and they can't stay late, so… If there's something you feel like you want to bring up now.
Well, I… I do. This is Randy. Um, I do have, uh, information for… people that still need to stay on Windows 10, or Windows.
and wanted to go to Windows 11, but they're… computers too old, and as far as I'm concerned, there's no computer too old. I can install Windows 11.
on their machine, and actually it's relatively easy to do.
Microsoft account.
I was surprised, and you don't need a… You don't need a, uh… Um… Yeah, uh, yeah, you don't, um, you don't need a, um… a flash drive or anything like that. It's all done right in the windows that you're currently running.
So, just thought I'd share that if somebody… wants to know.
It'd be interesting to talk about that later, Laura.
I can… I can talk about it a little bit more when you're ready.
Yeah.
Great.
Any more questions? Um, oh, we should ask on, uh, Sean, do you want people to hold any comments or ask questions during, or… Or what?
Uh, no, that's okay, feel free to interrupt me at any time while I'm doing my presentation.
Okay, I'm gonna stop my sharing of the slides.
Gary, you want to introduce our main speaker?
Dawn Twee House has been a member for a number of years, a frequent presenter.
And always comes up with some good information for us.
So, we're very, very happy to have him speaking to us tonight.
Uh, so with that, I'm going to turn it over to Sean.
Thanks, Gary, awesome. Um… But, uh, that was a great introduction, but I would like to temper expectations, so I volunteered for… to give this talk, like.
12 hours ago or so, so I definitely was still writing slides, uh, up till, like, 5 minutes ago, so… Uh, set your expectations accordingly on that one. So, um…
I was going to mention how grateful we were for that, but then I was going to hold that till after your presentation, and this is so…
Regardless, it'll be good, I know that.
That'll be good, for sure.
We'll see. Okay, uh, getting into it here, so… so I teach, uh, the Linux administration course at the local St. Charles Community College, and you can imagine, as part of that class, I give a ton of command line demonstrations, right?
I need to show the students how to do a lot of things on the Linux command line.
And at some point or another, we've probably all had professors that just type.
Very, very slowly. And it's just painful to watch them type so slowly. Or, worse.
You have professors that are. talking and trying to type at the same time, and now they're doing a bunch of typos, and that sends the professor into troubleshooting mode.
In the middle of the demo for why it's not working, because.
They made some silly typo. And, you know, it makes you look kind of… unprofessional, disorganized something when that happens.
And so I definitely didn't want that to happen to me. And so I've created a workflow, um, that I use for my command line demonstrations.
And I thought it might be interesting for other people, especially to lug like this, where we have a lot of people that are.
either do presentations or are aspiring to do presentations.
might be interested in this. And another thing that I really try to do is to show the students.
that the command line, the terminal, the Linux terminal.
It's not some sterile black and white. you know, black text on a white background place.
It can be fun, it can be colorful. And so we'll see some of that as we go tonight.
As well. So I'm gonna start sharing the screen.
And what you're seeing on my screen right now is, uh, the Kitty.
terminal emulator. If you go back in the presentation archive.
About a year ago, I think, I did a… Um, presentation called Terminal Showdown.
Uh, Kitty vs. Westerm, or something like that. Where I, um… Where I, uh, went over some of the features of, like, modern terminal editors, more so than you'll find on, like, Xterm or some of these older.
Terminal editors, and out of that showdown, Kitty was the one that I definitely liked the most, and it has some amazing capabilities that we're gonna talk about that really empower.
this workflow. If you're somebody who is stuck in your ways and you're not gonna use Kitty, or you don't want to use a terminal like this.
Uh, I still have a way, uh, if you ask me at the end, I have a different method.
that you can use that doesn't involve Kitty and has almost.
Um, as good of a workflow, so we can talk at the end about that if we have time. But the primary way I use it does kind of revolve around the Kitty.
please, uh, plan on doing that. part at the end.
terminal. So… Yeah, yeah, well, yeah, if you remind me, please, and I'll make sure we cover it a little bit.
All right, so… Okay, so one of the ways that… I show that the terminal is a fun and colorful place.
is by doing some of my presentations, my slide presentations.
In… the terminal as well. And for that, I use a program called PresentTerm.
And I'm gonna launch it right now. No space left on device.
And of course, the first thing that happens is I get an error. That's incredible.
That's pretty standard for a live demonstration, is it goes bad immediately.
Maybe I shouldn't have been editing my slides, uh, you know, 5 minutes before, uh… Before, um…
Well, now… now we get to see how you fix it.
voodoo-doo, space…
Oh, yeah, oh yeah, I love it. Okay. What can I… What can I do here? Well… No space left on device.
In this case…
And all of us experienced attendees realize that, oh, this was just a deliberate setup to show how this all works.
fixes things.
Uh, yeah, I guess, uh, let's see…
All right, yeah, I guess I'll do this, since I'm having to… so the problem is, something about the screen share. I'm pretty sure it has something to do with the screen share.
And trying to play this GIF. Uh, because I'm guessing it doesn't have enough VRAM, or I don't know, that's… it says no space left on device, so I'm not quite sure what that would mean, but…
What I want to try… I have other GIFs that are less… Intense, so I'm gonna try one of the other ones that I prepared.
Uh, okay. Oh, and I was saying the other one has no space, so let me go down to the other GIF.
And… I guess I'll get rid of this one.
Is that Neophyte?
That is… no, it was Neovim, yeah.
Yeah, but it's, uh, you're using, uh, Neovite, uh… emulated, right?
Uh, no, that's not… it's not, no. It's, um, it's, it's, uh, Kitty. Kitty has that, uh.
Oh, okay.
cursor flashing that you're seeing around, like the, uh… Yeah, Kitty can do that, too. Okay, so since I fixed it… Really sorry about this. Apparently what hap… I think what happened is I have… I had enough gifts… I have enough GIFs in this presentation.
that they worked really well. And then, when I started screen sharing.
Uh… something ran out of space, is what I'm guessing, and so I'm just removing… One of the gifts from my presentation.
And hoping that solves it. So, very sorry to start with… technical difficulties.
But we'll go ahead and get started right now, right? Yep.
Okay, great. So the thing that was gonna go wrong has already went wrong. So, the Kitty terminal.
Uh, so Kitty, uh, can render pixel graphics directly in the terminal using something called the Kitty Graphics Protocol.
And if you went to that talk that I spoke about earlier, which was the Kitty vs. Westterm talk.
you would have seen that in that talk, I actually was playing Doom.
inside the terminal, okay? I actually… it works. flawlessly. Somebody poured a doom.
to output to the Kitty graphics protocol, and it worked great in Kitty, and it was a lot of fun.
Um, another thing that Kitty has is called a text sizing protocol.
And this is really great if you want to do presentations in the command line, because.
What you see up here is text, this is not an image or something, right? This is actual text.
But you can see it's about twice the size of normal tur- of my normal terminal text down here.
And this is really great for presentations, because then you can make titles, like, big, like, double the size.
And you can see down here, you can do different size, um, fonts in your.
presentation. It's really cool. And this, as far as I know, is only available in the Kitty terminal, just like how the Kitty… but I'm hoping that other terminals will adopt it.
Because the Kitty graphics terminal also started out only in Kitty, but now it's been adopted by Westerm and Ghosty and some of the other.
And I think even console and some of the other modern terminals have also adopted it, and so I'm really hoping some of the other terminals adopt.
this text sizing protocol as well, because I think it's pretty cool.
Uh, in fact, if we minimize this and play around a little bit.
You can see that I can print double-sized text here.
And the way this is working is with this escape code right here. So this is interpreted.
Uh, by Kitty, and the important bit is this S2 here is for double the size.
So this is kind of the escape code that I think says, like, hey, there's a size descriptor coming.
And then the S2 is what, um… what says the size? So, we can also do half size, so I'm sure that's hard to see.
In, uh, the presentation. Because it's half size, but you can do half-size text as well, and so what that means is if you combine them, you can do a superscripts.
And I think you can do subscripts as well. So you see here, there's a little 2… superscript up there, H2O.
So, pretty cool. And you notice that when these, uh, were appearing on my prompt.
I was not typing those in, right? And this is gonna get to my command line demonstration workflow.
In just a second. So… Uh, the command line demonstration workflow that I use relies on, uh, Kitty remote control.
And so this is the ability for one kiddie window.
to control another kiddie window. So you can do things like… you know, open… a new kitty window and give it some kind of title, like… presentation window.
And then, you can… from one kitty window, you can send text.
to that presentation window. And that text will appear… on the prompt, as if I have typed it by hand.
Okay, but obviously it does it very fast, and all that.
You can also send key combinations, you can manage layouts, there's a bunch of remote control capabilities that Kitty has.
And it's all very cool, and it's the main thing that powers.
this workflow. So what you're gonna see is I'm gonna have a controller window, and I'm gonna have a presentation window. The window that you're looking at in my screen share is the presentation window.
You can see up here in the top left, if you can see that small font.
It is titled Presentation. And if we look, since I already showed y'all, I'll show you this. This is what I have on my other monitor.
Um, off-screen, over here on my left. And you can see on the left side, what this is, is this is my speaker notes.
for, uh, my present term. So, present term will allow you to do speaker notes that are synchronized.
So this, every time I switch, um, a slide.
Uh, on this side… on the presentation window, it's synchronized to this presenter notes.
tab over here, and so this is how I knew to remember to hit CTRL-Z and do that.
that other stuff. Over here on this side. this is what I'm calling my controller window. Uh, so if you look down here, that's this one on the left side here.
And what this is doing is every time I hit enter in this window, what it does is it uses the kitty sendText.
Um, command here. to send the next command to the presentation window.
So, what is my next slide? Uh, so at this point, I think I should run through a demo. So I'm gonna hit CTRL-Z.
To minimize the presentation. Uh, and then we're gonna see what we can do here. So, I'm gonna SSH into a virtual machine that I have.
And what I'm gonna do is I'm gonna run you through one of the demos that I do in my class. This demo's for SELinux, just because everybody needs a refresher about SELinux, right?
Um, it's always good to have an SELinux refresher, so… We're gonna go in here, and you see, when I hit my keyboard shortcut.
that presses enter in my control window. All of this text appeared on the screen, and we'll go into the implementation of that a little bit later if we want to.
But this is just a description of what you're going to see in this demo. So we're going to configure a new directory route for Apache 2, also known as HTTPD, since this is a Red Hat system.
And, you know, here are the steps that we're gonna walk through in this demonstration. So… We're gonna basically, um… make a slash web directory with an index.html file.
We're gonna configure Apache to serve content out of that web directory, and then we're gonna… We're gonna need to adjust the SELinux settings so that it'll actually work.
And so that's what we're gonna walk through here. So… Let's start by making a slash web directory with an HTML file.
So the first thing I'm gonna do is switch to root.
And then I'm going to make the slash web directory.
And now, I'm going to use VIM. to open an index.html file in that web directory.
And here, I'm going to type in… Welcome to my web server as a little H1, just a simple index.html file.
You'll notice that my… I didn't type that by hand, right? You'll notice that my… that using Kitty.
Uh, I can even send text to a VIM window and use it for VIM as well.
And so now, we're gonna go ahead and write and quit that, um… index file.
Next, we need to configure HTTPD to serve web content.
And I hit F1, uh, my keyboard shortcut there, and nothing happened.
Because if you look in my controller window, it actually sent me a note.
So it tells me what to do when I get inside of VIM, because I didn't want to… I could have easily, you know, coded up the steps to do inside of the.
configuration file, but I just didn't want to. Uh, I thought it'd be better, just easier, if I could just do it by hand.
So I did a little speaker note to myself here to tell me what to do. So when you see me looking off to the left side, it's me… reading what my speaker note tells me to do, and that's generated from my command line demonstration, um, script that I have.
So, we need to go into the HTTPD.conf. file, and we need to change it to serve the slash web content. So what I'm going to do is I'm going to search for var www… There we go, and I'm going to change this to slash web. Okay, I'm sure there's…
I'm sure there's, uh, you know, Apache experts in the crowd who are like, why would you ever do it this way? Well, it's fast.
So, now the, um… Now, the Apache will be configured to serve.
content in the slash web. uh, directory.
All right, so now we're going to restart the HTTPD service.
And next, we're gonna test out our configuration. So, I'm gonna curl the local host, and we see we get a whole bunch of output here.
A lot of gibberish here. I think this is the test page.
Uh, on Red Hat Enterprise Linux, and this is not what we were expecting when we ran that curl command, right? What I was expecting when I ran curl was I would see that simple.
H1, index.html. from before, but we're getting all this gibberish, right? So something went wrong.
Uh, something is not working, because we're not seeing the HTML page we expect. We're seeing this test page.
So, let's start troubleshooting. The first thing I'm gonna do to troubleshoot…
is, uh… sorry, I was just trying to look at the chat.
Um, the first thing I'm gonna try to do to troubleshoot is to disable SELinux temporarily.
To do that, I'm going to use the setEnforce command, passing in the zero argument.
Then, I'll try my curl again, and this time we do get the output that we were expecting.
And it works. And now, uh, what I'm gonna do is I'm gonna go on a tangent, uh, which is something I can fully do, because my method for doing these command line demonstrations does not take over my shell.
I can run as many ad hoc commands as I want, and it does not affect my demonstration.
Uh, in any way. So… Uh, a lot of times, when you get an error that is SELinux-related.
Uh, it's, you know, a lot of times I'll do this as a troubleshooting step, right? If something doesn't work that I'm expecting to work.
I'll just quickly toggle off SELinux. and try it again, and see if that was causing the problem. That's what we did here. And then, usually what I'll do is I'll dive a little bit deeper. So one way you can do that is you can do DNF install se.
troubleshoot-server. And once I install this… We're gonna get the SE Alert command, and then I can pass the "-a flag to that, and I can view var.
Um, bar, log, audit, audit… dot log, and um… Let's just… I'm gonna try piping it to last and see if that works.
And I like to go on these tangents, uh, in my class, because one thing about, like, the very, kind of, safe.
command line demonstrations where you don't type anything. It can be a little bit boring. There's kind of no excitement, there's no kind of, um… It lacks a bit of, uh, personal touch, I guess, or something like that, and so I try pretty often.
to go on these tangents, where I just kind of do ad hoc stuff and play around with things and stuff like that.
I feel like that keeps the class interesting. And another thing I really like to do is I have this keyboard shortcut here.
And what I have is I have a bash script.
that randomly selects one of my students in the class, like, their name… by name.
Uh, using… and, you know, and obviously, inside the class, we learn about bash scripting, so it's a little bit relevant, too. So what I would do in this case is I would, you know, use my.
My… so Jihad's one of my students, I would ask him, so what do you think this output on the screen is telling us, you know?
And uh… and then we… I try to make the class a little bit interactive that way. So, right here, it tells, in pretty plain English here.
SELinux is preventing user SPIN HTTPD from reading the web index.html file.
What it… and then what it says to do to fix it is to use the SEManageFcontext-A.
to add, and then dash t for file type.
And then it's telling us to do it on the specific file. We're not quite gonna do that, we're gonna do something a little bit differently.
But this is definitely pointing us in the right direction.
And if you look down here, this is a very long list of possible file types.
Um, that it thinks it could be. It's actually a crazy long list.
Uh, but we'll see a way that we can figure out what file type it should be as well.
So that is my tangent. Uh, I think I'm done with that tangent.
So let's get back on track. So, next, let's inspect the SELinux configuration. So I'm gonna do… SE Manage, FContext dash L, that's gonna list all of the file context.
policies that SELinux has. And I'm gonna grab… excuse me, I'm gonna grep for HTTP.
And, you know, Kitty is so fast, too. That's the other thing. Kitty is amazingly fast, because this is over SSH.
Yeah, it's just a local virtual machine, but it's still over SSH.
And you probably didn't even see any amount of.
flashing. It probably just went straight to this screen, like, immediately, because Kitty is just so fast.
Um, okay, but there are a lot of entries here.
that Kitty scrolled through before we could even notice, because it's so fast.
Um, but if you look down here, uh, you'll see varw. Var www.
And then you'll see this regular expression here. And then if we look at what this is set to.
We can see the context type for this is HTTPD underscore sys.
underscore content underscore T. Okay? Uh, and so… um, you know, we want our web directory to act similarly to how the HTML directory.
acted, so we're just gonna put this context on it.
Another thing you can do is you can grab… you see how every single one of these lines starts with, uh, the directory path?
Well, sometimes it's good to check and see, is there already a policy for the directory that I am targeting?
Which, for us, is the slash web. So, this command right here is going to grep for slash web, and we notice there's nothing, so there's no policy at all right now.
for anything under slash web. And then if you look here, uh, at the SEManageF context.
dash L dash capital C. That's gonna tell us that there's any custom policies here.
And we can use ls-l capital Z on the web directory to see what the context is, and this is where I would ask one of my students, he's getting really unlucky tonight with the selections.
I'd be like, what context do we think this one has? And they probably don't know, but I would tell them, well, this.
file right now has the default underscore T.
Uh, sorry, I'm just reading the chat here. Somebody says the… RWContent T.
Uh, you want it to be read-write? Hmm, interesting. Okay, maybe. We can do that one.
Uh, alright. So now… Uh, so we see that that's the problem, right? This context is not sufficient for any HTTPD-related stuff.
So… Um, let's see here… so we're gonna set the HTTPD syscontent T on the web directory and everything beneath it.
So the way we're going to do that is by running the SEManageFContext-a for add.
dash t for type, and we're gonna do… we're gonna do Ron's, uh, one he wanted, sys… underscore read-write.
underscore content underscore T. So we're gonna do this one.
And what this regular expression right here… Um, this regular expression, it means… Uh, the slash web literal, okay, that's what, uh… That's what this part is. And then this question mark means optional, basically.
And then these parentheses are a grouping, so it's gonna be the slash web literal.
And then an optional grouping of either a forward slash and then zero or more of any character.
Basically. And we saw this a bunch when we looked at the output earlier, so you don't have to memorize this, you just run, uh.
F context dash L, and, you know, you'll see this all over the place.
So you don't gotta worry about it. So we ran that.
And now, if we run the fcontext-l dash capital C again.
We see that we now have a custom policy in here for the slash web directory.
But, if we look at ls-l-Z, or ls-l- capital Z on the web directory.
We see that the SELinux context here is still completely unchanged.
It still says default underscore T. And the reason why that is, is because we've changed the policy, but we have not applied that policy to the existing files, okay? To do that, we need to run a command called RestoreCon.
And I'm gonna give it the dash capital R flag for recurse, the V flag for verbose, and then I'm gonna run it on the slash web.
directory. And then this basically reads like plain English. So I would call in one of my students, Shane.
Can you please tell me what this output says? And then after a moment or two, hopefully they would say.
It says it relabeled slash web from the default underscore T context.
to the HTTPD underscore sys underscore read-write underscore content underscore T.
Context. And so, now, we've applied the policy to the existing files. If we create new files in the web directory.
it will get the… now that the policy's in place, they will get the… automatically.
the new. So, if we… If we run ls-l capital Z again, we see that the context is set how we want.
So now, let's go ahead and re-enable SELinux by running SetEnforce1.
We can clear that. We can run a test config… we can test our configuration again by running curl, and so now.
We are successful. Now, the, uh, we have SELinux turned on.
We have our index.html in the slash web directory.
We, um… and it's working, right? I'm able to curl, and it works, and everything's great.
All right, now, uh, I think I already showed you this, because I'm kind of going a little bit off-script, but you can see that I had several… speaker notes popping up here as I was going along.
Sorry, just reading chat again. Oh, nothing new. Okay. Uh, yeah.
So, several speaker notes as we were going along.
Let's, uh, exit… Exit… and I'm gonna do foreground to go back to present term.
And it somehow… Skipped a few slides.
Okay, uh, so you can record, uh, demonstrations with Eskinima. If you look back in the presentation archive, I did a… uh, base… Uh, I did a base, uh, presentation on Askinema, I think that's how you pronounce it, I don't really know.
a couple years ago, probably. It's pretty cool. It basically allows you to record your terminal.
Um, and then once I have the recording, I can convert it to a GIF.
And let me hit CTRL-Z again and see if this will just play. So I do Pitten, ICAT… I think it's called Manage Something… Uh, and finger… Yeah. So once you have it, you know, once you have the recording, you can convert it to a GIF, and you can…
you know, give that to your students, or you can put it in your slides, well… Usually, I can, I guess I couldn't tonight.
Uh, put it in your slides or whatever, and uh… And then it, you know, it'll be a good reference.
And then you can also upload it to the Skinima website as well.
Okay. So, how does this work? Well, first… oh, so is there any questions? I haven't been paying attention.
Let's see…
Right? Yeah. Uh, yeah, uh, there's a couple comments in the chat.
Unless you're in a good position to pull it up.
I have it up, I'm just reading through them.
Hey, nice refresher in SELinux while checking out Kitty. There you go, see? I'm glad I picked the SELinux one to go through. I almost did the container one instead, but…
SE managed versus RestoreCon. AU search. Yeah, I think that's right. So… so, uh, so for Grant's question here.
So, uh, RestoreCon is going to apply. policies to the files.
And SE Manage is going to change the policy.
So, what we just did back there was we added a policy using the SEManage command.
And then we… yep, sorry.
Right. I've used RestoreCon to change policies or apply.
or I've used RestoreCon to do what you. the change you made with SE Manage.
You might be thinking about CHCon. There's a command called chcon.
And you definitely don't want to use that one, because that one doesn't, uh, persist across reboots.
So I always tell my students, never use CHCON unless you're just troubleshooting real quick.
No, I think it's…
I have heard of AU Search, too. I think I've used it a long time ago as well. I just find that SC Alert tool to be so handy. Like, it basically gives you, in plain English.
Yeah.
what's wrong, what needs to fix, and the AU search tool, from my memory, which this is going way back, is much more, um… I don't know, not as nice.
From what I remember.
Oh, no, it isn't. I think… from what I've seen, SE manages probably an interface on top of other things.
for, uh, creature comforts. But, like, you had to install SEManage.
Um, I've found… when you have a large fleet of servers.
dare I say, living off the land, what's already installed, as opposed to installing new things.
tends to be a little… better.
Totally. Yep. Totally, totally. And I see there's some discussion in the chat about that read-write context versus the… read-only context, and it just depends, right? It just depends on what your web server is doing. You know, I don't think there's a wrong…
Right or wrong answer, just… I think by default, you probably don't want to read right… you probably want to limit write access as much as possible, but hey, if your web server is doing something where it needs to write files, then that's what it needs to do.
Gotta be able to serve the users.
All right, well, let's, uh, we're powering through this here, uh, pretty good. So… So, how does it work? Uh, and this is where I, you know, my script has basically ended now, so we're kind of going off-script for the rest of this, and just gonna…
medal about. So, the first thing you have to do to use this system.
or to, you know, really, like, to create a demonstration with this, is you have to create a, what I call a command file.
And this is just a, um… you know, some file with a list of all of the commands.
that you want to run in your presentation. And, uh, I… I did a very, you know, basic, bare-bones kind of syntax.
For these files. So basically, if you start your line with a… Um, hashtag and a carrot.
or pound sign and caret, or whatever you want to call that.
then it will be a section header. So you probably saw it as I was going through the demos.
Those numbered sections were, like, surrounded in, uh, hash symbols.
Um, so those are kind of, like, pretty printed, I guess you would say.
Also, if you do a… if you start a line with a hashtag and then a exclamation point.
That will be a speaker note, which goes in my speaker notes in the controller window, not in the presentation window.
And then everything else is basically just a regular command.
that is sent to the prompt as if you typed it by hand.
And so, when I was in VIM… actually, I wonder if I could just show that. That might just be better if I could just show that. One second.
It's not working. There we go. Uh, demo, I think I call it demo.sh, yeah.
So if I can find that where… okay, so here. So this is when I was in VIM, okay? So I open up VIM.
And then the next time I hit my keyboard shortcut, the first thing it types is I.
to go into insert mode into VIM. And then it types all these characters in insert mode.
And I have a mapping… I don't know how to send a scale… I can send escape, but it's not… it's more complicated.
So I have a mapping in my VIM config to where if you push JJ.
really fast together, and insert mode, it is the same as hitting escape.
So, that's kind of my hack there. And so, basically, even in VIM, I was able to use… the same, uh, method, you know, here.
And then, once again, I hit my next button, my button again, and then it sent a cola WQ to save and quit.
out of them.
And I'm sorry, what's the advantage of… having JJ in there instead of an escape?
You can't do escape.
Yeah. I would have to write more code. And my, uh, my script. If I wanted to have it conditionally send escape or something like that.
Like, you know, basically what I'd have to do is I'd have to come up with another syntax like this, like, maybe, like, okay, uh, you know.
Uh, hashtag, uh, question mark. sends an escape character or something, you know, and I just, I didn't feel like doing that, so I just did a quick little… mapping that made JJ, uh, press escape.
So…
Hey, Sean, quick question. Are you annotating with Kitty? Are you annotating with Zoom?
No, neither. This is called… grommet.
Oh, okay.
Uh, grommet MPX. Yeah, yeah, it doesn't work that great, but it does… I can do a single red line, so… I don't recommend this. If you use KDE, it has a better thing built in. But hey, I mean, I don't want to talk bad about it. It's an open source project, it's been around a long time.
It just didn't make the whale-in transition very gracefully. That's all. I don't want to talk bad about open source.
a lot of things haven't, so that's not a… that's not a big deal.
software. Right, exactly, so… Yep. Okay, and so we just saw my command file there. This is just some real basic syntax. I didn't put much thought into it.
And then, what happens is, so I have this keyboard shortcut. For me, it's Ctrl-Shift-P.
for presentation, because I'm clever. Um, and what it does is it's gonna run launch.
And then, uh… it's gonna launch in the same… directory as the shell is being launched from.
the shell… whatever I'm currently in. And it's gonna launch a window.
with the title of controller, okay? And this is important, this title is important later, because.
We'll see later. And then what it does in that window is it runs shell, and it runs a kittydemo.sh script.
Uh, and the Kitty demo SH script is kind of where all of my logic is about which command, like.
The Kitty demo SH script has the logic to, like.
read, you know, the next line from the command file, and then, oh, okay, if it's a section header, do this. If it's a… speaker note, do that. If it's a regular thing, you know, print it to the… so the kittydemo.sh script that I came up with has all that kind of logic.
And then… Um, yeah, I think I just said all that.
And then once the kittydemo.sh script is running, it launches a new terminal named Presentation. So this terminal, you are looking at right now.
was launched by the script. And… uh… And the script is not running in this window, right? So a lot of these… if you Google out there for, like, command line demonstration programs, what a lot of them do is just a really basic, like, while true loop.
And they just loop, and they take over your shell.
So, like, your whole shell is running some while loop.
You know what I mean? And you can hit, like, a button.
and make it, like, execute the next command or whatever, but you can't, like, do ad hoc commands, right? And that's, like, the big limitation.
And so, what's kind of smart about this. is the Kitty Demo SH is actually running here.
Which is, you know, which is my window off-screen.
And so… and so… Um, the Kiddie Demo SH is running here, and so this window is taken up, right? Like, I can't interact at all.
With this window, because it's basically doing that while loop.
thing, right? But then what it's doing is it's sitting there, and it's waiting.
This is just, like, waiting. Uh, for me to hit enter in here, and as soon as I hit enter, it parses the next line in the command file.
and sends it to the presentation window, which is the one you're looking at right now.
in the controller window? for the presentation window.
Uh, okay, I'll go next.
Did I say the wrong thing? I have… I had very little sleep last night.
I'm asking. when you're entering.
I have excuses for days, Grant. You can't catch me, okay?
No, I'm asking a question, trying to understand. which terminal do you hit enter in to cause it to go.
forward.
Yeah, exactly, and this is the next slide. So, look at this… look at this mapping right here. Oh, man, that's a very loop-de-loop one.
Look at this mapping… oh, I wonder if I can do it. Oh, looky there! Okay, okay.
So, so this mapping right here, what it does, I can hit this F1.
from any kitty, any kitty window that I'm focused in, I hit this.
And what my F1 mapping does is it sends a key, in this case, the key is enter.
to the window where the title is controller. Okay? And so what this does means I can keep my focus.
In the presentation window, I hit F1, and Kitty sends an enter press.
to the controller window, which then sends… The next command to the presentation.
How about that? How about that, huh? I know, I know!
That's like…
Alright, I'm out of slides, y'all. And I literally did these two, like, you know, 5 seconds before Gary called my name, so… So, uh, I… so there's a couple more, like, hacks that I want to tell you about that I think are somewhat interesting, maybe.
So, um, let's look at the kiddie demo script. So where do I have it? I have it in… Um… hold on, locate… idemo.sh.
Local?
Yep, locale, that's what I meant. Uh… Okay, I am very organized, this one.
Okay, so this is the kiddie demo, and this is where you load the command file. I haven't gotten.
more clever than that. So every time I want to do a new demo, I have to come in here and change this line.
That way, it looks at a different, uh, command file.
I give my command files the .sh suffix, but that's just to get a little bit of syntax highlighting on the.
on the shell commands, so it's not… nothing really special.
Um, but here is some hacky stuff that I did, okay? So… Um, you'll notice that… Those section headers and things.
We're just kind of appearing, uh… with no command generating them, right? They were just kind of poofing into existence as I was going.
And I really struggled with that part, right? Because it's like, how do I get… I don't want to do, like, an echo command, or, like, a printf, because the thing is, if you're printing.
a big, uh, you know, thing, like I do in the beginning.
Uh, the echo command is gonna be, like, as long as the actual output, right? And it's gonna be taking up the whole screen, it's gonna look really ugly.
And so I really struggled with how do I do this.
And so, I came up with this hack. Um… Okay, here. So what I do is I figure out… I list all of the TTY.
The TTYs, okay, the pseudo-terminals, if you want to call it that way.
The pseudo-terminal devices. Then, I launched the presentation window, right? Because the presentation window spawns a new pseudo-terminal, PTS device.
And then, I wait for 2 seconds, and then I look… I list out all of the TTYs again.
And I figure if there's a new one, that's gotta be the kitty window that just spawned.
Okay? And so now, I know which pseudo-terminal device.
Uh, Kitty is running on, so can anybody guess what happens next?
Ooh, I stumped ya. Okay, alright, I stumped ya. Okay, well, hey, we just… We just, uh, standard out right into that thing.
We just literally, uh, let me see if I can find it… TTYsAfter… oh, this one.
Let me see if I can figure out where we're doing it.
So, right here, uh, right here. Uh, right here. Uh… I think this is it. Um, yeah, this might be it.
So, basically, I'm just redirecting those section headers straight into the pseudo-terminal device.
Using straight-up input reader, or output redirection. And so, that's how they just, like, appear like that, without needing to run the echo command or anything. And I thought that was very clever.
But, it gets worse, or better, depending on how you feel.
Um, I could not get Newline to work. And, like, or well, that's not true.
I could get it to work, but I couldn't get it to work when I was SSH'd in.
to a server. And so what I mean by new line is, like.
You notice how for the section headers, I print, like, a row of pound signs.
And then I go down to the next line, and I do some more text.
I couldn't get that, like, move down to the next line to work when I was doing this weird input redirection.
into the pseudo-terminal device while I was SSH'd into a server.
So what I did was I had Gemini. Uh, that's my preferred coding assistant ID, uh, thing right now. I had Jim and I come up with this really hacky.
solution here, where it basically figures out how wide the terminal is.
Uh, using, like, uh… what was that command that I saw?
Anyway, let's not worry about it. But it figures out how wide the terminal is, it figures out how long the content is that I'm printing to the line.
And then it pads the whole rest. with spaces. And so that way, the next character that I actually want to print.
naturally falls. On the next line down. So this… yeah, and that's just because I couldn't get the new lines to work.
And so there's probably some bugs here, like, for example, if the line that you're printing.
is longer than… the terminal width or something, I'm sure there's a bug there somewhere. I haven't ran into it yet, so I think it's… wonderful and great. But this is what I had to do, because I couldn't get new lines to work when I was redirecting my output to these pseudo-terminal.
while I was SSH into a server.
Did you, by chance, try terminal control sequences, like, to move cursor down one line?
and move cursor to left column.
No, I didn't know, I don't know anything about that. You can, you can, uh, school me out, uh, if you want to about that.
Or if you have a link or something, I'd read that, because, yeah, this is definitely a hack.
Uh, let's just say that the… ANSI control sequences most people know about are, like, 5% of what's available.
Sounds about right. Okay, uh, what else? Anything else interesting? Anything else y'all curious about with this? I think that's pretty much… I think that's pretty much it, to be honest.
This is Stan. My question is, have you filed any bug reports about stuff you found that didn't work.
the way you expected.
Uh… Well, I found some bugs in Kitty, but I didn't bother to file any reports, no.
Um… And, like, the script and everything is… What's that?
Be sure… feature request? Maybe even a feature request?
You've enjoyed figuring out the workarounds too much, that's your problem.
No, I mean, Kitty's very full-featured. Uh… So, I haven't really. Um… You know, one thing I did do, uh, which I thought I'm…
Um, you know what I did do, and this is probably going to be embarrassing, but you know what I did do? I found a bug… well, not a bug, but I did a feature request for a present term.
Uh, which is written in Rust. And he hasn't looked at it yet. The maintainer.
But I put in this issue asking for a feature to basically do relative paths for custom V2 icons.
And I felt bad, because I put this in, and I'm like, oh, now this poor guy's gonna have to, like, work on my stupid feature request.
And so what I did was I used Gemini CLI.
to do a… And I just did this in, like, an hour, or maybe, like, an hour and a half, I don't remember.
Um, and I've never written a line of Rust.
in my life, okay? But using Gemini CLI, I was able to produce a working.
Uh, merge request? I have no idea if the code quality's any good or not.
But it does work, and I kind of… I'm hoping that I'm not, like, AI slopping this guy, so, like.
I actually put a significant amount of work into describing the implementation, because I do know what it's doing, I just don't know if the… it's idiomatic Rust.
And also, I came up with an alternative implementation.
Here, um, that doesn't stray as far from… his original work, but it does have all of these nested if statements that I don't like, so… Anyway, that was interesting. If you're talking about bug requests, or bug reports and stuff, I did this, which I thought was interesting, but it's 100% vibe-coded. I still know nothing about Rust.
In my opinion, you had a legitimate request. you came up with a couple of solutions.
As long as you say, hey, this AI helped me generate this, it works for me.
I… that, to me, is not slop.
Yeah, that's why I started the MR. I was, sorry, I don't know nothing about Rust, this is 100% vibe-coded.
And then at the bottom, I said, if he doesn't want to do it, that's okay. Like, 100% okay if he doesn't want to merge it, so… We'll see if he looks at it.
But, you know, I talked about a skinima earlier, and a skinima's really cool because, uh, you can play.
terminal recordings, but they're not videos. Uh, so if I pause this, I can copy and paste this text.
Because it's not really a video, it's like a… It's a, you know, something cooler than that. So you can copy and paste this text out of here, makes it really neat.
So… and then what I use to convert the recordings to a GIF is called this AGG thing.
Askinima GIF Generator. Um, yeah. Maybe I am gonna have to submit a bug request, a bug report about that one that I got today, though, when I was screen sharing and my images wouldn't load.
Maybe that does need to be a bug report.
do a DF, make sure you didn't fill your disc.
Right, well, yeah, that's a good point.
That ISO you were downloading to watch something later tonight might have filtered.
Uh, used… oh, temp? Oh. No, looks like I'm good.
That's a good thought, though. Uh, oh, I see some comments here in the chat.
Yeah, terminal control sequences, that is a rabbit hole, and… there's some sharp corners or edges, and cliffs, and…
Oh, I see.
Um, most people like to poo-poo X-term. My preferred terminal, but it has.
double high and double width. plants as well.
Nice. What about subscripts and superscripts, though?
I don't know, I would have to go look.
And if I'm doing everything in Dublin, I do single height at the top line, that would be a superscript, wouldn't it?
Almost.
And it might even be readable.
This is interesting. Okay, um, what was I doing?
Yeah.
Did…
Oh, we want to see… we wanted to see, um… A couple of times, are we still got on time. I could show that other one that I was talking about earlier.
Um, I had a question earlier on… Do you know why… HTTPD gave the demo, or the test page instead of, like, a 500 server error.
when SELinux was blocking the desired access to the file.
That's a good question. I actually have no idea about that. Do you know why?
No, I was asking, because I would have… expected a 500 series.
Yeah, I'm not sure if they're… Yeah. I bet it has something to do with the… with the kind of, um…
generic, we're gonna be nice to you config that Red Hat provides.
No, I think it's something to do with the, uh, we'll say… expedient, uh, modification to the httpd.conf.
Because if you look down here. the var HTML directory is still… Uh, listed, so I wonder if it wasn't serving something out of this directory instead, or something?
Don't know.
Yeah. I mean, I guess we could ask… Yeah. I think it has something to do with that, I just didn't bother.
config Apache correctly. That's my hunch.
Fair enough. Obviously, it was correct enough for what you needed.
Yeah, and my class is not about configuring Apache, right? It's about SELinux, so I was just trying to do the fastest thing I can.
get the SELinux stuff to go. Okay, uh, oh, we wanted to see the other… okay, so I have another version of this.
that I haven't used in a while, so I'm gonna be a little bit rusty.
Um, and it can do… Most of the things that the kiddie one can do, the only thing is, it doesn't work in TUIs.
like VIM, or, like, Parted, or some of these other terminal user interfaces.
Because it relies on Bash, and specifically Readline. Uh, to work.
So, if I go to… Let's do Vim, Etsyprofile.d.
And I'll do… it's in, uh… So, I kind of, you know, in order for it to work with.
like, when you escalate to root, right, I want everything to still work when I escalate to root, or if I switch to a different user.
So what I did was I added a bunch of function, or a few functions.
to the Etsyprofile.d. directory, so that way every user has these, so when I switch to root.
my key bindings for, like. display the next command still work.
That's why my functions are in here. And, um… Let me see if I can find… so let's start at the bottom.
So, what I do here is I bind using Bash or Readline, or whatever this is.
CTRL-X-N. to next command. And if we find… Uh, next command… Here it is.
Um, basically… It is going to print the next command.
Essentially. And… And, uh, the way it does… and then also.
Um, what is the next command, right? So, the thing is, by doing it this way.
I don't have some kind of… thing running in memory, keeping track of whatever the next command is.
Because what if you run command 1 through 5.
Then switch to a different user to run commands 6 through 10.
Right? So for that, I have, like, a state file.
Uh, that I do in the temp directory, and that's where I store, like, hey, the next command to run is line 14, or whatever, you know?
Um, and… By the same token.
I have this config file in the Etsy demonstrations directory.
that says what the command file is. So, basically, any user can read that.
And any user can write to the state file, because it's just in the temp directory.
And then any user has that CTRL-X in because it's in the profile.d directory.
And so, uh, let's see, can we do this?
Okay, here we go. So, this demonstration, it's an older version of kind of what I was doing, so it's not going to look as pretty.
But… it… uh, goes over how to allow HTTPD to send emails, uh, by modifying the SELinux Boolean.
Um, I don't think anybody really cares about that, but you can see that it's working the same way. I'm hitting CTRL-XN.
It's putting the things on my front.
is putting the things on the ground.
What was that? Go ahead.
You broke up. It's putting things, and then you paused for… A little bit.
Oh. Sorry about that. So yeah, Ctrl-X-N is putting the next command on my prompt.
And it's behaving just like the way the kiddie version did.
Um, by hitting CTRL-X-N, it's putting the next version on the prompt.
And then… uh, but this is a bit easier, is because… As far as the, uh, headers and stuff go, it's easier, because I can just echo that out.
I don't have to do that weird pseudo-terminal stuff, I can just… echo it out, because when I run CTRL-X in, it's actually running a script in this terminal.
that you… that you're looking… like, on this server, right?
Um, whereas with the kiddie version. I'm running these presentation commands on my desktop.
Right? And it's passing… commands from terminal to terminal.
And it just so happens that one of those terminals is SSH'd into a server, right?
But with this method, I need to put all the presentation stuff actually on the server that I'm going to be doing the presentation from. So if I SSH to a different server.
Obviously, my commands aren't gonna work because my state file, my command file, everything is on this one… this one box. So there's limitations.
Yeah. and you're doing it inside the shell, not… terminal, which is why.
you can't script things inside of VIM or what have you.
Right, because as soon as I open a TUI like VIM, my Ctrl-X in is gonna do something in VIP. It's not gonna do… It's not going to trigger that function.
is leveraging Readline. as part of BASH.
that bash function.
Yeah, exactly. I don't want to go through this whole demo, I'm a little bit tired, but, um… If you care about… if you like this and you want to try it out, I have it up on GitHub.
So, the way that I did this is the main branch.
is using the kitty. Uh, but if you scroll all the way to the bottom of my README here, you'll see that I have the section for other implementations.
So, the main branch is the kiddie one, and this read line multi-user.
is the one that I just described for, uh, on the server there.
And so, if you go to this branch. you'll see that it has, um… the files for that.
and a README specific for this version of it, and I'm pretty sure it's up to date, and I'm pretty sure all this is accurate, so… Should be good. And for this one, I even supplied an Ansible playbook.
Because it's kind of annoying to deploy, like, the… config file over here, and create the op directory, and do, you know, do all this in… deploy the functions over here and all that. It's kind of a…
annoying to set it all up, so for expediency, I created an Ansible playbook to make that easier.
So if you do want to go with this one, there's an Ansible playbook that'll easily deploy it for you.
Or you can… I guess you can do all that manually if you wanted to.
So… Yeah, so that's… I guess I'll put the link in the chat.
I already have…
Oh, thank you. Um, okay. I think that's pretty much it. I think I'm pretty much, uh, tapped out, unless there's any more questions.
I know this is kind of a short one, but it was last minute.
Thank you.
It's for me. Excellent.
not related to your presentation, but I'm curious. If any of your students.
how they receive Apache, working with it. Then I ask, under the pretense, knowing that both IBM and Oracle.
have basically recompiles of Apache that they ship with their products.
So I work with what I call AHS, Apache HTTP Server, or IHS.
IBM HTTP server, or OHS, Oracle HTTP server. and Apache knowledge comes in extremely handy.
For all of women.
Yeah, I did that too. When I worked for the DoD, they had iPlanet, which was the… which was, back then, uh, Oracle version of Apache, I think.
But I don't really know how the students, uh, get… get on with Apache, because, uh.
like I said, it's not something that I really cover in my class specifically, it's just kind of a tool… to explore other things.
Yeah.
Just out of curiosity, in your, uh… in your experience of doing presentations.
At what point did you suddenly start going. Damn, there has to be a way of not fumble-fingering my way through this. Was there a… A particular situation that got you looking.
into finding a tool like this?
I think it was just, like, my exhaustion, right? Like… Because if you think about it, that demo that I went through for SELinux.
That's a lot of steps, right? There's a lot of commands that I ran there.
Mm-hmm.
And typically, in one class, I'll do 4 or 5 demos. Like, they won't all be that long.
But I'll do 4 or 5 demos per class.
And memorizing that, or at least. Or even just typing it in for my notes or anything, it's just exhausting, you know, compared to… Hit F1, see what shows up on my prompt, and talk about it, you know? Like, that's just… it's so much easier on me, and it just… I'm just way less drained after class using this.
Okay, yeah, and it also helps with typos.
Yeah, I also see significant value in the speaker.
portion. Um, something you might want to research, kind of what you're doing with.
Kitty and remote control. There's a tool called XDoTool.
that you can use to send commands, mouse, strings of text, you name it.
Um, into other windows. and last job.
when ReedLyden changed licensing. And employer was not happy with the new license, they.
ripped it out and put in an inferior replacement.
Um, I ended up having two windows, kind of like you have presentation and control.
And I typed my commands… with short abbreviations, what have you, in the control window.
And it actually used XDOT tool. to type longer, more full things in.
what would be your presentation-like window? And that is… anything that speaks X11.
Yep, I've been… I've been on Wayland for… for quite a while now, though.
myself.
I don't know if it supports Wayland or not, um… I still had to have a lot of Solaris and AIX stuff, which… Wayland and those, no. Not happening, so I am… comfortably still in the X11 world.
Yeah, I've been playing around with, uh, MIRI. N-I-R-I.
It's a new, uh, it's the new hotness right now, because it's a… you know, you've probably seen, if you've been around the Linux world long enough, you've probably seen, uh, tiling window managers.
Where every time you open up a new program, it takes all the available space on your screen, right?
So, like, if you open up a terminal, it's gonna be maximized.
And then if you open up a second terminal, the first one's going to shrink to half the screen, and the new terminal's gonna take half the screen.
And then, you know, as you keep opening more and more applications, they all kind of… Uh, take a smaller and smaller portion of the screen.
And so, I guess… what can happen there is.
You know, once you get about 3, maybe 4 applications open, it really starts to get cluttered on your screen, everything starts to get very small.
So, Neary is what's called a scrolling window manager, so it does behave.
a little bit like a tiling window manager, but every time you open a new window, let's say your screen is full with one application.
If you open a new window, it's gonna open it to the right, so it's gonna scroll your view.
And now the new window that you just opened is going to be in your view, and if you want to see the window you were just looking at, you need to scroll.
to the left. And there's a bunch of keyboard shortcuts to make, like, windows, like.
Like, you can, like, say, okay, I want this window to take one-third of the width.
And I want this window to take 2 thirds of the width, or, you know, whatever. There's a bunch of keyboard shortcuts like that, so you can kind of determine.
how much width each application gets, and how far it scrolls, and stuff like that.
But yeah, it's kind of… it's kind of unique… Uh, I just, I don't know, I don't think it's for me, but I'm gonna give it a… I'm gonna give it a few more days of playing around with.
And uh… see what I feel like. But so far, I'm kind of thinking.
I might be happier just on a regular tiling window manager, but it's been interesting to play around with, for sure. It's called… Neary, N-I-R-I.
November, India, Romeo, India?
That is correct, I just put the link in the chat, too.
a slightly near off-topic for a second, just to… give Sean a chance to grab a drink of water and catch his breath.
Uh, uh, anyone who… is here at our meetings for the first time, or even just.
It's been a long time, or some period of time since you've joined our meetings.
just curious, I should have asked this earlier. Uh, what brought you here tonight? Was it the topic? Was it, uh… Uh, you know, oh yeah, I've been meaning to come, or just, you know.
what, uh, do you see it advertised at Meetup, or on our calendar, or… Why'd you come tonight?
Were you told to get out of the house? Question mark?
I don't know, I'm kind of a, uh…
lug jumper, I guess.
As you call it.
A Lugite, uh, I like that one.
A lot of guys.
lugs…
Have you found… have you found anything, uh… positive about our… the way we do our meetings, or… recommended that we stop doing, or could… Change?
So, let me go through the entire history. So, um…
I'm… I originally, um…
So, I'm originally from…
From, uh, Champaign-Urbana.
I moved to Chicago, and then from Chicago, I moved to Rockford. In Rockford,
I, uh…
joined, uh, RRLug.
And I was with them for about 10 years. They've been around for a long time.
Um…
Um, and then, uh, someone showed up on RRLog saying that they'd been…
at St. Louis meetings.
Which was interesting, because my brother…
And one of my best friends live in St. Louis, so I, uh, attended those meetings.
So I… so I started attending your other meetings, and then…
I guess that's how I got here, so…
Thank you.
Glad to have you, thanks for coming.
I see someone in the chat post his theory.
Always good to… to get that experience from other… other groups, backgrounds, and places, so…
Um, Yalter actually is, like, really active. in the Matrix channel, so if you have, like, any questions at all.
uh, anyone on the team, including Yalter. But, like, responds back within… I want to say, like, 30 minutes.
Depending upon your time zone. Uh, like, they pretty much work on that full-time, so if you need any help.
Uh, yeah, their Matrix channel is very, very, very active.
He said that was in the chat?
Yeah, Sean put it there.
There it is, yep, right at the end.
Oh, Neary, yeah. I'll, uh, also, uh.
compliment. Sean. We, we… You know, we thought we had, uh, uh… presentation lined up, and it kind of fell through a week ago.
almost a week ago, and uh… So we started looking for an alternative, kind of thought we were getting close to.
lining something up there, but uh… Uh, understandably, that didn't wind up.
Coming… coming off on time, or in a quick… quick enough fashion. Uh… certainly no fault of the, uh, speaker.
Uh, we, we, uh… We were advertising for a number of days that the talk would be, uh.
Uh, the NICS OS, uh, distro. And the Knicks, uh, um… Packaging manager?
And as I say, we just… That was kind of a… of a… near to last minute substitution that we tried to put together, and we just didn't have time to.
To get that put together. Certainly more our fault than… potential speakers won't. So, uh… Miraculously, yesterday, Sean, uh, said, okay, I can… I can, uh, pull this together, uh, quickly enough and put this, uh, put the presentation together for tonight, so…
And I didn't mention that at the beginning, because I didn't want.
people thinking during the presentation of, oh, is this a last minute?
Uh, gee, for a last minute, boy, it really came off nicely, Sean. So, uh, thank you.
Hey, thanks, yeah, I appreciate that. Yeah, I did use NixOS for a few months there, and I really like the ideas and everything behind it.
But, man, that… syntax for that programming language.
It just really revs me the wrong way. Every time I look at it, I feel like I'm looking at, like, line noise or something, like, it's like, I don't know, like, have you ever looked at a Perl program or something like that? Like, to me.
the next programming language is more similar to Perl than.
than something I would want to use, but…
And actually, we did have a presentation on, uh.
XOS and the Nixo Package Manager. There's back in, uh, 2019, I believe.
Uh, but that was when we were still just very sporadically doing the recordings of the meetings.
And, uh, so we do not. have a recording, or at least we don't have it archived.
of that meeting, and uh… We don't even have the listing of the… slide deck, or the PDF, or anything like that.
Um, so, uh, uh… But yeah, this would have been a new presentation.
on a subject not talked about for 6 years, 7 years.
Yeah, I… I agree. Mine…
I think Nick's OS is my white whale.
I… if I can, uh…
Lock that down. I…
It would be amazing to replicate a…
standard image, or…
OS.
Wherever I need it.
That would just be amazing.
Cool, we do hope to have that talk. sometime, hopefully in the near future, next month, the following month, uh… We'll get that worked out, get it back on the schedule, we hope.
Well, I really… what I really liked about Nixle X, you know, the reproducibility, of course, is, like.
Awesome, like you're saying. But, you know. Um, what kind of, uh… was a bit for me to wrap my head around, but I ended up really loving it, was… like, let's say you want…
I don't know, like, jellyfin or something. Like, you want to just install it. All you have to do is basically go into the Nix config and be like.
Jellyfin enable equals true, or something. And it just… you do a rebuild, and now you have it, right? And so, um… And so that's like a double-edged sword.
to Linux people, I think, or at least to me, at least, because it's, like, it's so easy, and it makes trying things out so effortless.
But at the same time, I'm one of these picky nerds who likes to make choices about exactly how software is installed and where it gets put on my disk, and… how it gets configured, and when, you know, when you just do enabled equals true.
you know, somebody else is making all that… all those decisions about the way your system is running.
And the way your system is configured. And so, it's like this trade-off of, like, oh, that's very easy to install stuff just doing enabled equals true.
But at the same time, I… maybe I don't like the way that it is out of the box. And, you know, a lot of times there is configuration options, like, more than just enable true or false. You can do, like, other configs.
But at some level, like, it's gonna be the way the maintainer.
configured it, and you're not going to have, you know, a ton of choice there, so… So, yeah, I don't know what anybody else thinks about that, but it…
Well, that's what… that's what Home Manager's for, right?
Would you… And wouldn't it make it easier to run out of disk space?
Yeah, yeah, yuck.
Yeah, I used Home Manager, too, and that is a rabbit hole. If you, you know, if you're one of these people that can get sucked in a rabbit hole, like configuring EOVM for weeks and weeks on end.
Don't touch Home Manager, because it's like… it's like… it's like, it turns everything into Neovan, just this infinite configuration, uh, uh, maze that you'll never… you'll never get out of.
Moving right along, James Shaw, what… Is there anything you particularly like about the formats of our meetings?
No, no, I mean, it's very structured.
art, which suggests we change?
And, uh,
I mean, that's… that's…
you know, that's, uh, that's good.
you know, a lot of meetings are very unstructured.
But…
Yeah. Well, it's surprising to me is we have so many people show up, and they're there 5 minutes, and then they leave.
I think it's just time.
I don't know, attention span or what?
You know, I have 3 kids.
All teenagers, so it's… it can be tough sometimes.
Oh. one disaster that you didn't expect?
in the next 10 minutes, yeah, understood.
Question, do we want to keep recording, uh, this, or… And recording and go into awful all stuff?
Um…
Well, before you end, I think I heard somebody say earlier they had a question in.
a call for help type thing, but they were going to wait till after the presentation.
Do we want to… on the recording, or off?
Oh.
I think we can keep it on the recording.
Not sure who it was that said they had a question.
I think the red… I think… Randy was talking about helping people.
continue with Windows. Even though it was… machines that, uh, supposedly couldn't do that.
Oh, yeah.
Randy's on.
Yeah.
Wait.
I can talk about it if you like. I realize it's a Lenox group, and most of my… Work is focused on Linux, but I do have customers under Windows.
Um, I've already done this, um. Three times. I've installed.
Windows 11. on one machine was 15 years old.
No, I didn't expect it. But I would say this, when doing it.
I would not install it on a weak CPU machine.
So if you've got an I3, I5, I7. I3 kind of… kind of iffy, but it all depends on… you know, the system overall. Um… I'd say it'll do it.
But if you got Windows 10 on your system.
You download… the ISO for 25H2.
Windows 11 25H2, which just came out. And then you, um… And then you take and you mount it.
I should actually be doing a demonstration, but I can't do a demonstration when I got.
Lenox in front of me. So, um, so I'm going to try and describe it as clear as I can.
So, you download the ISO. You mount it in Windows, and you got Windows 10 there running.
Then you have the setup.exe, which you would run normally.
You're going to right-click on… setup.exe.
and drag it to the desktop. And say, create.
shortcut.
Once you do the create shortcut. you, uh, right-click on the shortcut.
and go to Properties. And this is part… this is the part that is the key.
Um. the whole part that is there, you want to put in quotes.
So, it would have, like. D, colon… slash, um, whatever the directory is, I'll be, like, desktop.
slash… whatever. Um… Actually, they, uh, download would be in download, so it would be slash download.
slash setup.exe. And you want to put that whole part in quotes.
After that… You put a space.
And this is the key, slash… product, P-R-O-D-U-C-T.
space server.
And then you save it. And then you click on the shortcut.
And it will install Windows 11, and the… and one of the things that is a… key here is…
You want to make sure that… the version that you're installing.
that you want to save, obviously you want to save your… your… your applications, you want to save your data, everything.
It has to be exactly the same… system that you're already running.
And if you're not positive. Check to make sure if it's Windows Home.
Then make sure it's Windows Home. If it's Windows Student, then make sure it's Windows Student.
If it's Windows Pro, you need to make sure it's the Windows Pro.
So, verify that in… in… at the beginning.
But then, once you click the, um… setup.exe.
the shortcut. It will take you through the installation of Windows 11 on top of your Windows 10.
And I think you have, like. 30 days, or something like that, maybe 60 days. I don't know what the timeline is.
that if for some reason you want to go back.
the ability to go back. is there. What it does is it takes your Windows 10.
and puts it in a directory called windows.old. And everything that was… there is in that directory.
So you need to make sure you have plenty of space. Um…
One of the things that I liked about doing what I'm doing for.
this gym… As I'm putting a new hard drive in the machine.
128… gigabytes, small hard drive, SSD.
Um, then I install Tiny11. on that hard drive. Boop.
But with a USB stick. Install Tiny 11, uh, it's actually Tiny112311.
Um. Install that.
And the nice thing is, there's no applications… I mean, there's a couple.
there's a couple essential applications, but everything else is gone.
And it's Windows Pro. that is installed.
Um, and that can be installed on any machine.
The nice thing about using the 25H2, because you gotta upgrade… you want to update.
the… Uh, you want to update the…
You need to go through the updates. Well, to get the updates.
If it's too old, it won't do the updates, and it won't bring you to 25H2.
So, running the 25H2… on that now same platform that I just installed.
tiny 11 on. upgrades the entire system to… Windows 11 25H2, the latest and greatest, and then you can let it go through the updates that it would normally do.
And you're up to date to the latest and greatest.
And the nice thing in this case. Because there's none of the crap that goes into the system.
And there is, uh… So people worry about the telemetry.
in the settings, uh, in the… And I'm doing this all from memory, so it's in the… services.
There is a section, uh, it's… Don't know the exact name. Did I write it down on here?
Give me a second. Um… D over here…
Ah, yes. So there is a section in the services… what is that called?
Um… connected user experience and telemetry.
Let me say that again. Under services, there's a… entry for connected.
user experience and telemetry. And all you want to do is disable that.
Now, you may have to disable that for each account that you, um… use on your system. So if you only have one account, then it's fine.
But if you have a second account, then you probably have to do that for that account as well.
Um. So that helps get rid of the telemetry problem.
And the nice thing is… It only requires to gigabytes of memory.
memory to run this. Um, it uses less… It uses less than 30 gigabytes of hard drive space.
And it works. And you're up and running.
That's two solutions. One is that you, over your Windows 10.
Yeah.
Bringing the 25H2 down and doing what I said.
And then, if you wanted a fresh install of.
Windows 11. Tiny 11 allows you to do it, and the nice thing is.
You can do it without all those applications that nobody really uses or wants anyway.
And so, if you want one, I mean, you use the Microsoft Store.
program that's there. And you, um, go get your application.
You know, that, you know, if you want, for example, photos, eh.
to go in there and download. and install the photos through the Microsoft Store application.
So you can install exactly what you want, rather than be hounded with a bunch of junk.
And so… like I say, to do two different ways to do it.
And get what you want.
Of course, there's one gotcha. If your old system was BIOS.
You can't upgrade. And SBUFI.
Um. I can't say that is false or not, and the reason why I say that is because I installed it on a.
15-year-old system. At 15 years old, I do not think there was a UFI out there.
Uh, did you install from scratch, or do an upgrade?
I did it from scratch. Tiny 11.
Okay, it may have some kind of shim to fake it, but if you have a system that is BIOS.
And you want to upgrade it. You can't, because you have to have a Eufy.
You can change it to Eufy, but you run a 70% or 80% chance of breaking the disk.
is an actual break where you just have to blow away and completely start from scratch?
Yeah, I…
Say that again?
Is it actually bricked, or is it just basically corrupted and you have to start.
Oh, it's bricked as far as Windows is concerned.
everything from ground zero.
You can't do any… you can't do any more Windows installs on it if it's brick, but… If you want… if you… needed to recover it.
start over, like you said, and build a Windows 11 drive, and then you can at least copy all your data across from your old one with, uh.
a Linux… a Linux boot. USB drive.
So it's not hardware damage, it's just the… partition or file system gets wound so tight it doesn't know what to do with it and gives up.
Right. Uh, you… and, you know, by brick, I mean it won't boot, and you can't… do anything with the drive from.
Yeah, you would… you would have to wipe the drive.
a Microsoft tool.
Fair enough.
No, you put another drive in, do your install on it, and then you can copy, you know.
uh, boots this rescue or something, you can copy the data across that you want to get off the old one.
Oh, I see, you're talking about re… um, getting the old data, yeah.
Right. But you… but you… but you won't have applications.
That makes sense.
it just… I'm happy.
Yeah.
But there is a way to… to use your old system. I mean, I've got 3 customers right now that have applications that they don't want to have to reinstall.
And now that I know that I can upgrade them to Windows 11.
when that time comes. Um.
Yeah, no, what I'm saying is you might want to check and make sure that they're.
it's doable.
Our boot is configured, Eufy.
Yeah, I… on these machines, I don't think that's a problem. I think their i7… They say, well, I think one may be an i5 or an i7, but otherwise your i7 machines that are… and they're not.
bat so old. like the one that I did do that was I-7.
But… but… But if you did, man, you could get Windows 10 running on a Pentium Pro.
uh, chances of migraine to Windows 11 is not that good.
Yeah, when I wouldn't even attempt it on a Pentium Pro, to be honest.
It's too old. As a matter of fact, one of the machines at the gym where I'm doing these upgrades.
Um, it is a dual… core dual machine. It adds 8GB of memory in it, but it doesn't want to boot.
my, uh, USB stick. And since it doesn't want to boot my USB stick, um… It's machine will be replaced. That doesn't mean I can't find another, um.
Yeah, that, uh…
method of creating my USB and doing the install, but… Um, and I took the hard drive out, like I said, and put a SSD in there.
Um, to do the install, and it did not want to boot on the… on the USB stick.
Yeah, uh, that may be a case where the BIOS cannot do a Eufy boot.
That's what I would suspect.
Yeah, I did not see the UEFI in there, and so… Um, that's a good possibility.
Don't know, because the USBs that I have, um… is supposed to be able to boot either way, according to the instructions.
But it does have the UFI in it, and so…
Yeah, but if the motherboard doesn't support Eufy windows won't boot, period.
on an upgrade like that.
Right, well, I mean, but I'm not, uh… Yeah, I mean, it's a clean install in this case, and it still won't.
It won't read the, um… won't read the, uh, USB.
I'm using Ventoy for the USB, but that doesn't mean that if I did it a different way.
it wouldn't boot, but I haven't tried it, and uh… at the moment.
It was probably also chains.
The machine will get replaced, and that's… that's… that's the…
Yeah, if you're… on machines that are 10, 15 plus years old.
you probably want to replace them for multiple reasons anyway.
you've gotten a very good service life out of them.
I wouldn't disagree at all. I agree. in the case where I did it on this laptop that was 15 years old.
Actually, it surprised because it was a gaming machine, and um… I'm thinking, okay, let me see if I can get this to work, and… It did.
It did.
Yeah, there's… I'd say most techies have done something questionable.
Just to see if we could do it or not.
And then summarily go, I'm never doing that again.
Yeah.
Yeah, the other option, too, that I've done in that is booting with, um… Windows Server Standard 2025.
And actually installed that, which will look exactly like Windows 11.
Except that it has the server function in it, and all you have to do is disable the… The screen that comes up for setting up the… it's the.
Windows Server platform or dashboard, and you can disable that so it doesn't start.
And basically, it looks and runs exactly like Windows 11.
Nobody knows the difference. And there's probably very few programs that won't run, but for the most part, for the average user.
it'll work, too. And it avoids all of the… requirements for Windows 11.
And if you want to get smart. uh, take the Microsoft Store off the taskbar and just drop in Libra Office and Thunderbird, and.
a decent browser, and everybody will be happy.
I don't disagree.
I received… this is Stan, I received a text today from a… relatively new user.
It went through the install process with Thumbripe. Uh, the first two times in the scene did not even see the thumb drive.
Third time he went through. And for some reason.
It started, and he was able to do the install.
Yeah, one of the things that I'm gonna do is, um.
Uh, because the machine's gonna be taken out of service, I'm gonna bring that machine home.
And it'll give me an opportunity to, uh, experiment with that machine, try and figure out why.
I can't get it to, um, boot. And, you know, I'm gonna try different things, but, um… You know, when everybody else says, it can't be done.
I… I can do it. And I've done it.
So, um, that doesn't mean that, um… I'll be successful on this one.
But I'm gonna try.
So that's my… so that's my quick solution to people who.
want to stay with their windows. for whatever the reason is, and it may be because of applications, more than… and usually.
for business reasons, but… I've got a customer who does genealogy.
And he's, like, really, really… that's all he does, is genealogy, over and over and over.
And he doesn't want to have to start over on a new machine. I helped him buy that machine, you know, when he bought it.
Gosh, 7 or 8 years ago. He's gotten a lot of use out of that machine, and… I don't think he wants to, you know… We do all of that.
And copy the data over, so… Um, when I found out that I could… re… or upgrade the machine to Windows.
11 without having to lose anything and buy a new machine or whatever.
Um, he was pretty happy. I haven't done it yet, but we will do it eventually.
you know. Okay.
I've got a question. You got Ohio like this, he's doing the genealogy, he's probably using… I'm in a browser, of course, but… one or two apps that… That he uses for the genealogy.
What's Windows 7 gonna get him?
Well, first of all, he's using more than. one or two apps, I can tell you that.
Okay.
Um, because he's also using special photography. apps that is a Windows app.
And, uh… And with each of those pitchers, he… writes in detailed information about the genealogy of whatever those pictures represent.
I know that there's at least 3… applications and maybe more that he's using.
I'm not saying that he couldn't use a… a Linux genealogy program? Well, I don't think he wants to change.
from what he's already been doing for years. And I can't blame them.
That makes sense.
I can't blame them. You know, it's like, I've got two customers that do accounting.
Um, I mean… whether it's, uh, usually it's business accounting, but it's… accounting that they… do day in and day out, and they've set up their machines. I helped both guys set up their machines.
with, you know, with their, um, stuff, and then they did the installs of their applications.
And, you know, they don't want to have to redo that over.
I can't blame them. You know, they just want to keep doing… what they need to do, and that is accounting.
And so that's what I will help them. continue to do, using the same machine. And both of those machines are i7s as well.
Yeah, I'm not… I'm not advocating switching. you know, if you've got something like that.
the apps were probably not available on Linux, so that's kind of a moot point.
Yes.
Uh, but what does Windows 11. get them versus Windows 10. I assume they're using now.
Uh, the only thing that Windows 11 will get them is, uh, the consistency of updates, and sure, they can get updates for Windows 10.
for another year without having to do much of anything, but… Um, at some point, they'll still need to upgrade, and um… I have that option now, and I know how to do that, as I described.
All right.
I was thinking about panics.
So… I mean, if it was me, like, I'm, you know, like me, I'm using Linux, and that's what I try to help my customers use.
And I've got customers that don't have applications. you know, specialized applications, and I set them up with Linux.
They don't have to worry about any of that crap.
Yeah, because… I mean, I… I'm just… this is all… for me, this is personal.
I retired a few years ago when my wife started getting sick, and, you know, one of those deals.
And, uh, so I don't… I don't do much professional software anymore.
Yeah, I understand.
Uh, and… you know, I've got one machine on my desk that's… It's running Ubuntu 18.
Shows you how old that operating system is. But I'm gonna keep it, because the bloody thing does some things much better than the new one.
So I've got a 24 on one side and an 18 on the other, and I've got a SUSI.
that I… that Lee helped me build here a few weeks ago.
And I'm gonna switch it in with a… new KVM switch one of these days when I get around it. I can never stop putting brakes on my trucks.
you know, long enough to buy this thing.
I move that, uh, uh, that he keeps putting brakes on his truck. Please.
Well, that's what I'm looking for now, I'm done.
Yeah, put the brakes on there first.
Keep the vehicles, uh, updated.
No, no, no, no, no, no, we're not doing that.
And no Fred Flintstone breaks.
Yeah, Steve, rather than a KVM switch. Why not use X2Go?
or Ramina. Functionally, you get the same thing.
without the hardware.
Well, what I've been doing sometimes is, uh. running, um… If I want to run on my secondary computer.
I'll start a process on there, X11VNC. And then I'll run VNC Viewer on my main machine and just go over there and pull the windows back.
Yep.
It… works really well, but… Some of your escape sequences don't work very well. It, you know… In some respects, it's a little bit of a pain in the ass, because the… X11VNC, or the VNC viewer, I forget which.
uh, traps your escape sequences. I guess if I was to work at it, I could figure out how to send the escape sequences on through, but…
Have you tried X2Go, or… Ramina?
I… have used Ribbon on a Windows box, and it worked okay.
But what's X to go?
It's a software version of a… a switch, KW, whatever, switch.
I mean, I do it between machines that I've got, and I haven't… I have not run into any escape sequence that it didn't… there was a problem with it?
Hmm. Does it even…
One of the programs that I use is… is AnyDesk, and AnyDesk seems to work very efficiently for me.
Um, and it's available for almost any machine, but it works well.
My machines are all double-headed. I've got two screens on everything.
Yep, it'll do it. Yep.
Besides any desk, there's a new thing called Rust.
Will that still work? Okay, um…
Yep.
desk that…
Two eyeballs. No, I got a fi… the eyes of the back of your head.
Yes, that's work… that's a good one, too. The nice thing about RustDesk is you can… it's essentially, you can do it all locally.
It doesn't go out to somebody's server.
Well, I want this to be local.
Russ doesn't get the way to go, then.
Yeah, well, I tell you what, then, uh, Randy, put that in the chat.
And, uh, Stan, would you put that X to go in the chat?
So I have a chance to grab that stuff before I forget it.
Because I guarantee you, I'll forget it.
Let me look up the link for this, uh, and I'll put it in. Give me a second.
Have you tried something that…
Well, they're in the… Both are in the Linux… both of them are in a Linux Mint repository, so you don't need to link out to something else.
Well, the link… a reminder.
Russians could send it in the repository? Oh, okay.
Yeah, well, it's at least in the… it's in 22.1, I believe, and 22.2. I'm not sure about 22… Zero.
What's the matter with my…
You cut out, Steve.
Yeah, I just… I had a window disappear, and I was looking at that.
throw in another offering?
Um.
I mean, I use any desk all the time, but it's convenient for me because I don't have to.
go through and do whatever configuration it's done. It just runs.
Okay, now, Stan? Okay, let's do…
We're talking about… Have you considered simply using X11's network capability? Run the process on one system.
and show up and interact with it on the other one.
Well, that's what I do with, uh… X11VNC.
But not needed. X11… inherently supports this.
I run that all.
has for 30 years.
Like, I run… oh, yeah. X11 is inherent.
Okay…
network-based. I can run things.
Linux, AIX, FreeBSD. and have things show up.
and interact… on one workstation, no problem.
Hmm.
This all goes back to your display environment variable.
And you might need to… tweak a little bit of security with ex-host or XAuth.
But that's… can be streamlined. Like. The system I'm on right now, I have… lotus notes running on a CentOS VM, displaying on a Gen 2 box.
I have X… terminals that are running on other systems.
displaying on this Gen 2 box. I… it… X11 inherently is network-based.
Yeah, I guess now that you say it, I guess I knew that.
Never thought much to do with it. Um.
Of course, there's only one problem with that, Grant.
what… No, Jason.
Whale has taken over everything. Whalen has taken over everything. Will it run on Whalen?
What?
No, it's taking over a lot of the Linux world, but it is not taking over everything.
There are… X11 gateway things for… Wayland.
And what you talk about in the thing I say I'm doing.
are some of the problems that prevent me from even thinking about.
migrating to Weyland.
Yeah, I, uh… set up a new laptop when we left town for a couple weeks last month.
And I never could get VirtualBox to install because there were no kernel drivers for whaling.
There's some pretty big gotchas out there. Although, other than that, I was fairly happy with it.
All right, MIL's got a question or a topic, or interesting… idea to throw in the ring.
Just so you know, the lowercase rust will show up in the repository, so you don't have to capitalize it.
It depends on the version of the Linux Mint.
In a 22.2, it did find it, but in the 22.1, it wouldn't find it unless I.
capitalized R and the D.
Following up on this Windows 11 upgrade, uh, and I've just not been playing enough on Microsoft Windows to.
know the latest on the licensing issues, so…
Game on you, Gary. Shame on you!
Shame on me, shame on me.
Not… not using Windows, what's wrong with you? Are you on American, or what?
Uh, well, he doesn't use Linux either. It rolls!
Oh, that's true. What the hell am I saying?
Use Chrome. Chrome. It's Android.
Chrome is Android, and not Linux. Android is Linux, right? Is it?
is Lynette.
No, it's not.
defend that statement.
It started with Linux.
Yeah, I mean, I guess I do have to go back and check my history, but I thought it was still Linux.
Android is Linux-based.
Yeah. Now, there's pink or something Google was going to be developing.
that was not Linux-based.
And… pink wound up where?
dead-end product, last I knew.
Okay, go ahead. Well, anyway, back to the… to the, uh, Windows 11 question.
So, the licensing situation. So, if you have… a Windows 10 licensed machine.
And if you go through the steps you were outlining, Randy, to migrate it up to Windows 11.
Is it… legally, and is it technically required, then?
to re-license it and pay a licensing fee to do Windows 11?
not that I know of. Now, I will say this. On a machine.
where I install Tiny11, and it doesn't recognize the… system for using, um, Windows 11, also part of it has to do with the upgrade of the BIOS.
Um, and so, uh, because I did that on one machine, and it upgraded the whole process it went through, and.
upgraded the BIOS, and then did the install. It's okay, fine, that worked out fine.
Um, and I did not have to use… it activated.
automatically because it was a… Professional machine.
On a consumer machine. Maybe, maybe not. Um, there are… Too many places out there where you can get the key for, like, $15 or $20, and it's really not expensive.
If it doesn't activate. go out there and get one of those keys, and put the key in there, and… and you're up and running anyway.
It's… it's still… cheap. And I do the same thing with the Windows Server.
Windows Server, you can get a key for $15 to $20, and… You put the key in, and you're up and running.
How about Microsoft loves you?
I really don't care.
I was expecting that answer.
All I try to do is make the customer happy. I don't care about Microsoft.
Yeah. No, you're right, you're right.
And I'll say one more thing in respect to that.
Um, the most important thing for me, as far as a customer is concerned.
Their data, and then their applications, if the applications are critical.
And I've got 3 customers right now where the applications are… critical for them.
And they don't want to have to go through and… recreate a complete new system.
And then transfer data over. You know, and I can't blame them, you know?
Can't blame them at all.
No, that's… that's a pain in the neck, and there's always a chance that something bad is gonna happen when you're doing that.
Well, and you don't know if the application that you're going to.
bring over… has a problem with Windows 11.
You don't know that until you go to do it.
And so, you know, this is the easy way. You know, once I found… figured that out.
Yep.
Or found that out. You know, strangely enough, I found that out watching a YouTube video.
And I'm going like, oh my god. This is great.
Yeah, I mean, people who got. I guess the most arcane questions on YouTube.
And got, uh, perfectly good answers, you know?
Yeah, there's a lot of solutions out there that maybe we won't find in written form, but are there on YouTube form.
And, uh, there's… I mean, I just keep learning every day. Every day.
Yeah.
Yep, that's the way that goes.
So… and I don't… I like being able to share that information with you, since.
I wouldn't be coming over to your house to do that upgrade anyway, because it's a little bit of a distance.
Where are you at, Randy?
I'm in Puyallup, Washington.
What's the name of the town?
Puyallup, P-U-Y-A-L-L-U-P. I know it's an… it's an Indian name.
Oh, okay. Yeah, it's an Indian name. I've actually heard it, now that you spelled it.
Yeah, and most people have trouble pronouncing it, so I usually pronounce it for them ahead of time, and so they don't have to make the same error, because I… I didn't know either when I first.
Yeah.
um, you know, got here.
So that… that does, though, require having Windows 10 already on the box. You can't take.
Just the tiny 11 image. And… Well, he said there was a tiny 11 you can do.
Yeah, I can install a tiny 11 from scratch.
He said… From scratch, I think.
Okay, on a machine that… or on a new hard drive.
Whatever it is you do, you take the old hard drive out, put the new hard drive in there, install Tiny11.
Okay, and then did 25H2 with the process that I just told you, and it's up at the latest and greatest without all the crap.
Mm-hmm. Okay.
You know, so… and… and whether it… picks up the activation or not depends on the machine itself, whether it is a.
Professional machine or business machine? or a consumer machine.
And I'll tell you what I tell everybody else.
Do not buy a consumer machine. Let me say that again. Do not buy a consumer machine. Do not.
What's… what's the difference?
Well, they run Linux just fine.
Anything but Linux.
Yeah, it will. But what I'm saying… they will not hold up like a business machine. The business machines… will keep on going and going and going. I got machines here that are… you know, more than 15 years old, and there's nothing wrong with him.
They're business machines, though.
Steve, you were trying to ask a question?
I was gonna say, define business machine versus, uh… you know, consumer machine.
Business Machine is one of those machines that, uh, uh… businesses out there get deals, whether it's Dell, HP.
Or, um, Lenovo. And they are… if you go out… if you were to go out to any one of those street sites.
and look at… business machines.
you'll see the difference. It's… it's marked in their… it's a different category, different machines.
Different setup. The nice thing about the business machines, especially.
both the laptops and. The small form factor, um, business machines.
They're easy to get into, you don't need a bunch of screws, and… When it comes to.
Uh, removing a drive, or taking a memory out, I mean, it's all easily accessible.
In a consumer machine, none of that's true. Done of it.
Oh, wow.
Oh, yeah.
Well, my newest machines are cast-offs from, uh… one of Lee's customers.
And they're… No, I got two of them. They're Hewlett Packards. They run fine, there's nothing in the world wrong with them that I know.
And the two machines I've got. sitting on my desktop.
Yeah.
I bought them from, uh, oh god, one of those… mail order computer companies.
I can't… I don't… I don't even remember the name of the company.
Yeah.
Was it TMU, Steve?
Now you're giving them a hard time.
No! Oh, jeez. No, these… I figure these two machines have got a minimum of 114,000 running hours on them.
Yeah.
Because they're up all the time. And the discs are basic. The discs on those two, I think, are… All the disc has got on it, basically, is the operating system.
And… I don't know, they just seem to run. I… I took the covers off the sides.
You know, so they… they never get hot. And uh… the CPUs aren't working hot enough… working hard enough to overheat themselves.
But I think I've replaced on the two of them. I think I've replaced one fan one time.
They just keep going, you know?
Yeah. And the likelihood is those are business machines that you have, and I've also gotten machines like that that are.
from… from the school systems. That our education machines, and they're marked education machines, you know, in the BIOS, but… And they recognize it as such when you go to do the install.
But it's not a problem. They just keep running, and most of them are like I-5s. Well, okay.
Maybe it's not an I7, it's good enough, and I can upgrade them to… 16GB, 32GB, and in some cases, 64GB, depending on how old it is.
Yeah, no, these… these two that I've got, they'll take a maximum of 16GB of memory. They've only got… each one's only got 8 in it.
But… That's… that's less of a problem than I thought it was gonna be, but I wrote a script about a month ago.
It goes through and kills anything and everything. Um, that contains the… I use a Brave browser, so I… I called it Kill Brave, and it goes through, and it just wipes out.
everything that has anything to do with Brave. And it's absolutely amazing.
The memory goes back to under a gig, usually.
Yep.
And the whole thing just frees up. It would do the same thing if I ran a different browser. Browsers are just… pigs. I don't know what else to say. They're just pigs.
Well, unfortunately, the most popular one being Chrome is the biggest pig.
And, uh. Yeah, and also the one you can't secure.
And it's also the one you can't secure.
And, uh, I think, Lee, didn't you mention, uh, Timu?
Well, I'll tell you, do not buy any. Do not buy any electronics from Timu.
It does not work. They're dead. I bought 2 hard drives, and I had to get a refund, and they didn't want the hard drives back.
Because it costs more to ship them back than they're worth.
They're dead. They're aptly useless.
That's correct. That's correct. So…
Yeah. I'm running into a couple of things like that from Amazon, where they said, oh, just… keep it. We don't want it, you know?
Yeah, there are times you'll find something like that on Amazon, but less.
of a problem normally. Timu, I can guarantee you, any electronics.
isn't Timu… isn't Timu Chinese?
Don't even think about it.
you know, that's Chinese.
Yeah, I haven't… I've never bought anything from Timu. Oh, Timu, that's that one… And they're gonna… they're gonna get… Uh, devastated by truth.
Not just Chinese, but communist Chinese.
I mean, I bought a lot of stuff off of Teemu, and there was nothing wrong with it, but there's other stuff that you need to, like, really be careful about.
And sometimes. You'll look, and you go, like, that looks like a really good deal, and then when you get it, it isn't exactly what you thought it was.
Yeah.
And do you expect anything from Communist China to be properly labeled as to what it actually is?
Well, you have to understand, uh, you're dealing with a country that has no laws.
The law is whatever the… CCP wants it to be that day.
60 minutes last Sunday did a segment on, uh, uh, a lot of… Hidden attack vectors in… And, uh, that we let come in. Yeah, utility systems and that? Yep.
Oh, God. I was just reading about a couple today, and I just don't want to think about it. Nothing I can do about it.
Hey, I really think we did a good thing keeping the recording going, because I think we covered a lot of technical information that wasn't necessarily apropos to the topic tonight, but it was good stuff that now there's a record of, so that people can.
kind of follow along. Um, but maybe, uh, maybe this would be a good point, Sam, to put a bookmark on it and end the recording.
But I'm gonna ask everybody to stay logged on, because I want to make a comment after we close the recording.
Sam, sound good to you?
Stan, are you there?
No, I… I could… I couldn't find the unmute button.
Oh, he fell asleep.
Yeah. Okay, yeah.
Okay. Okay, you ready for a bookend? This is the bookend for the St. Louis Linux user group, St. Louis Lug.
Uh, today's date was Wednesday, uh, the 16th of October, 2025.
Our speaker tonight, Sean Tweehaus. He was talking to us about, uh, uh, command line demos and the Kitty terminal.
And, uh, thank you all very much for coming.