Chris: Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris.
Wes: My name is Wes.
Brent: And my name is Brent.
Chris: Hello, gentlemen. Coming up on the show this week, some of us build dashboards.
Chris: Others turn their desktop into a dashboard.
Chris: Quickshell is changing the Linux landscape in a massive way,
Chris: and it kicked off this summer.
Chris: We'll dig into what it is, how you can start having some fun with it,
Chris: and what we've built. Then we're going to round out the show with some great
Chris: boosts, some picks, and a lot more. So before we get there, let's say time-appropriate
Chris: greetings to our virtual lug. Hello, Mumble Room.
Mumble: Hello, Chris. Hello, Brent.
Chris: Hello. Happy birthday, PJ and everybody up there. Thank you for joining us.
Chris: Also, look at that quiet listening, too. Hi up there.
Wes: On a Sunday, on a Tuesday, no less.
Chris: Getting that low latency, Opus. Also, a big good morning to our friends at Define Networking.
Chris: Define.net slash unplug. Go meet Manage Nebula from Define Networking.
Chris: When there's something as foundational as my network, I want to know I own the
Chris: stack end to end, especially over the long term. If I build this thing and I
Chris: build stuff on top of it, it's not a two year thing.
Chris: It's a 10 year thing. This is what I love about Nebula. It's open source and
Chris: it was originally built to secure Slack's massive global infrastructure.
Chris: I mean, just think about that one for a second.
Chris: And today it's trusted from everybody from Rivian to Home Labs.
Chris: I mean, I use it in multiple different ways for small systems,
Chris: direct direct to larger mesh networks.
Chris: And Manage Nebula, which is define.net slash unplugged, Manage Nebula gives
Chris: you the open foundation and peer-to-peer resilience while they handle the certificate
Chris: management and some of the operational headaches.
Chris: You can also spin up your own lighthouses in that scenario.
Chris: You get full control without the busy work, without the big tech login barrier.
Chris: Go get started 100 hosts for free, no credit card required, define.net slash
Chris: unplugged. Go check it out. Redefine your VPN experience, define.net slash unplugged.
Chris: All right, so I will admit it, I wanted to talk about QuickShell this week because
Chris: I think something really special is happening here.
Chris: QuickShell is a toolkit for building status bars, widgets, lock screens,
Chris: other various desktop components, and it's using QtQuick and QML.
Chris: And it can be used alongside your Wayland compositor or window manager,
Chris: or you can build a complete desktop environment with it.
Chris: And it's sort of the ultimate end result, I think, of Wayland.
Chris: And it's fascinating because it means you don't actually need a desktop environment
Chris: anymore. Now, it's not to take away from the hard work that they do to make
Chris: a usable desktop environment.
Wes: Yeah, if you want that, we have better options than ever, and it's excellent.
Chris: But it does mean that you could mix and match, or you can now completely create
Chris: your own environment in a way that's actually achievable to anyone listening to this podcast. Yeah.
Chris: And that is remarkable because you don't need to be attached to any particular
Chris: desktop vendor anymore or any particular toolkit. It's really fascinating.
Chris: So it means, you know, if you want your own desktop widgets,
Chris: your own launcher, your own lock screen, or if you want to take advantage of
Chris: the many that are out there that have been built, you can.
Chris: It gives you the building blocks to create or replace just about all the pieces
Chris: of the desktop environment you care about, but still using a standard toolkit,
Chris: a standard API, and sort of the best of Qt and modern Qt. You think that's fair? Yeah.
Wes: Yeah. I mean, maybe it's worth thinking about where this all sits.
Wes: So we talked about Wayland, right? So Wayland ends up being the protocol that
Wes: sits at the bottom of things. So you need your actual Wayland compositor,
Wes: which could be something like Hyperland or Neary or KWIN.
Wes: There's a bunch of options. Sway uses like the WL roots stuff,
Wes: which a bunch of them use under the hood.
Wes: And then that lets you like draw stuff to the screen, right?
Wes: But you actually, you're going to need to do more. And a lot of these provide
Wes: some basic like window management and that kind of thing.
Wes: But basically after that, nothing else, right? So if you want status indicators,
Wes: you want things you can click to like
Wes: move windows around or switch which workspace you're on or any of that.
Chris: Or if you want to build a widget that has a common interface to talk to network manager.
Wes: There you go. Maybe you want to be able to select your Wi-Fi network.
Wes: None of that comes out of the box.
Wes: So that's where you need this whole shell layer on top.
Wes: And QuickShell is an interesting use where they took, I mean,
Wes: like when I'm used to thinking about Qt, i think object oriented c plus plus
Wes: you know what i mean it's low level uh,
Wes: you can do lots of great stuff it's a whole toolkit for you know interfacing
Wes: with wayland drawing things creating and managing windows,
Wes: um but it involves compiling c plus plus and building c plus plus and kind of
Wes: it sounds like something maybe you do if you were building your own plasma but
Wes: doesn't really sound like something you want to do for quick you know i'm just
Wes: working on trying to build out a cool new widget and that's where qml comes in
Wes: and qml which is the cute markup language
Wes: uh it's a declarative.
Wes: A super simple little programming language, essentially, that lets you describe
Wes: the widgets and the interface that you want to build.
Wes: And then it can either be ahead of time compiled into C++ or,
Wes: and this is the part that makes it super useful to work on, it can just be reloaded
Wes: at runtime and drawn on the screen.
Wes: And so QuickShell, under the hood you have Qt, and then you have QtQuick,
Wes: which is a pre-bundled set of common stuff you can use, like basic drawing blocks.
Wes: And the API, you want to be able to put rectangles and circles and all that
Wes: kind of stuff on the screen.
Wes: and quick shell takes that it sits and runs the cute event loop it's kind of
Wes: going to be the thing that actually talks to the whaling compositor and draws things,
Wes: and it looks on your file system wherever you tell it and it loads qml from
Wes: there and then it can in a loop re-evaluate the qml,
Wes: redraw stuff on the screen and it's done a lot of the hard work to build qml
Wes: services which are basically extra apis available to you when you're writing
Wes: a qml on top of quick shell
Wes: that bind to like pipe wire and there's a plugin that handles niri or there's
Wes: uh they have a first party plugin for hyperland so now you can get access to
Wes: all of the hyperland stat state
Wes: right in the qml and then the biggest part that is
Wes: wild because this has been in since like q5,
Wes: how far ahead it is in some ways is qml is designed to be reactive yes so think
Wes: of it kind of like a spreadsheet right where you have linked formulas and cells
Wes: yeah yeah and so you make a change in one cell and everything else automatically
Wes: recomputes and updates.
Chris: Rescales, yeah.
Wes: And so you can describe declarative widgets and bars and panels and docs.
Chris: And they'll rescale to the appropriate display.
Wes: Well, not only that, but like if you update whatever data at the root,
Wes: everything downstream, you don't have to handle like manually updating each
Wes: part of the widget, right? It's much closer to something like React,
Wes: where you describe what you want the final state to look like.
Wes: And as long as you're binding in properties from QML...
Wes: it all just auto-updates. It's like a differential data flow UI engine that
Wes: you get for free just by using QML.
Chris: That you can declaratively define.
Wes: Exactly.
Brent: It sounds like a completely new way to look at how to build desktops. Am I getting that wrong?
Chris: No, you're getting it right. And what's new, what's changed,
Chris: is in May, version 0.3.0 came out, which added a bunch of stuff,
Chris: like PaulKit, Pipewire, Wayland idle timers,
Chris: just more control over managing the windows, A lot of multi-monitor fixes went
Chris: in, and then it was followed by a 0.31 stability release in late August,
Chris: which fixed a few crashes involving multi-monitors and Wi-Fi and things like that.
Chris: So it sort of got recognition after these more recent releases.
Chris: You can use it alongside Plasma pretty easily. You can also use it on GNOME,
Chris: although for full integration, you would need a corresponding extension.
Chris: But it's really blowing up on Hyperland and other tiling window managers because
Chris: there are projects that are now giving you more of a – I wouldn't call it a
Chris: complete desktop because Wes will give me a hard time.
Chris: But I would say it gives you like a status bar, application timers,
Chris: a control center for like which Wi-Fi network, audio device,
Chris: notifications and D&D, calendar integration, Bluetooth controls,
Chris: you know, settings, drop down, things like that that are kind of nice to have
Chris: on any desktop that don't come inherently with nearly any of these tiling window managers.
Wes: Sort of the day-to-day stuff that you'd expect to like run and operate a machine
Wes: just from the GUI without having to know a bunch of keyboard shortcuts or stuff like that.
Chris: But they're, and it's beautiful. It's also, I don't know if we've touched on
Chris: this, but it's gorgeous.
Chris: It's, it looks like some of the most modern desktop Linux out there.
Chris: And Hyperland really is a nice fit because it's a very smooth desktop,
Chris: but it doesn't bring anything.
Chris: And really, and so this kind of gives you something to work with.
Chris: The other reason it's getting some traction is Amarchi is using it, Amarchi.
Chris: They have a Quattro release in the works, and they've kind of built a whole
Chris: Hyperland shell around QuickShell.
Chris: And the desktop is a QuickShell process called Amarchi shell,
Chris: and has a top bar, drop-down control panels, notifications, volume,
Chris: brightness stuff, application menu, clipboard, emoji, overlays,
Chris: lock screen. Yeah, these are the whole lock screen.
Chris: You know, pseudo-prompts, background services.
Chris: And because everything is sort of like Gnome Shell, where it's sort of one big,
Chris: large process, they can rechange and refresh stuff while it's running.
Chris: But they also have a plug-in system, which sits on top of QuickShell.
Chris: They've already had over a
Chris: thousand different contributions of plug-ins in their quote-unquote store.
Chris: They also ran a little bit of a competition,
Chris: and they awarded some of the competitions and stuff like that.
Wes: Yeah, this is where it kind of gets interesting that it's using QML.
Wes: Because at first, it kind of just, you know, you could almost view it like sort
Wes: of something like Nix. It's declarative. You set a lot of properties,
Wes: right? Like I need to set the width of this piece of the UI or something,
Wes: you know, the background color, all those kinds of normal things.
Wes: But the properties can also be expressions, which are just JavaScript.
Wes: And once you put that there, you can basically do anything. It becomes essentially
Wes: a full programming language.
Wes: And so that means you can have really self-contained little plugins because,
Wes: Quickshell and QML offer stuff like, you know, talking to REST APIs,
Wes: reading files on the file system, doing like Dbus and Unix sockets.
Wes: you get all kinds of different ways to pull data in. So if you want,
Wes: however you want to surface that, an API that runs on your box,
Wes: a file from the file system, something else, if you can use those hooks to bring
Wes: data into QML, then the rest of the stuff all just applies, right?
Wes: So it's the second you've got it in there, you can build a UI with it.
Chris: I did, and I'll talk about that in a little bit. I built a couple things.
Wes: And so the Omachi setup is,
Wes: you can have this top level, it's all just like, you can just have essentially
Wes: a big folder of QML, And then because the plugins are mostly self-contained,
Wes: then we could rely on like Hyperland specific stuff or whatever,
Wes: you know, there's some more specificity in some of them.
Wes: But in general, you just drop that folder in the tree and Quickshell is already
Wes: set up to reload that anyway. And then the second you reference it anywhere
Wes: else or, you know, it can tie up all the strings for you.
Wes: And then you're done.
Chris: And one of the nice things about that is it keeps a real consistent look.
Chris: So all of their plugins for their desktop, for their Quattro desktop,
Chris: they all have a consistent theme. And when you change the shell theme,
Chris: they all immediately adapt and are consistent. It's very, it's really quite nice.
Wes: Yeah. And so internally, they can expose sort of properties inside QML.
Wes: And then so when you're building a downstream plugin, if you just reference
Wes: that, you automatically get that consistency.
Chris: So historically, throughout Linux and all the various distributions that are
Chris: out there, we had these boutique distributions where, you know,
Chris: a couple of Rockstar developers would or one Rockstar developer or whatever
Chris: it might be, would get together and they would create their version of a desktop environment.
Chris: We still have versions of these at different scales.
Chris: But what I think we're going to see with QuickShell and AI-assisted development
Chris: and with bases like Arch and NixOS is you're going to see….
Chris: Hundreds and thousands of little teeny tiny micro distros that are their own
Chris: composite, like mine. Like Hypervibe is now, it's a base of Nix OS.
Chris: The window manager is Wayland Hyperland. And then the entire shell now from
Chris: the lock screen, the login screen, everything is all QuickShell.
Chris: I've built it all. I've built my entire, my desk over the last three days.
Chris: Well, okay, there's a little more. And I've deployed it to all my systems with
Chris: multiple different – every system has a different video card,
Chris: a different monitor layout.
Chris: And it's my desktop shell now. And it really wasn't – it's not like I sat down
Chris: and, like, learned how to do C++.
Chris: Quick shell is so straightforward, and it's so easy for agents to manage as well.
Chris: Or for a person to just do, you know, by hand, all 100% human Greg created.
Chris: It's approachable that way too. So it's really going to create,
Chris: I believe, because we already have so many great distros, especially like when
Chris: you think about the Ublues you could easily rebase on and Silverblue.
Chris: There's so many great base distros out there to then just build your own layer on top of.
Chris: And you'll just see people will just be hundreds, if not thousands of GitHub
Chris: repos and GitLab repos out there of people just running their own distro now.
Chris: And I bet, I bet if people boosted in our email, I bet you a lot of people in
Chris: our audience are already doing this.
Chris: And this is what's being this is what quick shell is unlocking now is this last
Chris: layer this last layer of the desktop can now be completely yours or there's
Chris: so many cool community spins out there you can take in i just think that's really neat.
Wes: Yeah there's like a critical mass factor i like your comparison with nix right
Wes: because there's a long time where nix was like okay really cool technology but
Wes: if nix packages didn't really have enough,
Wes: you're not going to take all the time to reboot strap your whole environment
Wes: every time right so and i think that's where we're getting now.
Wes: It's like Quickshell has...
Wes: QML has been around for a while, right? We've had a lot of these primitives.
Wes: QuickShell's now got a rich enough API and we've got so much stuff that's building
Wes: on top of it and sort of figuring out some of the quirks of the system and how
Wes: to wire it up robustly and it's open source.
Wes: So now we just have all of these pieces that even if you can't just exactly
Wes: pull the thing, most of it's going to be declared to VUI and maybe you need
Wes: to fuss a little with where the data comes in and out or whatever.
Wes: But that's it. And you have a bunch of examples of how to do it or reinvent yourself?
Chris: This is what I wanted Plasma Widgets to be.
Chris: I remember when QML was first introduced and I thought there's real potential here for all of this.
Chris: The other thing I think that's moving the needle a little bit is the Omicron
Chris: Foundation announced that it has become a premier sponsor of Quickshell and
Chris: its lead developer, who's known publicly as Outfoxed, and the sponsorship is
Chris: initially set to run for three years.
Chris: They're also sponsoring Vaxery from Hyperland for, I believe,
Chris: three years, perhaps, with the option to even extend that.
Chris: So both the Hyperland component and the Quickshell component now have at least
Chris: three years of full-time funding for development.
Chris: So they're probably not slowing down because that just happened.
Wes: Yeah, that means you can actually, you know, you can take some stuff off the
Wes: backlog, you can plan out some
Wes: months at a time to figure out what things you're going to be building.
Chris: Yeah.
Wes: That's an enviable position.
Chris: So I feel like you're going to hear more about Quickshell, and one of the ways
Chris: you're going to experience it is You'll probably see at least Plasma-based distros
Chris: start shipping different QuickShell applications,
Chris: not to spoil the picks, but that's another thing that's happening is people
Chris: are able to also publish standalone applications using QuickShell,
Chris: which is very fascinating. I played with some of those too.
Chris: But I think we should talk about some of the stuff we built. Yeah.
Brent: So with all that fun, we built a thing, we extended it, and well,
Brent: of course, we have some notes.
Brent: But before we get there, let's talk a bit more about these community plugins.
Chris: I thought this was an interesting way to kind of kick things off.
Chris: You know, Omar, she held this community plugin contest and awarded some cash
Chris: prizes to some of the number one plugins for their platform.
Chris: And can and have been pretty straightforward to just port these to my own setup.
Chris: really it's not hard these are not like inherently locked into oma archie they
Chris: might be designed around oma archie but they're not inherently locked in.
Wes: Which is a great point because from the outside especially if you are coming
Wes: from like an ohm or plasma it could be kind of hard to understand like is this
Wes: compatible what parts of this can i use or not use and you're not using that
Wes: you're using a different shell which we can.
Chris: Talk more about yeah yeah so.
Wes: I think it's a great test case because it does show like unless it's trying
Wes: it helps probably that you're on the same compositor but like unless you're
Wes: unless it really needs some sort of hyper specific omachi information.
Chris: Or design elements right i mean they have a very unique style i like it i mean
Chris: it is it is a good look uh i just it's not the shell i'm using uh but one of the number one uh,
Chris: plugins is really cool it's called radio atlas and it is a plugin that allows
Chris: you to rotate a globe and then little dots on the map throughout and around
Chris: the world and when you click the dot it plays the radio station from that area
Chris: around the world it's basically got all the radio stations,
Chris: and it's just a really neat thing to have like if you like me i really enjoy
Chris: trying especially around the states different local radio local tv,
Chris: and it's just really well done and it's like an example of what actually is
Chris: a very powerful and very nice user interface very high-end user interface that
Chris: is done with this kind of simple quick shell setup.
Wes: It gets it much closer to like if you were comfortable building out like a simple
Wes: React UI you can now do a similar thing except it's a part of the desktop.
Chris: Or you know,
Chris: Claude Code can. The other one that I thought was just a great idea that I'll
Chris: probably be borrowing is the Home Assistant QuickShell integration.
Chris: To just be able to control different parts of your Home Assistant right there in the bar.
Chris: Very, very beautifully done. Again, not necessarily locked to one particular
Chris: project, which is really great. So they have some really wonderful plugins,
Chris: and you can just browse them and get an idea of what people are building.
Chris: And I did that. And I found one called SyncShell.
Wes: Oh, okay.
Chris: Sync Shell is a health and monitoring widget for Sync Thing.
Chris: And you can control and install or control service, pause syncing, things like that.
Wes: And as we know, you've recently recommitted to our dear Sync Thing.
Chris: That's right. So this one was built. Sync Shell is built for Oma Archie,
Chris: although the project does stay. You know, we're totally open to expanding in
Chris: the future. So I may link them what I did.
Chris: Because I have built my shell around Dank Linux, the DMS shell.
Chris: Dank Shell is beautiful. So I took a lot of my design from Dank Shell,
Chris: which is, you know, it's like a it's a community made desktop for Sway,
Chris: really any Wayland, any Wayland desktop.
Chris: And it's beautiful. It's so gorgeous. It's so nice. And so I just sort of like
Chris: aped all of this and then wanted to create a SyncThing widget that matches that design.
Chris: And I'm going to publish this. So if you end up playing around with this listener
Chris: and you also use sync thing and you would like a sync thing widget for your
Chris: dank desktop, I will publish this in the show notes.
Chris: I have made sync shell and it is kind of my, you know, quick copy.
Chris: This is a read only version. It tells you the current status of things,
Chris: where they're synced, how much space is transferred, where what's left.
Chris: You can see I have 73 gigabytes indexed across 11 folders. And I'm currently
Chris: updating this week in Bitcoin. And...
Chris: It's QML, JavaScript, and a little Nix language so I can get it easily going on my host.
Wes: Nice. See, and this is great, too, because you've already tried experimenting
Wes: with, like, can I have this?
Wes: One thing I'm excited about here is the composability, right?
Wes: So you can just sort of publish this. It's just some bits. You don't really
Wes: need to compile anything or do any complicated build.
Wes: And so you can have a simple Nix package that kind of just puts the bits on
Wes: disk and then pull them in the right spot.
Chris: And it's really good at handling various monitor layouts and panel size differences.
Chris: which has been really, really nice because I have really weird esoteric vertical
Chris: monitors and every monitor has a different resolution in some systems. It's really crazy.
Chris: So it's been nice to build something because I have one Nix config for all these
Chris: hosts. So it's really nice to be able to build something that does work across
Chris: multiple hosts but is still adaptive.
Wes: You can have customizations but it's not like a crazy thing where you're constantly
Wes: duplicating everything and having to do a bunch of jank.
Chris: I really like that. It feels like mine too in a way that I wasn't really missing
Chris: some of this stuff but now that I have it, I don't think I can go back.
Chris: It is still sort of feels early. It is kind of easy every now and then to like,
Chris: slip into an accidental like CPU loop where it's like eating a lot of CPU because
Chris: something in the bar didn't render correctly. And it takes me a minute to catch
Chris: that. But that's my own foot gun. Not inherent to quick show.
Chris: Did you have anything you built or play around with?
Wes: I did. Yeah. So, okay. One thing I find fascinating here is.
Wes: because there's this connection with, you know, drawing UIs,
Wes: the flip side of that, which has become quite the study in the web world,
Wes: is like you need state management, right?
Wes: So like you have the UI, but the UI is displaying state, which could be,
Wes: you know, the external state of your sync thing, or it could be like where the
Wes: windows are and which windows exist and how many workshops you have.
Chris: But what's the source of truth kind of thing?
Wes: Yes.
Chris: Okay.
Wes: And different desktops have taken different paths on some of this, right?
Chris: Yeah, yeah.
Wes: So like the stuff that this latest Omachi is doing is really like QML QuickShell
Wes: native, where it's all there. It's just one tree. The state lives mostly in
Wes: that system besides like some config files on disk.
Wes: But DankMaterialShell kind of took a different path. They have a separate Go
Wes: daemon that sort of does a lot of the stuff under the hood.
Chris: Yeah.
Wes: And then QML talks to it over two different sockets. One's like a request response.
Wes: And then the other one, it sort of subscribes for updates.
Wes: And so the Go daemon can kind of own a bunch of the state. and then QML ends
Wes: up being used sort of as the presentation layer.
Chris: That's one of the things that actually drew me to Dank. I mean,
Chris: because you need something that's doing that management and that dispatch.
Chris: I thought that was a good way to do it.
Wes: Yeah, absolutely. And what's fun is you get various sort of like there's different,
Wes: it fits into sort of theoretical computer science because there's just various
Wes: ways of managing state and various ways of handling and updating UIs.
Wes: And so you get, QML handles a certain amount of it and then everything else,
Wes: you get to see this sort of plethora of different open source takes,
Wes: right? So there's like Celestia, they compile a C++ plugin that they load,
Wes: and that's where the config lives.
Wes: There's a bunch of different use cases. Some folks even like Noctalia used to
Wes: use QuickShell, but now they're just going C++ native entirely.
Wes: Yeah. So I decided I'd build my own shell, kind of inspired by what Dank is doing.
Chris: Oh, this is exciting. Brent, what do you think? Okay, Brent.
Chris: Brent, what is Wes's desktop shell? What are the key things that Wes has to
Chris: have on his desktop shell? What do you think?
Chris: app launcher probably maybe you.
Brent: Know i think he's gonna hide that i think is he's gonna get to an app launcher
Brent: with the keyboard shortcuts but right but i mean and.
Chris: I guess you could use another one too you don't have to build one.
Brent: He wants a bunch of visibility into like multitasking i think so similar like
Brent: pinning your tabs in your you know browser some people do this i hear i bet
Brent: you he has like a sidebar or something where you can see the progress of,
Brent: everything that's going on at a glance and then you know keyboard shortcuts
Brent: to quickly move to them uh you should.
Chris: Call it the pain bench.
Brent: I like what.
Wes: You guys are crafting for me.
Brent: Can you write some of this down someone recorded right well.
Chris: I'm thinking i'm thinking like uh it depends on how far you want to go right
Chris: because oh man you could build one that has like a wi-fi network manager interface you,
Chris: Why not have a button that executes K-Exec? You could just have that.
Chris: Oh, I don't have that yet. K-Exec on the fly. Okay, so tell us, what is your desktop?
Wes: What is it? Well, so right now it's super minimal. I went with Neary as the
Wes: scrollable Wayland compositor under the hood. Nice.
Wes: And then on top of that, well, naturally because it's me, I have a Clojure Babashka
Wes: program, and it's serving the role of that Go program. So it's sort of the state
Wes: manager and the brain, and then it subscribes.
Wes: Neary has an event socket, And so you talk to that. The first thing is it pushes
Wes: the current state of everything it knows.
Wes: And then after that, it will send events whenever you do stuff,
Wes: right? You click or you move windows or you do whatever.
Chris: This guy.
Wes: And then so,
Wes: the brain just gets those and.
Chris: Sort of- So Neri's doing that inherently and you're just writing on top of that?
Wes: Yeah, so it subscribes.
Chris: Oh, that's great.
Wes: So anytime you know, like if I like click a button that takes me to Workshop
Wes: 2 or Workspace 2, that sends an event that says that, right?
Wes: And then so the Clojure program does what's known as like a reduce or a fold.
Wes: So every time it gets an event, it just updates state, right?
Wes: It says like, oh, I know that what changed. Let me keep track of it.
Wes: And then anytime you have an update, you render out now what the state looks
Wes: like, right? And so that gets pushed.
Wes: You could do it over a socket or
Wes: I'm just doing a file right now because I don't have that much in there.
Wes: So it has opportunity there to update the state.
Wes: It controls that and it can fire off events or whatever and actions that are
Wes: needed when you see like, oh this thing changed sure what do I need to do and then,
Wes: QML is set up to be the rendering side so it reads the state.json file and then
Wes: that has everything it needs to display everything of course and then source
Wes: of truth just like a lot of these are doing um QuickShell has an IPC
Wes: that you can talk to right so essentially it then triggers things in QuickShell
Wes: so like when you click one of the things it had to build was like a little workspace
Wes: switcher yeah there's also basic stuff for just being able to click and see
Wes: what windows are open and click on those.
Chris: Okay so you got a window switcher.
Wes: And so that took,
Wes: all of that loop to be able to work right um and so i was trying to figure out
Wes: like what exactly all do you need
Wes: um so that gave me like a very basic i've got my clock i've got my very basic
Wes: window controls right everything working there uh and then of course i had to
Wes: add basic system monitoring right so like live cpu and disk and networking.
Chris: Nice oh i didn't think you'd do monitoring that's cool uh.
Wes: And then uh i figured you know because in case brantley wanted to use any of
Wes: this i did add a little monitor that tells me the Firefox windows I have open
Wes: and how many tabs they have in each of them.
Brent: Called it. Good call.
Wes: And then I did also build a cute little power profile switcher.
Chris: Oh, yeah.
Wes: So you can kind of just click that and toggle it.
Chris: And you know it works.
Wes: And then the fanciest thing I've built so far, because a lot of this was just
Wes: trying to get the underlying architecture to work at all and be like an actual
Wes: desktop I could use without having to switch back, is a little open code session viewer.
Chris: I was thinking about building one of those.
Wes: So it tells me I have 11 sessions over the last 24 hours, 32 million tokens,
Wes: you know, and then it tells me like how much I've spent. and then you click
Wes: it and this took a little bit, you know, to make work. It's not very,
Wes: it's not fancy yet, but you click it and it drops down and it shows you like the most recent ones.
Chris: Oh, I love it.
Wes: Yeah.
Chris: And their title. Yeah. That's great. So to sort of double down on that point,
Chris: we're talking about a lot like building your desktop and creating a shell and
Chris: replacing Plasma or GNOME, but you could just build that widget.
Wes: Yeah.
Chris: And you could just use it on whatever desktop you'd like today.
Wes: You do not need to replace the entire shell.
Chris: So if you just want a widget for a thing that's unique to you,
Chris: Like I was kind of joking in the intro, you could turn your dashboard,
Chris: you could turn your desktop into a dashboard because you could just build like
Chris: I built a sync thing. You built an open code thing.
Chris: They don't require that you build your whole shell.
Chris: You could actually just make them plasma widgets or you could make them a little
Chris: application on Gnome or whatever you want to use.
Wes: And like you could, like in my version, I'm having the Clojure program go and
Wes: fetch the data and then write it into the state.
Wes: But the rest of that, like the downstream UI part, you could just take,
Wes: right? Because none of that needs to change. You just have to fill in the gap
Wes: with how you want to provide the information.
Chris: The info, yep, yep, yep.
Brent: I feel like with our modern tools, we're starting to see a shift towards deep customization.
Brent: If you look at a tool like OpenCode, for instance, you can modify it as much
Brent: as you want to be your own very personalized, esoteric workspace.
Brent: And this QuickShell stuff and this entire conversation and Wes's beginnings
Brent: of his customizations just reminds me that we all get to have our own distinct
Brent: computing environments now and it's,
Brent: this is what we've always wanted and everybody's always wanted,
Brent: it's been too hard to attain, but,
Brent: I don't know. This year just feels like everybody gets a desktop.
Brent: You get a desktop and you get a desktop. You just get whatever you want. It's great.
Chris: It was also really easy to port the widgets I had built for my Waybar over to
Chris: QuickShell. It took seconds.
Wes: I wanted to ask you about that because you had been using Waybar before.
Wes: One version of what you can think of QuickShell is sort of as a Waybar replacement.
Chris: On steroids. I also really like the launcher that Dank chose and built. It's really good.
Chris: And one of the plug-ins is Nick's Run.
Chris: So if I type Nix and the name of a package, it searches Nix packages,
Chris: gives me a list, and then I just hit it, and it just runs it from the repository
Chris: immediately and launches the application.
Chris: It's really next level. So I love it. I love it.
Chris: And, yeah, look at that. Oh, Wes just posted a picture. Actually,
Chris: Wes, it looks really good.
Chris: See, I kind of went for more, like, bubbly kind of pill widgets on mine,
Chris: but you went for, like, a clean text bar, which I think also looks really good.
Chris: Oh, yeah, that's nice looking, Wes. Clean, minimal.
Wes: Yeah, and I want to play more with doing more theme stuff. I just kind of got
Wes: it across to like, what's the minimum thing I could actually use today without hating it, right?
Chris: Yeah. I think that looks very good. What are you, Brent, right? You impressed?
Brent: Yeah, I'm trying to wonder, like, Wes, when are you going to publish this for
Brent: us to all play with? Because I feel like there's some real gems here.
Chris: It's fun. It's also getting to play with this stuff and just like you were saying,
Chris: in a deeper way and building this whole thing.
Wes: There's a lot. I've played with tiling window managers over the years.
Wes: I've never gone this deep. And it was a great excuse to understand more of what
Wes: are some of the options because it opens our software, right?
Wes: You dive in and there's...
Wes: Like all the good things, there's so much you didn't know you didn't know.
Chris: Well, as my kids would say, I'm so cooked now because between Quickshell and
Chris: Hyperland, It really is the perfect sweet spot for me now.
Chris: I just can't ever, I mean, I love all the desktop environments,
Chris: but for like my production systems where I'm working and sitting there doing
Chris: show prep, I have built such a workflow around the keybinds and now with the
Chris: quickshell stuff, it's so good.
Chris: It really is, it is a unique kind of lock-in. I have created my own lock-in
Chris: and I love it. I couldn't be happier.
Chris: And so even if you just use it to create a simple widget or you use it to try
Chris: out a lot of the really neat desktop shells or build your own,
Chris: And I think you're going to be hearing a lot more about QuickShell for many,
Chris: many reasons. And so it really blew up over the summer.
Chris: And we just kind of wanted to give you a heads up and give you a little information
Chris: about what's going on. And if you built something or have built or build something
Chris: with it, you've got to let us know.
Brent: Once again, this week, we have some red hot feedback. This one from definitely not a Mac user.
Brent: I don't know what they like, but they definitely don't like a Mac, I guess.
Brent: Hey, JB team, too long for just a boost. So I'm yapping here on the email.
Brent: My dad and I just finished up a road trip across the country from Columbus,
Brent: Ohio to LA for college. Oh, that sounds fun.
Brent: And as you do, we realized we needed to plan this trip.
Brent: I found a tool called Trek, and it so happens you featured this on episode 680.
Brent: Seeing as it has an MCP naturally, my dad and I each hooked up our own clankers
Brent: to it, and oh boy, is that the way to do trips.
Brent: As if we needed to complicate it further, we hooked up Devarich,
Brent: remember the big D, and Imich to make a timeline for our trip on Trek to keep,
Brent: the memories after we get there. That's so smart.
Chris: String it all together.
Brent: We used GPT and Claude models to make the rough skeleton before we left on the trip.
Brent: This put in places we wanted to stop and the routes to get there.
Brent: But once we left, we used Hermes agents only. Shout out to Quinn 2.7+.
Brent: My dad would book a hotel, give his agent the booking confirmation number,
Brent: and my agent would send me the Google Map link and suggest a good dinner spot nearby.
Brent: Hermes also managed our time so we could visit the Gateway Arch and Arches National
Brent: Park. Yes, yes, we like Arches.
Brent: While also making tracks across the country to make sure we get to the check-in on time.
Brent: This whole trip was made so much easier by combining all of those tools.
Brent: Imagine how many people contributed to this trip from the open source community. Wow.
Brent: All the time we saved in planning, let my dad start to catch up on Linux Unplugged
Brent: episodes, as well as time to argue about the relative merits of supporting legacy
Brent: and outdated protocols in the kernel, such as AppleTalk.
Chris: Yeah, buddy. So definitely not a Mac user. I have a couple of hot tips for you
Chris: because you can probably guess I have done something very similar.
Chris: And I would very much recommend, it's free to do, to sign up for the TomTom
Chris: developer API because this gives your bot super routing powers. It knows about outages.
Chris: It knows about closures. It knows about weather. It knows about traffic.
Chris: It also can do route distance and planning and they have an endpoint if you
Chris: have an EV. So it can do range calculation as well.
Chris: Then if you really want to go nuts, most states or like up in Canada provinces
Chris: and areas will have developer APIs for their local traffic information.
Chris: So for me, I'm very often in the Washington, Idaho, Oregon or B.C. area.
Chris: So I signed up for APIs for each one of those and I can check their particular closures when routing.
Chris: Then on top of that, if you really want to go crazy, you can also tie into things
Chris: like free campsites.net and other services like recreation.gov.
Chris: and it can actually do availability planning and checking.
Chris: So you can bring it all together and you can have it produce quite the comprehensive
Chris: plan. I just went on a trip to Idaho over the weekend.
Chris: The entire thing was generated by my agent. And then for consumption by the
Chris: wife, I had to produce a PDF, which she loved. And it just broke everything
Chris: down day by day where we're going to stop, where if you wanted to,
Chris: if you don't want to stop there, you could stop here. You'll have this much
Chris: battery charge when you arrive.
Chris: These are the food places nearby.
Chris: These are the campgrounds that allow you to stay one night. You can book late.
Chris: They let you park and sleep in a car, like all the stuff.
Chris: It just does all the stuff. Oh, and it'll even tell me because this is a problem
Chris: here. It'll tell me like how close I'm going to get to wildfires along my route
Chris: because I'm checking all the wildfire information as well.
Chris: And it just produces such an awesome comprehensive. This is coming from somebody
Chris: who's a road trip enthusiast, right? I mean, I've been doing this for a long
Chris: time and this is all stuff I had to do.
Chris: You can even have a check in on cellular coverage. I mean, in other words,
Chris: keep going because it just keeps getting better and better. It's really pretty great.
Brent: Can we just have an API for everything? Finally, maybe I would book my trips in advance.
Chris: Yeah, but then you also have to do what the agent tells you,
Chris: and that's the human factor. All right, well, we do have some boosts,
Chris: too, so let's get to those, gentlemen.
Chris: And Greg, the lawyer, comes in with 40,000 sats. Greg, you're back again. Look at you.
Chris: And Greg comes in with one message. He comes in with boost.
Chris: Love it, Greg. Thank you very much. Greg, you're often on the top of the list
Chris: there, and it doesn't go unnoticed. We appreciate it very, very much.
Chris: You, sir, are the baller booster of the show. Appreciate you.
Chris: Hey, speaking of PJ and his B-Day.
Wes: Oh, we got a birthday booster. Except this was actually a boost from last week's live.
Chris: Oh, really? Coming in live so early but late?
Chris: All right. Do we have a sound for 8,888 sats? How about that?
Wes: Yeah, PJ says, does this thing work? And yes, it does. I guess on a delay this
Wes: time because we were not watching live.
Chris: But thank you.
Wes: It's fun to get live boosts.
Chris: Thank you, PJ. Thank you. Yeah.
Brent: Well, Colarapha boosts in a row of ducks.
Chris: Colaphora? No.
Brent: Colarapha?
Wes: Colaphora.
Chris: That ain't right. No message, just value. We take that. Thank you very,
Chris: very much. Appreciate that.
Chris: All right. Next boost comes in from Nyquist, which almost sounds like the drive
Chris: I used to use. Is that, are you Nyquist? Are you referring to the old Nyquist
Chris: drive? Cause that would be awesome.
Chris: Also no message though, just the value.
Wes: Sir, Omlet comes in with a row of ducks.
Chris: Hey!
Wes: When I hear SyncThing, I just have to boost in.
Chris: All right!
Wes: Such a game changer.
Chris: Isn't it? Some projects out there just don't get enough love,
Chris: and that's where we're like, no, we've got to talk about this.
Chris: I know people know about SyncThing, but it just doesn't get enough talk.
Wes: At Chris, I enjoyed the irony of recommending it because there's no cloud,
Wes: and then pointing a free cloud-hosted LLM at it, but I do agree, the API is great.
Wes: On the topic of web and thin clients, Maybe check out a file browser fork.
Wes: And then Bearded Tech independently also recommended, I think,
Wes: there's like a maintained fork called Quantum File Browser or something like that.
Chris: Yeah. Yeah. So because the question was is like, how do we stack like a file
Chris: manager or something on top of this?
Chris: So that way when you're on a mobile device, you could get to these files or
Chris: maybe you're on a computer that doesn't have sync thing installed,
Chris: but you're on your machine.
Wes: You just want to quickly download or maybe even upload something. Yeah.
Chris: So this is File Browser Quantum.
Chris: that's pretty cool that's pretty cool mostly Go and it is Apache 2.0 licensed.
Wes: Yeah another option would be something like Copy Party which is also in that
Wes: space so there's a few different things that maybe we should be.
Chris: Trying I need to try something I do because that is going to be that's going
Chris: to be one of those things if I don't set it up when I do need it I'm really going to be kicking.
Brent: Well speaking of omelets Outdoor Geek is here with 5000 Sats,
Brent: here's a psa avoid the hp 840 g9 12th gen intel for linux,
Brent: i couldn't get any sort of low power state working on this thing oh sleep battery
Brent: drain is more than 10 per hour on linux on windows however it's less than one percent.
Chris: Oh that's annoying.
Brent: I tried nix os pop os and fedora i put maybe eight hours of troubleshooting
Brent: into this thing about two months ago but nothing made this thing better.
Wes: Oh well you you definitely tried you gotta give credit for that hp.
Chris: 840 g9 12th gen intel he says.
Wes: Well if anyone knows any tricks.
Chris: I just haven't been able to pull the trigger on a used laptop it's just such
Chris: a bad time to buy a computer right now.
Brent: This is a bit on theme for me this week because i uh as most of you might remember
Brent: i just moved recently and so somehow the dev1 came out of box this week and
Brent: i plugged it in i was like wait a second this thing's charging 100% all the time.
Brent: I need to just set this thing maybe to something lower, because I mostly use it on desktop.
Chris: Nope.
Brent: Can't do that. Did a ton of research. Nope.
Brent: None of the kernel for this thing just can't handle it. There is a PR to allow
Brent: it to happen, but who knows how long that's going to take. Yeah,
Brent: I was very surprised. Very, very surprised.
Brent: Even TLP can't do it on this thing. Nope. Not going to happen for this one.
Chris: Okay, I got a suggestion. You set up Home Assistant.
Chris: you get a little sensor on there that monitors the battery charge then you put
Chris: your charger on a smart switch the smart switch gets toggled by home assistant
Chris: when you reach 80% home assistant turns off the smart switch and then when you
Chris: reach 60% home assistant turns it back on the digital world fails you?
Wes: Go to the analog via the digital control.
Chris: MRAM comes in with a row of ducks 2,222 cents first time booster wow that's
Chris: awesome thank you for boosting,
Chris: I like RAM.
Chris: Appreciate the value.
Wes: Too Many Accounts comes in with 11,337 sets.
Wes: Picking up the Firefox thread here, I'd love your take on how to handle multiple
Wes: Firefox profiles elegantly.
Wes: Firefox now ships to profile managers, but both lack the ease of Chrome profiles,
Wes: for a GUI file like me. I love hate, my foxy friend.
Chris: So I just randomly did see that old, like there's like two versions and one
Chris: of them look real old. Like the original one from early days of Firefox.
Chris: I was surprised that that UI had popped up.
Chris: I don't do the profiles thing anymore. I have messed around a bit with containers.
Wes: Ah, yeah, I have done that too.
Chris: And I do find that to be kind of useful and tab groups.
Wes: Right. Yeah, I've used containers, especially for things like,
Wes: you know, you have like a day job or a particular account associated for something like that.
Chris: That I think works better than individual profiles personally.
Wes: But we may not be addressing what you use profiles for. I'm kind of curious what you need them to do.
Chris: And have you tried that? that because i i don't know it's it's like you've probably
Chris: seen it once before maybe you took it off your menu bar kind of like when you
Chris: when they first added it they kept popping up,
Chris: every few updates and first i was like i'll get this out of here i don't want
Chris: i don't care about this but then i actually like stopped and used it and i actually
Chris: found it pretty effective.
Brent: I haven't quite used the chrome profile switcher so i'm not sure which features
Brent: uh you love about it but i do remember using profiles in the past and i found
Brent: the easiest way to use it was to have a distinct,
Brent: shortcut icon.
Chris: For them that would just.
Brent: Launch that one and that seemed to be the easiest way to manage it just outside of the browser.
Chris: Itself. Usually it's just a pending, a profile kind of stands at the end of
Chris: the executable. It's not really that hard.
Chris: And you can usually just play around with it at the command line and see what
Chris: works and then make that the launcher. But that would probably be one way to do it.
Chris: I guess that we need more information to properly answer this and ask why you
Chris: and we're also asking to be honest with you if you're holding it wrong a little
Chris: bit but just a little bit like you might not be we might wait you might just need more context,
Chris: Bronzer Wing comes in with 11,233 Satoshis.
Chris: One vote for a Clanker podcast. Have you guys tried the Pi coding agent?
Chris: I'm writing it with Llama CPP with Unsloth QN 3.8 Q4 KXL with MTP and No Vision
Chris: MM Pro J for extra speed. Okay, I don't know what that last one is.
Chris: Love it. I lost me on the last one. Feels almost frontier-like.
Brent: Whoa.
Chris: I ditched Hermes and OpenCode as they felt too bloated for local models.
Chris: Oh, that is an interesting observation. I could see that.
Chris: So I could see maybe why Pi coding would be a little more appealing.
Wes: Yeah, if you don't. And, you know, if you are targeting a specific thing,
Wes: you don't need a full sort of general assistant type agent. Skip the bloat.
Chris: Have you tried? I know you've looked at it, Wes. I know you're familiar with it.
Wes: Yeah, I haven't done anything extensive with Pi. I have, yeah,
Wes: poked at it a little bit because it's kind of, you know, it was some of the
Wes: fundamentals here early, too, and it's just continued on. Maybe we owe it some time.
Wes: Thanks for the idea there, Bronzwing, and the report. They're always useful.
Chris: I agree.
Wes: G Anonymous comes in. 4,500 and 13 sats.
Wes: No message found. So I'll take Distro Stew too because Distro Stew sent in 12,345 sats.
Chris: You know, it's been a minute since we've had ourselves a Spaceballs boost.
Wes: Yikes. 300 character limit.
Chris: Oh, yikes. You say. Blessing, we say.
Wes: I recently created a hub and spoke module for my sync thing setup.
Wes: Two Nix servers. Everything else is a spoke. Phones, laptops, etc.
Wes: When I was mesh syncing every host to every ephemeral host, it led to an unnecessary
Wes: amount of conflicts over time.
Wes: And then we get a little link from Stu here.
Chris: Which doesn't seem to be working.
Wes: Oh, no, it didn't seem to work. Maybe it got cut off by the 300 characters.
Chris: Maybe.
Wes: But love it. Thank you for the architecture.
Chris: Yeah, the old hub and spoke model. I did it when I, for a long time,
Chris: like sort of my main sync thing server was actually a VPS with some attached storage.
Chris: And then I would attach everything to that and then have it,
Chris: you know, everything obviously because of its high speed would sync there first
Chris: just naturally and then it would sort of distribute to everything else and that
Chris: worked quite well. It did work quite well.
Brent: Well, Gene Bean boosted in a couple rows of ducks for a total of 6,666 sets.
Brent: First one here, the hold music from Data in LUP680 is quite great.
Brent: As for making up for missed streaming sats, wallet emptied while driving.
Chris: On a road trip, eh, Gene?
Brent: Do you all have any suggestions for interacting with SyncThing from iOS?
Chris: Probably using whatever file manager that ends up being agreeable,
Chris: I think. Really, I think it's probably putting a web file manager on a mesh
Chris: VPN network is probably going to be my solution for that.
Chris: I don't think sync thing as a service is very viable unless somebody knows differently.
Chris: If anybody has a solution for that, please let us know because that is something I'd like to solve.
Chris: Mr. Mayhem came in with a smoking hot boost right as we got going here. 2001 Satoshis.
Chris: Your pre-show song reminded me to boost. Well, thank you very much,
Chris: Mr. Mayhem. Appreciate that.
Wes: Time for some fiat booze here we go boys well tan comes in with a hundred dollars wow,
Wes: Month two, FOSS ad boost.
Chris: All right.
Wes: Thank you.
Chris: Thank you, Dan.
Wes: This is for a cool little project I found called the Open Book Touch,
Wes: which is everything I've thought an e-reader should be and nothing more.
Wes: I've already ordered one and thought I'd spread the word.
Chris: Okay, look at this. This is looking good. So it looks like pricing will be between
Chris: $150 and $250, depending on options.
Wes: A pocketable, front-lit, open-source e-reader for every book in every language.
Chris: Looks like a cleaner version of the Kindle. about the size of a large Field
Chris: Notes notebook, which is a great visual.
Chris: And yeah, it's an EPUB reader.
Wes: No physical buttons.
Chris: The ink.
Wes: Device is a single, perfectly symmetrical 4.26-inch front-lit e-paper touchscreen,
Wes: one centimeter thin in its enclosure.
Chris: It looks great.
Wes: Open book touch slips into a pocket and disappears until you unlock it to read.
Chris: All right. Nice find, Dan. Thank you very much. I really would love to know
Chris: how you like it when you get it.
Wes: Yeah, please do report, because, boy, that looks tempting.
Chris: Mm-hmm, mm-hmm.
Brent: Well, definitely not. A Mac user comes in again with 20 total fiat. Yeah.
Brent: My dad and I just finished a cross-country client-gertriff powered by open source.
Chris: Oh, this is his boost to refer. You know, that's a nice way to do it.
Chris: If you're going to do a long email, that's really thoughtful.
Brent: Thank you, definitely. There's some extra details in here. Track and Devaric,
Brent: which we mentioned. Image, we mentioned. Hermes, of course. But there's Nebula in here as well.
Chris: Oh, yeah. Nice, dude.
Brent: He says, see my email for more fun info. We did, and that was great.
Brent: Boosting in to say thanks for being the entertainment on this trip and providing
Brent: all the pics to make it happen. Keep it up.
Chris: Well done putting it all to practical use, definitely. That's really awesome.
Chris: Monty comes in with a free member boost. I support the use ThinkPad plan.
Chris: There's never a shortage of good options in that 300 range.
Brent: Agreed.
Chris: I look for a listing that have several of the same model as a sign that there
Chris: are off-lease business units. Yeah.
Chris: Yeah, one listing has like 10 or more available. They usually come looking like
Chris: new. Then I resell the previous and I get close to half back.
Brent: Nice.
Chris: Yeah, I guess around $300 if you only use them for a year or two.
Chris: They probably don't lose too much more value. Halfback is not bad.
Chris: That's kind of what I really want is a ThinkPad, around 14-inch screen,
Chris: 32 gigs of RAM, and 10th Gen or newer processor.
Chris: I think 300 is a little, probably not quite enough at this point.
Chris: But that's what I was looking at on eBay, and I just haven't really pulled the trigger yet.
Brent: Well, we have another member boost here from Paul. Paul writes,
Brent: continuing my member boost streak, do you try local tier models like the 30B
Brent: variants of Muse Glimmer, Quen, or Gemma?
Brent: I guess you don't have the resources to run them on your own hardware in a meaningful
Brent: way, But would you be interested in trying to use small models exclusively for a week as a test?
Wes: Ooh, fun idea.
Chris: I'm always trying them to see what I can eke out of an old computer.
Chris: And that's not much. Wes has done the Rent-A-Gupu model.
Wes: Yeah.
Chris: And has played with some of the more powerful versions of these self-hosted models on a rented GPU.
Wes: Yeah, I've played a little bit with the Muse Glimmer model. That was fun.
Wes: I was just playing with the Quen 3827B model.
Chris: Yeah.
Wes: And a tiny bit with Gamma. I'd like to do a little bit more with Gamma.
Wes: But yeah, I haven't done like a whole week long. It's more like,
Wes: you know, when new models come out, I usually try to find some time to go at
Wes: least put them through some basic paces.
Wes: Doesn't always happen, but I'd like to do more.
Chris: Yeah. Oh, boy. Are we ready? One day in the distant future, hardware prices,
Chris: some at some point will come back to earth and these models will be optimized
Chris: for on a local hardware and maybe the two will meet maybe,
Chris: A guy from Vienna sent a member boost. Use a rubber duck.
Chris: Save the planet. I had this thought yesterday when debugging a network issue.
Chris: The solution was quite obvious, but asking the LM first got me into a cul-de-sac.
Chris: The rubber duck uses the energy and doesn't talk back. Nice feature sometimes. Yeah, it can be, right?
Chris: You know, the rubber duck approach just to kick things around is definitely a valid use.
Chris: Rubber duck it, Wes. And plug your laptop in. Wes's desktop environment is using
Chris: too much power. Let's plug it in real quick. You want to take Lutra's copy?
Brent: Gotta optimize that, Wes. Lucitropy came in with a free member boost.
Chris: Lucitropy.
Brent: I went to the future and got Wine 99.0, so I don't need to dual boot Windows anymore.
Brent: I think we're reaching a point where you can clank any unsupported application
Brent: into Wine. I was able to get my clanker to iterate and debug loading a small
Brent: proprietary work app with Wine, and now I don't need Windows.
Chris: Hmm. It does seem like... Wine compatibility is a softer target than porting
Chris: an entire Windows application.
Chris: And we have seen a couple of success stories of previously very complicated
Chris: Windows applications getting wine support.
Chris: So we may be, you might be honest on here.
Wes: I mean, you can imagine, right? Just a few, especially if it's just a couple
Wes: of spots, like it's not missing a whole giant compatibility thing,
Wes: but it's just a few things you need to fix or implement some stub or something.
Chris: Yeah. The real trick would be if anybody ever got Mac apps working,
Chris: but now that they're on the M platform, I don't think that's ever going to happen.
Chris: Thank you, everybody, who boosted the shows. We have those of you who streamed
Chris: them stats, 15 of you, collectively stacked 26,303 Satoshis.
Chris: I guess that's the Texas amount. There you go. 26,303. That's not too bad.
Chris: Thank you, SatStreamers.
Chris: When you combine that with our Fiat Boosters and our SatBoosters,
Chris: and we'll just kind of convert it all to sats, the show this week stacked 292,102 Satoshis.
Chris: Not too bad at all.
Chris: And, of course, thank you to all of our members who put your support on Autopilot.
Chris: Don't forget you get that free member boost as a reward at boost.jupiterbroadcasting.com.
Chris: and you can support each individual episode as well by going to boost.jupiterbroadcasting.com
Chris: or in your podcast app. The memberships are pretty neat, though.
Chris: Jupyter.party gives you access to the entire network's special features,
Chris: like bootleg editions of the show, which right now, the bootleg edition of Linux
Chris: Unplugged is almost an hour and 54, 55 minutes long at this point.
Chris: Lots of content, really good discussions in those bootlegs, sometimes develop
Chris: into full segments, but sometimes it only ever lives in the bootlegs.
Chris: If you want more content, there's a whole other show.
Chris: and jupyter.signal, or you can support just this humble show at linuxunplugged.com slash membership.
Chris: I'm kind of excited about these picks, boys. Let's start with Dank Calendar
Chris: because it's the one I told you about that kind of proves that these quick shell
Chris: applications don't have to be tied to an individual desktop environment or individual shell.
Chris: They can actually be spun out into their own applications. And I present you
Chris: Dank Calendar, which is also available on Flathub.
Chris: So you can just install it on any distro of choice.
Wes: Yeah, look at this.
Chris: Now, it's a simple, clean, local calendar that can connect to Google,
Chris: Microsoft, CalDev, and iCloud calendars and pull it into one app.
Chris: And I use it in coordination with my Keeper application, which is already syncing
Chris: all of my calendars to one iCal feed. So then I can just plug that into Dank Calendar.
Chris: And, well, Richard is your mother's brother. I now have not only a great desktop
Chris: calendar app, but a great calendar widget as well.
Wes: Yeah, and you can tell how it's made. I mean, one, it's got a flake.next. Love to see it.
Wes: it's 49% go and 45% QML.
Chris: The other one, you know, Wes, you were talking about sources of truth.
Chris: And I think when you're thinking about agentic network management or you're
Chris: just thinking about human network management, having a visual home lab map,
Chris: diagram that is live and represents your actual living network.
Wes: Oh, not like the way it was six months ago when I last thought to update it?
Chris: Yeah, is pretty useful. And I've always kind of loved experimenting with these.
Chris: And I think I have found the apex predator in the space.
Chris: It's called Home Label. It's a visual home lab manager mapper kind of a dealio.
Chris: It's self-hostable, and it visualizes an interactive diagram of your network with live monitoring.
Chris: It provides a network integration for like your IP network, your Zigbee devices,
Chris: and your Z-Wave devices.
Chris: So you can also bring your smart devices into this diagram, which is really, really powerful.
Chris: It also supports importing Proxmox. So if you use a Proxmox server,
Chris: you can connect to it, and it understands the architecture of your Proxmox VM
Chris: and pulls that into the diagram for you as well, including the networking setup and all of that.
Chris: It's great. It produces a canvas layout that you can export as Markdown or you
Chris: can export as a PNG, or you can make available to agents over at MCP.
Chris: And then they can use this as a source of truth for how your network is actually
Chris: physically laid out and what services run on which device.
Chris: So this goes back to what Wes was saying about having a source of truth.
Chris: This could be a source of truth in that scenario.
Chris: So again, it's called home label. And one of the things I love about it is even
Chris: if you never had any plans to use the MCP or whatever, it produces this great
Chris: visual diagram system of your network –.
Chris: That you can use as a human being. And they've just recently announced a Hacks
Chris: plugin so it'll integrate with your Home Assistant if you use the Home Assistant
Chris: stack and pull in that information.
Chris: Every device, one canvas, your switches, your routers, your cameras,
Chris: your VMs, your NAS device,
Chris: any electric smart devices that are reading electricity usage,
Chris: your ISP information, Wi-Fi stuff, like I said, ZigBee and Z-Wave,
Chris: all of it into this, and then it diagrams it all up for you and then gives you
Chris: nice little status lights about what services are active, you could literally...
Chris: Diagram your network rack if you want with this thing and end of down to the
Chris: individual port level if you so care.
Chris: And the ability to pull in the Zigbee and the Z-Wave networks so you can map
Chris: your IoT network along with the rest of, so you now get the full picture of
Chris: the network, not just your IP network
Chris: and not just the Zigbee network and not just the Z-Wave network off on their
Chris: own islands, but the whole thing and all of it monitored by the system available
Chris: as an API, a web interface or an MCP.
Chris: homelabel.net it's fantastic I set it up this weekend I've been loving it.
Brent: This is so crazy it's very.
Chris: Impressive wow it's great I'm really really happy with it I had it scan,
Chris: both my hen network and my main network and the proxmox how did it do what did
Chris: you learn all diagram nice it's MIT licensed so,
Chris: have at it you can run it via docker or whatever you like I'm doing Docker compose for this setup and,
Chris: easy peasy. Really? It wasn't, it was, it was nothing.
Chris: And the results are great. The scan is great too. It has, um,
Chris: by default, you have to review the results and then approve them,
Chris: which is my preferred route because otherwise sometimes these things just get
Chris: crazy and then you can just get to diagramming.
Chris: Uh, you could likely even just have the agent generated diagram,
Chris: I suppose if you don't want to do it yourself.
Chris: Um, but it's really neat. It's neat to also see all my cameras in their own
Chris: group and stuff like that, that other tools just haven't really properly visualized.
Wes: Yeah, it seems like maybe part of the value is that it has a wide array of possible
Wes: options and things that it has understanding of and that you can therefore have
Wes: them all in one cohesive picture.
Chris: Your IP network, your Proxmox, your Zigbee, and your Z-Wave,
Chris: is really great. I've never seen that before.
Wes: You don't have to bring your own understanding and layers and stuff.
Wes: It understands that already.
Chris: Yeah, you can. So if you don't use a Hacks integration, then you have to just
Chris: connect to like your MQTT server or something.
Chris: There's a little bit more work there. But if you use the Hacks integration, it just ties all in.
Chris: And then to be able to export it all is really nice. So like you can like,
Chris: you know, go flex your network diagram when you get it all pretty as a PNG. That's pretty cool.
Chris: And if you do want to hook it up to the MCP, you can just, you can ask your
Chris: agent or your cloud code or your open code, whatever it is, what nodes are currently
Chris: offline, it gets a list back.
Chris: You could say, add a new LXE container named PyHole at 192.168.1.5 running on
Chris: this host connected to this virtual VLAN.
Chris: And the agent can query this and understand what all of that means and have
Chris: a live updated map and understanding of it.
Chris: So you're going to reduce not only exploration times, you're going to reduce
Chris: your token costs, but you're going to reduce mistakes too. And then that means
Chris: you can use models that perhaps aren't, you know,
Chris: Fable or something. They don't have to be frontier level.
Wes: I noticed it also has a read-only stats API you can get.
Wes: So that's kind of nice. You can see how many nodes you've got,
Wes: stuff that's offline, unknown devices, and when you last did a scan.
Wes: That smells like a little Quickshell widget to me.
Chris: You're right, dude. You're right, actually. Well said. I hadn't thought of that
Chris: yet, but I mean, I have it all set up. I'm all in on this.
Chris: I really like it. And it's really, it's complimentary to some of the other network
Chris: monitoring I already use, too. It's fantastic.
Chris: Can you hear the plane out there, Brentley? Did you hear the plane?
Brent: Makes me want to fly.
Chris: We had a banner going by for Home Label as we did the episode.
Chris: I don't know. I know it's an audio. Yeah, yeah, yeah, of course.
Chris: But that was actually the smoke one.
Brent: Oh.
Chris: Yeah, so MIT license, link to that in the show notes. And if you forget the
Chris: show notes, well, those are at linuxunplugged.com. And this one is slash 682.
Wes: It's best not to think about it and just read the numbers without internalizing.
Chris: Also, I want to remind you the show is live. We make it a Tuesday on a Sunday over at JBLive.tv.
Chris: Yeah, you can get it converted at jupiterbroadcasting.com slash calendar.
Chris: The mumble room's always going throughout the week, but really pops during the show.
Chris: And then if you want to read more, look at something we said,
Chris: or point your clanker at more information, Wes, hook them up with the info.
Wes: Well, do you prefer an SRT file or the even more robust VTT file?
Chris: I think I'm going VTT these days.
Wes: You're a VTT kind of person. Okay, yeah, web VTT, good standard there.
Chris: I'm liking that.
Wes: But that's not all?
Chris: No.
Wes: No, there's an upgraded now in two dimensions instead of just one video feed. Yeah, an MP4.
Chris: That seems like a lot of work. Huh, that's just in the feed?
Wes: Yeah.
Chris: Just a regular OSS feed?
Wes: Right next to where we keep our JSON file with our Cloud Chapters.
Chris: So like structured data that you could just analyze and go right to the section in the show?
Wes: It's a little out of vogue. It is XML-based, right?
Chris: Oh.
Wes: But technically, XML is parsable, yes.
Chris: Oh, okay. Can we just do it in Markdown then?
Wes: Someday. We probably will.
Chris: I don't know about that. So we'd love it if you joined us. Take advantage of
Chris: all those extra features and all that over at linuxunplugged.com slash RSS for the RSS feed.
Chris: And of course, of course, that mumble room.
Chris: Details at jupyterbroadcasting.com. Check out some of the other great shows
Chris: over there as well. The launch comes out on Tuesday.
Chris: Actually, it's live Tuesday. It comes out on Wednesday. Check it out. Weeklylaunch.ru.
Wes: I think there's an RSS feed for that.
Chris: There might be. There might be several RSS feeds.
Wes: More XML, baby.
Chris: Websites are great. I tell you what. All right. Thank you so much for joining
Chris: us on this week's episode of your Unplugged program.
Chris: And we'll see you right back here next Tuesday, as in Sunday.