Why? ↩
As I said above, I've got a few reasons for ditching windows. The second biggest thing among them being that windows is trying to push out recall onto users. Yes, I'm aware that it's currently "opt in" and only in "beta". But the fact that the idea to keylog and screenshot everything a user does managed to bubble up through the layers of beaucrazy at a company that big reeks of absolutely rotten management. It's SO invasive to user privacy, and even if they roll it back, it's kind of like if you had caught your best friend throwing a puppy into a river.
You're not going to look at them the same. Suddenly, everything else that they do seems suspect.
That's sort of the same feeling I got from Microsoft's attempt to add that in. But, like I said, that's the second reason. The first reason is that I really, really, hate having software installed and uninstalled on me with 0 warning.
Microsoft replaced the default photos app, which had built in cropping, doodling, and adjustments for resizing things. I used it all the time to tweak reaction images from my screenshots folders or make little tutorial images for people with big red arrows. They dumped it, no warning, with no replacement offered that could do the same thing. Assholes.
Microsoft replaced the Snip & Sketch application with 0 warning. They tried to replace it with a "snipping tool", which does do the same thing. But what the hell is this?


The left is their "new" snipping tool, the right is the old one. They look similar sure, but when all of a sudden searching in the task bar started giving me something that looks unstyled and doesn't match what I'd been used to? I thought I had a virus or had messed up some kind of theming configuration. Yes, they both work, functionally the same, but why the hell would you uninstall something that matches the look and feel of the OS and make something that looks like it's not working properly be the default?
And lastly, I don't want CoPilot. For the love of humanity, if I want to use AI for something, I will go to the website or tool that offers it. I do not want a stochastic parrot hiding behing a markov chain to have any level of control in my OS. Let alone collecting and phoning back telemetry to gippity knows where.
I'm no Richard Stallman, but I do believe that if you own a computer, that you should own your computer. It shouldn't be screwed up on a whim by a "security update" that then blue screens the whole thing, or that resets every single registry value into something weird and screws up all your context menus. For someone who spends nearly 18 hours a day in front of a screen in some way or another, my computer is a very personal place to me, and like when someone robs your home or car. If you walk into a room and things are out of place, missing, or added. You feel violated.
And quite frankly. I'm tired of feeling like Microsoft has been violating me every time I do a windows update. And so, It's 2025, windows 11 is being forced on people while windows 10 is going to be end of life in a few short months. I could stay on my windows 10 machine, safe and secure knowing that with end-of-life status comes no more forced pushes of random crap on my head, but also, I do like not having viruses, and so, not having access to updates for zero day exploits or similar, isn't the world I want to live in.
So I shopped around. Looked at distros, at what I do on a day by day basis, and settled in on going over to PopOS. The nice thing is that system76 offers pre-built machines that are already loaded up and ready, They also have an idealogical bent around your hardware being free as in FOSS that I like, as you might suspect given my rant above. I had a bad experience the last time I built a PC myself, and so, I figured the extra markup for labor on their computers was an acceptable trade. So. I ordered it. Waited. Had trouble with UPS (as one always does at least once a year). Then got my computer's large box, and then lugged it up the stairs and let it sit in the corner of the room for a week while I waited for a new capture card to arrive in the mail.
When the weekend arrived. It was time. Here's my two day journey in what I (somewhat fondly) shall refer to as: XenoLinux Chronicles OS.
Arranging the new computer's home ↩
Ever see a "battle station" thread before? Well. This is what my current setup looks like:

As you can see, I live surrounded by the things that I love: Anime, computers, video games, and Hatsune Miku. I've had a tatami mat + futon combo for sleeping for the better part of the decade and I enjoy that it helps me keep my back straight; even if it does give pause to folks who enter my room for the first time.
While it might look a tad messy, I assure you, everything is in its right place. Also, the color balance of the photo is a bit off, my sheets are a dusty pink, not an off yellow. But, putting aside my worry about what anyone on the internet might think of my room, you can see that I've got my computer (the windows one) off in the corner. This is for a few reasons:
- It's between my TV and my Switch, which makes cable management easier
- It's near my router, despite a short 5ft cat5 cable
- The space near the head of my bed can be used to setup consoles, then plugged into the capture card without any fuss
- It provides low white noise for sleeping to
- Honestly, it's just a good spot for it.
However, you can see that my horizontal real estate is a bit low. Well, there's plenty of space on the floor as you can see, but I mean that I've got a shelf on its side for my monitors, and then the computer itself is serving as a stand for some figurines and whatnot. My keyboard and mouse are squished together onto a bed laptop table that happens to sit at about the right height for me when I sit on my bed and type.
Now, I could pick up my windows machine, and then just plug in the linux box in its place. But then, where would the windows machine sit? And more importantly, while the plan is to replace the old computer, I'll still need it while I transition things over and on the off chance that my dreams about a capture card working on linux are destroyed (read on for more about that). All of that means that I need to figure out a way to get more desk space.
I have a plan. You see, I have FOUR of these black shelves. Two of which serve as clothing containers, and so, I'll just take one out from my closet and use that! Given that I work from home and rarely change out of my pajamas, moving some of the lesser used drawers out into the open isn't going to cause any problems for me. But, I'll need to shift the existing shelf around a bit to make room. And so, I've decided that first things first. I'll do some cleaning!
As I said before, I'm a fan of my tatami mat setup. And one of the reasons is that it takes all of 30 seconds to do this:

"So much space for activities" is a quote that comes to mind, despite there being no bunk beds in sight. This is again, by design. It's not just about making it easy to clean, but also that I originally ditched my bed so that I'd have lots of room to play VR games. I never actually got a headset because I had trouble justifying the purchase to myself, but, well, the intention was there at the start.
Anyway, I got to work on moving my clothes hamper out of the way, and did a bit of vacuuming where my bed had been. All the while happily listening to music playing from my windows machine. With the room a bit cleaner, I pulled out the shelf and its bins and set it up near to where it's new home would be:

However, at this point, I got a little bit stubborn for a bit. As I mentioned, I was listening to music, and I really didn't want to not do that, so I stood for at least a minute staring down at the cables intersecting where I wanted to vacuum and dust, trying to think about how I could keep the monitors, power cables, and everything connected without having to move things around.

I finally gave up. Turned on a playlist on my phone, and shut down my PC for the first time in a few weeks. Then proceeded to vacuum, shift things around, and then stand up the two towers next to each other. Butts out. I pressed the power button on the Thelio Mira and watched the lights glow. Good. It posts, and nothing was broken during shipping.
I plugged in one of my monitors to the moved PC, and one into the graphics card of the new Linux machine. Time to see if system76's nvidia graphics really do address the various historical problems Linux has had with the vendor for ages.
Nvidia... ↩

Welp. The black screen sure isn't a sign of that. I swapped monitors, changing out the one connected to windows for the one for linux and vice versa. Oddly enough, the monitor stayed black.

The asus monitor is the one which my speakers were plugged into 1 and was moved around a bit. So I unplugged everything, prayed, then plugged it all back in and phew. It turned on and showed me my windows screen. Great. Now, how come the Linux box didn't show the other monitor when I plugged it in?
Assuming that Torvalds had called out Nvidia as shit for a reason, I went ahead and plugged an HDMI cord into the slot that led to the integrated graphics on the motherboard (red arrows). To my joy, the monitor flickered to life and showed me the start screen for the Pop OS installer:

Phew. What a sigh of relief I had! If that hadn't worked I would have been feeling like I'd bought a very expensive paperweight. Not to mention that I do NOT want to think about what it'd be like to ship it back to system76 if there was a problem. Lugging a computer multiple blocks over to the post office is not my idea of a fun Saturday morning. Then again, neither is praying that my monitors were going to be compatible with linux. So. I suppose I was stressed regardless. But hey, now, I'm less stressed!
I walked through the setup steps: languages, user creation, password, deciding if I want full disk encryption or not. Simple stuff, the system configured itself and restarted while I nervously watched the screen go dark and come back up to the disk encryption prompt. It asked me for my password, then dumped me on the login screen, which then asked me for my password again to get into the desktop. That'll have to change… but that can come later. For now, I'm at the welcome screen!

The OS then walked me through a very brief tutorial, asking me where I wanted the taskbar, if I wanted the ones along the top, and then it prompted me to update the 500 something out of date packages.
"How strange!" I thought, the reason I chose system76 is that the website and chatter online made it sound a lot like they did a good chunk of driver setup for you and whatnot ahead of time. But I guess maybe I misunderstood. So long as their nvidia drivers work ok, then that'll be fine, right?
So I let the system run its updates, and this also included installing the nvidia drivers. "Aha" I said to myself, "that's why plugging into the graphics card didn't work for the monitor before!". And now that the drivers were installed, I should be able to! So, I went ahead and did just that, and lo and behold they actually worked!
Look at that. PopOS 22.04 running with an Nvidia 5060ti! And it's actually working! I was happy. And so, I stood up and stretched my legs and grabbed a quick snack. When I came back, the computer had suspended itself, so I wiggled the mouse and

Uh. What? The keyboard was also responsive. As was the mouse. I tried turning the monitor on and off, which resulted in the login screen moving around, but everything remained busted. A quick google found some folks on reddit talking about how NVidia cards can cause problems when the system suspends because they do something that screws it up.
Well that's easy to fix. I never shut off my computer, and on my windows machine I disable suspending and screen saving. So I was planning on doing the same here, so if that's all I have to do in order to have the graphics card continue to work without errors, that's easy.

With that out of the way and one forced restart later, I tested if the linux machine could handle two monitors plugged in: it can. Great. I still haven't figured out what I'll do exactly when I stop using the Windows machine entirely, maybe canabalize its hard drives, but, for now, it will continue to live on the desk until I'm sure that my streaming setup works. Speaking of…
BlackMagicDesign's Intensity Pro 4k & X11↩
One of the many reasons I'm upgrading my computer is that I do a lot of streaming. I've used an ElGato Pro HD60 for years now, and it still works like a charm. However, it doesn't work on linux. There's a forum post and some code that you can dig up online to get some of their other products working with OBS and linux, but not the PCI card that I have. And so, part of this big upgrade is also upgrading to a new capture card.
I did a lot of forum reading, amazon review reading, and hunting around for anything I could find that said, one way or another, if their card didn't actually work like they claimed it did. After some waffling, I finally purchased it and decided that if it didn't work, then I guess I'd have to get one of the higher latency USB versions. But hey, they put our davinci resolve, and I know that there's a ton of people who swear by that on linux, so I've got high hopes.
So I turned off the computer, went and stood on a rubber mat for a moment, then shuffled back across the carpet with a screwdriver in hand to open the case. The case, by the way, is weird. It opens from the top and slides off. I didn't realize that when I decided on the desktop to buy, but if I had known I might have looked around a bit more... anyway, I popped open the case, stared at the lone empty PCI slot staring back at me, and secured the capture card in place.
Booting back up I was greeted by the disk encrypt password prompt, and then after that a single black screen with a _ sitting and blinking at me. Unfeeling. Unwavering. Mocking me. Here I thought I was free. Assuming it was another Nvidia display issue, I opened PopOS's troubleshooting guide on my windows machines and started reading. They've got one all about black screens on startup, and so I so happily discovered that CTRL ALT F5 gave me a shell!

Oh, thank god, the whole thing hasn't exploded or somehow wiped its own OS. It's just... well. What is it actually? Reading through, I hadn't made any X11 configurations yet, so that couldn't be it. I doubt that it's the gnome display manager, like, we just updated everything and the system was working before I put the capture card in… Maybe I didn't seat the card right? Hm. Nah, the motherboard would probably be beeping at me if that was the case.
So I ran through the uninstall and reinstall nvidia driver steps. I figured, hey, it's a display issue and the graphics card displays things, maybe it got a bit screwy somehow when I forced the system to restart earlier? Nope. Still a black screen and a CTRL ALT F5 into a TTY for me. So, sitting there, once again feeling growing despair that I've somehow acquired a paperweight and was going to end up crying, I turned to everyone's newest favorite frenemy: ChatGPT.

Oh hey, general ideas about why one can lose the GUI after login is useful. I kept reading, and while the first suggestion was a nothingburger, the second one sounded very plausible:

Alrighty Gippity. If you want to provide my the esoteric commands that I don't know/remember because it's been far too long since I had to think about them, I am game!

Well. Would you look at that! The clanker's right! Or at least, I think it's right? It doesn't say blackmagic, but it does say "advanced micro devices", which certainly isn't the NVidia card. Though, maybe it's the integrated graphics. Let's check in with our encyclopedic pal:

Ok, this is all making sense. I highly doubt I would have been able to figure this out on my own, and so, the urge to cry was fading away. No paperweight today! And Gippity continued on, noting how to confirm and explaining why the GUI couldn't render on the capture card (because it's not a graphics card, obviously).

Do I want you to give me exact config to fix my exact problem? You bet your ass I do. Teach me oh-mighty-machine, how the heck do I configure X11 to read the sheep's blood on the doorpost and passover the PCI device? And so spake the bullshit monkeys typing shakespear markov chain machine:
lspci | grep -i nvidia
Find the line that states the Bus ID. It looks something like
01:00.0 VGA compatible controller: NVIDIA Corporation ...
The 01:00.0 is the bus ID, and we need to convert that into a
format that X11 understands. Which is PCI:1:0:0
.
Once we know the bus id, we can tell it to use that:
sudo mkdir -p /etc/X11/xorg.conf.d/ sudo vi /etc/X11/xorg.conf.d/10-nvidia-only.conf # Then enter the contents into the file: Section "Device" Identifer "Nvidia Card" Driver "nvidia" BusID "PCI:1:0:0" EndSection # then save, and reboot sudo reboot
So, trusting in the power of clank, I went ahead and typed all that in. Still, I was a bit wary about how there had been that other item in the output. So I asked about that to make sure I wasn't about to bork something:

Ok. That's reassuring. I'd go out on a limb and assuming that the reason the capture card does what it does is that you can plug another computer into it, then stream and capture the computer's output to that through to another device. I've done that before with my laptop and my windows machine for some games. I assume that the computer wouldn't successfully treat the capture card like an output if it didn't present itself this way.
Alright. Moment of truth. Rebooting...

Holy crap that really was it! And holy crap it's fixed! Phew. That's a major relief. I can rest a little bit easier knowing that I haven't somehow managed to royally screw anything up and that things the capture card is sitting happily in the computer, seated and found, but not yet in use.
Still. That was exhausing, and I've been up for 7 hours without having breakfast. So, rather than installing things related to the capture card. I think I'll just go take a quick break and eat lunch at my usual place with a good book:

Refreshed! Educated! Full of shrimp bahn mi and mango cheese cake! I walked back in and surveyed my new setup from afar:

I'll probably be swapping my switch over one cubby, but for the most part. I'm feeling pretty good about this. I was originally thinking that the gap between the shelves would bother me more, but it hasn't yet, so I'll continue being happy about this for now. That said, the smooth, install some drivers and everything just works, did not happen. And I've taken a bunch of pictures and want to capture all these details before I forget them. But really, I want stop typing into two keyboards while I chat with people in IRC.
Rust! Halloy? ↩
No, I'm not mistyping "ahoy". An IRC client that I use is called Halloy and I like it enough to blog about my tweaks to my local copy of the source. It's written in rust, on top of the Iced GUI library, and so that makes me pretty sure that I can build it from source on my new machine too.
To do that though, I need to install rust. I followed the one-liner setup from the website
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
And then had to change sh
to bash
because
it failed with an error about not knowing what sh
is.
I can't say I've seen that one before. Doesn't know what "ash" is?
Sure, heck, I think I've ever seen a docker container talk about not
knowing what "bash" was, but not knowing sh? Crazy. Anyway, musings
aside, it's a simple fix:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | bash
And just like that, I've got cargo installed! Awesome. I can go ahead and just clone the halloy github repository via https so I don't have to bother logging into github yet.
$ git clone https://github.com/squidowl/halloy.git Cloning into 'halloy'... remote: Enumerating objects: 20523, done. remote: Counting objects: 100% (118/118), done. remote: Compressing objects: 100% (81/81), done. remote: Total 20523 (delta 64), reused 70 (delta 36), pack-reused 20405 (from 1) Receiving objects: 100% (20523/20523), 69.74 MiB | 74.38 MiB/s, done. Resolving deltas: 100% (14852/14852), done. $ cd halloy/ $ cargo build --release
K, that took a couple minutes when I ran it on windows, so I'll get up and go get myself a drink real quick…

Why is it that each time I get up to go fetch something, something breaks? Fine. You know what, IRC can wait. I'm fed, got a phone full of grainy pictures of monitors and vacuumed floors. Let's chronicle the adventure so far before we go any deeper.
Setting up the blogging IDE ↩
I'm actually writing this section before the other 3 because getting to the point where I can write this was neccesary first. But I took all the pictures and screenshots you see above as I was doing them, it's just that once I had the ability to start actively taking my notes in blog form, I switched off of the little txt file I was using like a mosquito on a 3d boob. 2
Blood and breasts aside, I've blogged before about how I migrated off of VSCode and the short story is that I've created a sublimetext 4 plugin that makes it super easy and simple for me to blog with all my tools in a nice performant package. Of course, on a brand new computer, I don't have any of these things yet!
Given that Pop-OS has the "pop shop" I figured that that would make the most sense to use. So, I slapped the super key and popped open the pop shop. It had sublime text right there!

And so, I installed it (which took a little while longer than I'd expect) and then realized that I need to actually get my website onto this computer! Luckily for me, since it's just one of my private github repositories, I can easily clone it… and my preference is to clone via SSH and not HTTP so I don't get asked for my password by github. You ever see that one Malcolm in the Middle episode where the Dad is "Fixing a lightbulb"? 3
Anyway, so it was off to the Github SSH guide pages for me. If anyone expects me
to remember the specific combination of ssh-add
, ssh-keygen-orsomething
commands, they're barking up the wrong tree. And, unsurprisingly, the suggested
algorithms have changed since the last time I did this!
Github's docs are quite good for this, so I won't repeat them here, but after
following them I was able to happily clone my package down and run into my next
side quest.
The side quest was given to me by the epiphony that this screen provided me. See if you can spot the quest giver:

Yup. My blog tools are setup to work with Sublime Text 4, not with Sublime Text 3. Turns out that the Pop Shop currently has ST3 in it, and not four. This isn't a huge deal since sublime's documentation covers how to install it from the apt repo:
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo tee /etc/apt/keyrings/sublimehq-pub.asc > /dev/null echo -e 'Types: deb\nURIs: https://download.sublimetext.com/\nSuites: apt/stable/\nSigned-By: /etc/apt/keyrings/sublimehq-pub.asc' | sudo tee /etc/apt/sources.list.d/sublime-text.sources sudo apt-get update sudo apt-get install sublime-text
And back to the about command...

Perfect. So now I can use my downloaded blog tools and get to work! Except, wait a minute. Ah. Another side quest. Where the heck do the packages go on a linux machine? On my windows machine I had to place the packages inside of the Data/Packages folder, but is that the same as on a linux machine? The simplest way to find out is to use the Tools → Developer → New Plugin option and then press save on the hello world it gives you:

Okay then! So, the place to be is .config/sublime-text/Packages/User it looks like. Though, I don't want to clone the repository down into that, I'd prefer to keep it alongside my other programs, and so, let's symlink it:
ln ~/src/personal/blaghelper/ -s ~/.config/sublime-text/Packages/User/blaghelper
This lets me keep it next to the other projects I've got in the works, and I don't have to remember specifically where sublime wants the plugins. A much smoother path for adding new features to it! Anyway, now that that's installed, does it work?

Not quite. while the snippets that are in the snippets folder of the extension show up, none of the dynamic commands appear to be registered. I spent a little bit of time poking around, then found that I had two things wrong:
- I should title the folder after the file that has the .sublime-commands
- I should move it up a directory
So, with my symbolic link renamed to "HrefHelper" and their new home at ~/.config/sublime-text/Packages/HrefHelper, the snippets and reading time calculations began appearing!

That's wonderful. But there's one last thing I need in order to call myself blogging ready: livereload. On my windows machine I had python installed and had globally installed the livereload plugin with pip. However, by default on Pop OS:
peetseater@pop-os:~/src/personal/peetseater.space$ which python
No python. And while I could definitely install it, I already installed rust, which prompted the question of: is there a livereload made with rust? I could write one myself, probably, but if there's one already out there than that'd be

awesome.
cargo install live-server
And then powering it up in my website folder?

$ live-server . [2025-08-09T20:47:13Z INFO live_server::http_layer::listener] Listening on http://10.0.0.191:45879/ [2025-08-09T20:47:13Z INFO live_server] Listening on /sitedir [2025-08-09T20:59:32Z WARN live_server::http_layer::server] Failed to read "/sitedir/favicon.ico": No such file or directory (os error 2)
This reminds me that I should make a favicon at some point. But, that aside, things are working and I'm all ready to blog!4
Or, almost. The pictures I took with my phone are huge and for the sake of your and my bandwidth, I want to optimize those a bit for the web. However, PopOS doesn't have a photo editor installed by default. A quick search online found a useful reddit post where folks were discussing this sort of thing. Of the options, I decided to go with Pinta for now, which was as easy as running
sudo apt-get install pinta
And then tapping super and typing pinta and enter:

Ok for real. NOW I can get to blogging! Err.... wait, nope. Pinta just froze.
$ pinta --version 1.6
Well that raises my eyebrow. We were supposed to get Pinta 2! Let's fix that.
sudo apt-get remove pinta sudo apt autoremove sudo apt clean
Looking around, it seems like people recommend installing from the Pop Shop when this sort of thing happens, or at the very least, checking if the pop shop has a more recent version.

Which it looks like it does? Can I resize an image using this version?

Ok, now for real I can blog! Mostly. It looks like this live-server code doesn't decode percent urls properly because every time I've been writing this blog post, if I have a file that has spaces in its name, I get an OS error like this:
Failed to read "/some/absolutepath/file with spaces.png": No such file or directory (os error 2)
Which reminds me of the issues I literally just fixed up with the dupdb frontend code I made last week. I'm not really in the mood to write my own live reload server though, there's more important things to do! So, for now, while I'm writing this blog post at least, I'll just kebab case everything and install python for a proper livereload server another day.
Halloy (aka AMD iGPU says <segfault>)↩
That said. I do want to get Halloy onto this computer so that I can actually hear the notification noise. I've only got one set of speakers, and since I like listening to music while I write, the linux box has them. So, let's return to the open ssl issue from before. Past the wall of openssl repeated everywhere I showed before is this useful bit of information:
cargo:warning=Could not find directory of OpenSSL installation, and this `-sys` crate cannot proceed without this knowledge. If OpenSSL is installed and this crate had trouble finding it, you can set the `OPENSSL_DIR` environment variable for the compilation process. See stderr section below for further information. --- stderr Could not find directory of OpenSSL installation, and this `-sys` crate cannot proceed without this knowledge. If OpenSSL is installed and this crate had trouble finding it, you can set the `OPENSSL_DIR` environment variable for the compilation process. Make sure you also have the development packages of openssl installed. For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora.
But, rather than starting to type apt-get install on the things mentioned
here. I think I'll instead check out
the installation documentation on halloy's website and see what's there…
Ah. I see they're telling debian based distributions to install
ibrust-alsa-sys-dev libssl-dev
packages. That's probably what
I'm missing I'd bet.
$ sudo apt-get install librust-alsa-sys-dev libssl-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libasound2-dev librust-libc-dev librust-pkg-config-dev Suggested packages: libasound2-doc librust-libc+rustc-dep-of-std-dev librust-libc+rustc-std-workspace-core-dev libssl-doc The following NEW packages will be installed: libasound2-dev librust-alsa-sys-dev librust-libc-dev librust-pkg-config-dev libssl-dev 0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. Need to get 2,792 kB of archives. After this operation, 16.5 MB of additional disk space will be used. Do you want to continue? [Y/n]
17MBs? Sure! Install away apt! Then, I'll try cargo again.
$ cargo build --release ... Finished `release` profile [optimized] target(s) in 43.95s
Perfect! And hey, it went quite a bit faster than the last time I compiled it on windows too. On windows I just dragged the built exe over onto the start menu and called it a day. But, the installation documentation mentions a script that does an install, so I took a look through it and decided, hey, I don't know where PopOS wants me to install my binaries (I'd assume /usr/local/bin maybe?) so why not let the script that says it installs for linux do it?
$ ./scripts/install-linux.sh Installing halloy v0.1.0 (/home/peetseater/src/opensource/halloy) Updating crates.io index Finished `release` profile [optimized] target(s) in 1.10s Installing /home/peetseater/.local/bin/halloy Installed package `halloy v0.1.0 (/home/peetseater/src/opensource/halloy)` (executable `halloy`) warning: be sure to add `/home/peetseater/.local/bin` to your PATH to be able to run the installed binaries gtk-update-icon-cache: Cache file created successfully.
Cool. The script is actually pretty small, and I imagine I might learn a thing or two by understanding the commands in here:
desktop-file-install --dir="$prefix/share/applications" "$git_root_dir/assets/linux/org.squidowl.halloy.desktop" cp -r "$git_root_dir/assets/linux/icons" "$prefix/share/" mkdir -p "$prefix/share/metainfo" cp "$git_root_dir/assets/linux/org.squidowl.halloy.appdata.xml" "$prefix/share/metainfo/" update-desktop-database "$prefix/share/applications" gtk-update-icon-cache -t "$prefix/share/icons/hicolor/"
So let's learn a bit.
- desktop-file-install
-
According to the man page,
The desktop-file-install program is a tool to install, and optionally edit, desktop files. The desktop-file-edit program is a tool to edit a desktop file. They are mostly useful for developers and packagers.
Which would mean something to me if I knew what a desktop-file is, I guess. Like, obviously it's a file, on the desktop, right? So maybe now...
Oh, well uh. Maybe it's like the way we register an application so that it can be picked up by whatever launcher the OS uses for applications? If I press the super key to open the launcher, I do see halloy:
But actually selecting it does nothing. So that's odd. That sounds kind of like a panic... if I run the binary I generated from the install:
$ halloy thread 'main' panicked at /.../checkouts/winit-865c6d5afb3ec9c3/11414b6/src/platform_impl/linux/x11/window.rs:1146:41: Failed to call XMapRaised: XError { description: "BadMatch (invalid parameter attributes)", error_code: 8, request_code: 149, minor_code: 4 } note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace thread 'main' panicked at /.../checkouts/winit-865c6d5afb3ec9c3/11414b6/src/platform_impl/linux/x11/window.rs:587:34: called `Result::unwrap()` on an `Err` value: PoisonError { .. }
Oh boy. Ok, let's finish up looking at these commands and then we'll keep troubleshooting.
- update-desktop-database
-
Checking out the manual page for this via
man update-desktop-database
The update-desktop-database program is a tool to build a cache database of the MIME types handled by desktop files.
The cache database contains the list of MIME types that can be handled by desktop files, as well as, for each MIME type, a list of desktop files that can handle this MIME type. This cache database ease the work of applications that need to find an application that can open a document of a specific MIME type: those applications will not have to parse all the desktop files existing on the system, and can instead parse this cache database.That seems straightforward. Basically tells the system to go check out the share/applications folder and make sure that anything that says it can handle file of type X is registered to do so.
- gtk-update-icon-cache
-
gtk-update-icon-cache creates mmapable cache files for icon themes.
It expects to be given the PATH to a icon theme directory containing an index.theme, e.g. /usr/share/icons/hicolor, and writes a icon-theme.cache containing cached information about the icons in the directory tree below the given directory.
GTK+ can use the cache files created by gtk-update-icon-cache to avoid a lot of system call and disk seek overhead when the application starts. Since the format of the cache files allows them to be mmaped shared between multiple applications, the overall memory consumption is reduced as well.Oh that's neat. So basically the desktop icon that we see around the OS is a flyweight. Something that is instantiated once, then re-used a whole bunch so that the operating system doesn't have to keep loading the resource over and over again.
Ok, fine, let's stop learning about neat linux commands and figure out the panic. So, the main bit that stands out is this:
Failed to call XMapRaised: XError { description: "BadMatch (invalid parameter attributes)", error_code: 8, request_code: 149, minor_code: 4 }
XError and XMapRaised both begin with an X, so is this an X11 thing maybe? I can see from the stack trace that it's in the window.rs file. So we're trying to setup and create a window and then it all explodes. A bit of searching finds me looking a very recent github issue that points to a problem in iced that seems to be caused by, surprise, graphics cards.
For some reason, Halloy is selecting the integrated gpu. Running the application spits out a list of all options, and then it says it chooses this:
00:08:40.416:INFO -- Selected: AdapterInfo { name: "AMD Radeon Graphics (RADV RAPHAEL_MENDOCINO)", vendor: 4098, device: 5056, device_type: IntegratedGpu, driver: "radv", driver_info: "Mesa 24.2.8-1~bpo12+1pop1~1744225826~22.04~b077665", backend: Vulkan, }
It's full list of options are:
00:08:40.410:INFO -- Available adapters: [ AdapterInfo { name: "NVIDIA GeForce RTX 5060 Ti", vendor: 4318, device: 11524, device_type: DiscreteGpu, driver: "NVIDIA", driver_info: "570.172.08", backend: Vulkan, }, AdapterInfo { name: "AMD Radeon Graphics (RADV RAPHAEL_MENDOCINO)", vendor: 4098, device: 5056, device_type: IntegratedGpu, driver: "radv", driver_info: "Mesa 24.2.8-1~bpo12+1pop1~1744225826~22.04~b077665", backend: Vulkan, }, AdapterInfo { name: "llvmpipe (LLVM 15.0.7, 256 bits)", vendor: 65541, device: 0, device_type: Cpu, driver: "llvmpipe", driver_info: "Mesa 24.2.8-1~bpo12+1pop1~1744225826~22.04~b077665 (LLVM 15.0.7)", backend: Vulkan, }, AdapterInfo { name: "NVIDIA GeForce RTX 5060 Ti/PCIe/SSE2", vendor: 4318, device: 0, device_type: Other, driver: "", driver_info: "3.3.0 NVIDIA 570.172.08", backend: Gl, },
So, is this not NVidia's fault this time? I googled for the error some more and found myself reading a linux mint forum post from last year where the user solved the problem by disabling the integrated GPU. I'm not 100% sure I want to do that since if the NVidia card borks the monitor again somehow, I'll be relying on plugging into that port. But… I guess I could look to see if it's possible to do that in an easy way that's reversable if needed?
Then again, I might be misunderstanding, as reading online and on the login loop errors page for system76, they note that blacklisting the radeon drivers seems to be a relatively normal thing? But that seems to be in the context of if you have an AMD card, which I don't.
Well, Chat GPT helped me the last time we had weird card issues. Maybe it can help me again? I'll save you the preamble, but basically I asked it to confirm my suspicion that blacklisting the radeon card was a bad idea (it said it would be), and then also told it about the other output besides the adapter info above:
00:48:35.186:INFO -- Available formats: Copied { it: Iter( [ Bgra8UnormSrgb, Bgra8Unorm, ], ), } 00:48:35.186:INFO -- Available alpha modes: [ Opaque, Inherit, ] 00:48:35.186:INFO -- Selected format: Bgra8UnormSrgb with alpha mode: Auto
Gippity said that that's pretty normal for setting things up for vulkan, but then went on to explain:

So... let's try to see if we can fix this without touching the drivers at all.
sudo apt install vulkan-tools vulkaninfo --summary | grep -E "GPU id|deviceName|deviceType"
The summary lists off a bunch of info, but the important bit that gippity is asking me to at is the device name, which in this case comes out like
deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU deviceName = NVIDIA GeForce RTX 5060 Ti deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU deviceName = AMD Radeon Graphics (RADV RAPHAEL_MENDOCINO) deviceType = PHYSICAL_DEVICE_TYPE_CPU deviceName = llvmpipe (LLVM 15.0.7, 256 bits)
Now that I've got the device name, I can try two commands that could potentially help out. The first, using the name we just found:
WGPU_ADAPTER_NAME="NVIDIA GeForce RTX 5060 Ti" halloy
No dice. Another segfault. And, well, hail mary, let's see:
WGPU_POWER_PREF=high halloy

Queen's white wings, it's working!
Alright so what the heck is actually fixing the problem here? Googling for the environmental variable finds me this page about gpuweb which doesn't seem to be precisely the stuff we're talking about, but I think we're in the same ballpark because this makes a lot of sense:
The primary utility of this hint is to influence which GPU is used in a multi-GPU system. For instance, some laptops have a low-power integrated GPU< and a high-performance discrete GPU. This hint may also affect the power configuration of the selected GPU to match the requested power preference.
Emphasis mine. So basically, WGPU is defaulting to low power and trying to use the integrated GPU it sees out of consideration for that. But, if I tell it that we, like Tim the Toolman Taylor, want more power, it then properly selects the correct GPU and finally we get a freaking window. So. Let's just make sure that everyone always does this:
sudo vi /etc/environment WGPU_POWER_PREF=high # <-- and add this line
And now every damn application that might try to use WGPU won't segfault when they should just be using the NVidia card in the first place. Great!
Now. What was I doing? Oh

I guess I'm going to bed and tomorrow changing the intended publish date for this post from the 9th to the 10th.
Capturing the card ↩
Phew. It's now a bit past noon as I sit down to start back in on Xeno Operating Chronicles: PopOS, I've had my usual sunday breakfast of a meat bun and a pleasantly warm hong kong milk tea. As well as a quick stroll down the river and lunch at the farmers market while reading a book:


While I was walking to and fro, sweating profusely in the warm summer weather and wondering where all those "global cooling" folks from the 70s had gone, I planned my next phase of the PopOS adventure. This morning I had done my usual daily workout 5 with my capture card in the windows computer doing its usual double duty as a proxy for the switch to the TV.
Now it's time to change that. My goal? When I stream tomorrow, to stream using the linux machine as the one powering the capture card and OBS. Granted, we've already had a bit of trouble involving the capture card, but that wasn't really it's fault, that was X11's fault. So, hopefully this will go smoothly.

First up. I've already found a youtube video of someone setting up the card on linux, so I watched that first to see if there were any weird gotchas or funny things that happened. There didn't seem to be any noted, so I went ahead and waltzed over to the support page for blackmagicdesign and downloaded the Desktop Video 15.0 tarball.

I read through the readme a bit, and before actually doing anything noticed that in the FAQ they had some notes about how to check if the device has been found by the computer and if it has drivers loaded:
$ lspci | grep Blackmagic 05:00.0 Multimedia video controller: Blackmagic Design Intensity Pro 4K $ lsmod | grep blackmagic $
Perhaps unsurprisingly (given our previous X11 issues), the system shows that it knows aobut the device right now, but it doesn't have any of the drivers for it yet (because we're about to install them). The FAQ also says that if, for some reason, our system crashes because of the card, we should look in
Look for kernel output messages in dmesg and /var/log/messages.
Noted. Alrighty, let's get started! PopOS is a debian based system, so I'll follow the instructions for that, there's two different deb packages, one for x86 and one for AArch. I… don't know which my system is. But, I know what can tell me!
$ uname -a Linux pop-os 6.12.10-76061203-generic #202412060638~1753385872~22.04~dc2e00d SMP PREEMPT_DYNAMIC Thu J x86_64 x86_64 x86_64 GNU/Linux
Aha. x86 we are! The README says that I can either doubleclick on the packages to install them via GUI, or I can install them vid the command line using dpkg. I'd prefer to do it via the command line I think, that normally has output that tells me where things are being placed, which can be useful to know when troubleshooting if anything goes wrong.
$ sudo dpkg -i desktopvideo_*.deb desktopvideo-gui_*.deb mediaexpress_*.deb [sudo] password for peetseater: Selecting previously unselected package desktopvideo. (Reading database ... 223909 files and directories currently installed.) Preparing to unpack desktopvideo_15.0a62_amd64.deb ... Unpacking desktopvideo (15.0a62) ... Selecting previously unselected package desktopvideo-gui. Preparing to unpack desktopvideo-gui_15.0a62_amd64.deb ... Unpacking desktopvideo-gui (15.0a62) ... Selecting previously unselected package mediaexpress. Preparing to unpack mediaexpress_3.8.2a1_amd64.deb ... Unpacking mediaexpress (3.8.2a1) ... Setting up desktopvideo (15.0a62) ... Preparing new blackmagic driver for 6.12.10-76061203-generic kernel... Adding to DKMS Building Installing Preparing new blackmagic-io driver for 6.12.10-76061203-generic kernel... Adding to DKMS Building Installing Loading modules... blackmagic blackmagic_io Enabling systemd services... DesktopVideoHelper Starting systemd services... DesktopVideoHelper Setting up desktopvideo-gui (15.0a62) ... Setting up mediaexpress (3.8.2a1) ... Processing triggers for man-db (2.10.2-1) ... Processing triggers for desktop-file-utils (0.26-1ubuntu3) ... Processing triggers for gnome-menus (3.36.0-1ubuntu3) ... Processing triggers for hicolor-icon-theme (0.17-2) ... Processing triggers for libc-bin (2.35-0ubuntu3.10) ...
And uh... that's it? Wait no, the readme says to then run
sudo apt-get install -f
To fix up any missing dependencies. Ok then!
$ sudo apt-get install -f Reading package lists... Done Building dependency tree... Done Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
I guess I didn't have anything missing. Let's try those commands from before to see that the system is aware of the the device and if it has drivers for it:
$ lspci | grep Blackmagic 05:00.0 Multimedia video controller: Blackmagic Design Intensity Pro 4K $ lsmod | grep blackmagic blackmagic_io 2224128 1 blackmagic 671744 0

Ok, ok, let's not get ahead of ourselves. Does it work? Can I use the desktop mediaexpress thing to see that it's functioning in some way?

The program is in the launcher. Ok. Ok, and if I plug my cables into the card and boot it up?

It works!

I did audibly cry out a very relieved, excited, and emphatic yes when this happened. Pumping my fist in victory, and behaving exactly like Kusuri with those marakas of hers. Sadly, I don't think my ahoge spun, but if it could, it would have. Trust me.
I recorded a quick test capture using the mediaexpress device, noting that it doesn't monitor the audio by default in the application. But the audio was there when I listened to 3.6GB file that it had generated from the capture. Wait, 3.6 gigabytes?

I suppose it's an AVI file, but hey look at that. we're not capturing in 720p anymore! We've got full HD of 1920x1080! 60 frames per second, and a 2304 kbps bit rate with a 48,000 Hz sample rate. Beautiful. Just, beautiful. My immediate thought was to pair down this file and export it into something that I could put here on the site, but I don't have any video editing software yet.
So let's change that.
Looking at the davinciresolve landing page referenced on the postcard, they want my phone number in order to download the software. Which uh, raising my walls a bit. I get enough scam calls as is, and while I appreciate when the local fire department calls me up and asks for money, I don't appreciate the robots or the fact that I can't actually tell if it's something beneficial trying to get my ear, or something garbage.
So before entering my info, I popped over to the privacy page and skimmed through. When I saw
We do not sell your personal information to third parties.
my guard lowered a little bit. Although in the section about who they share my information with, they do note
We may disclose your personal information to: ...
(e) other third parties as permitted by law.
Which makes me assume that they could give my info out to some third party they've hired to do marketing or surveys for them. But... alright, their card works on my linux machine. I'm happy with them. I'll trust them. for now

A little bit later I had another tarball and a readme file to look at. Though, instead of a txt, this one was an HTML file! We're getting fancy now.

It explicitly calls out NVidia drivers, but I know that I've already downloaded the latest for Pop, so that shouldn't be a problem I think. Since the terminal instructions are basically the same thing as just clicking it, this time I'll just do the GUI install.

Looks like I need to install some stuff. I clicked "OK" and then the window disappeared. I waited a bit, nothing happened. Alrighty then, I guess the GUI side of things isn't going to kindly prompt the system to actually fix the problem. What about the terminal commands?
$ chmod +x DaVinci_Resolve_20.1_Linux.run $ sudo ./DaVinci_Resolve_20.1_Linux.run -i Error: Missing or outdated system packages detected. Please install the following missing packages: libapr1 libaprutil1 libxcb-composite0 libxcb-cursor0 libxcb-damage0 libxcb-xinerama0 libxcb-xinput0 Use SKIP_PACKAGE_CHECK=1 to bypass the system package check. *********************** Installation cancelled.
Nope. But this time it's a lot easier to copy and paste the packages that it wants.
$sudo apt-get install libapr1 libaprutil1 libxcb-composite0 libxcb-cursor0 $sudo apt-get install libxcb-damage0 libxcb-xinerama0 libxcb-xinput0
And then trying to run the installer again?
sudo ./DaVinci_Resolve_20.1_Linux.run -i QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' This will install DaVinci Resolve on this computer Do you wish to continue? (y/n): # ... a whole bunch of EULA stuff suddenly in my terminal ... Do you agree to the terms and conditions of this license? (y/n): # ... a whole bunch of installing stuff #Doing post-install Removing obsolete files Installing Application icons Updating icon cache gtk-update-icon-cache: Cache file created successfully. Installing udev rules Setting up dvpanels lib/ lib/libusb-1.0.so.0 lib/libdns_sd.so.1 lib/libc++.so.1 lib/libavahi-client.so.3 lib/libc++abi.so.1 lib/libavahi-common.so.3 libDaVinciPanelAPI.so libFairlightPanelAPI.so Creating Common Data Dir : /var/BlackmagicDesign/DaVinci Resolve DaVinci Resolve installed to /opt/resolve Done
Alright, it just did a bunch of stuff. And I see it said it's all now in "opt resolve" and has a common data direction in var. That seems useful to note. But, most importantly, I installed it. Does Pop know about it?

Ok! But does it run?

It does. And I can import the video I took earlier, get confused
by all the controls, and then get educated by this
really helpful
video real quick and viola. We've got a video that's now 161 MB
for 5 seconds... I suppose I can upload it to youtube to show you
all the mov file. I got recommended a program named shutter encoder
and made a tiny webm instead:
If I export it as a mp4 the filesize shrinks to 14.7MB. But I think I'll
avoid the bandwidth usage and spare neocities's servers the trouble. Anyway
That's working, awesome. I can now edit videos, maybe I'll actually get into
creating highlights or something in the future for myself 6.
Anyway. I'm getting distracted. We still need to set up OBS in order to really test that everything is working as expected. And I'm positive that somehow, pulseaudio is going to screw me over when I get around to figuring out my microphones and capture card audio output/inputs. I distinctly remember pulse borking my system multiple times when I ran Mint, and so I'm not holding my breath that this is going to go smoothly.
So, off to OBS's website we go. Oh, hey, look at that
OBS Studio is officially distributed as a Flatpak on Flathub and a PPA for Ubuntu 24.04 and newer. For other installation methods, including unofficial packages, click here.
You know what. If it's official, then let's use the pop shop for this one.

And then opening it up for the first time pops open an auto-configuration wizard:

It's nice that OBS gives you the option between choosing to optimize for streaming or recording. There's also this "enhanced" broadcasting thing... clicking on the learn more link it looks like something that I'd like to enable. But also, the requirements section specifically calls out that this is supported for windows, and there's no mention of linux there. So, I guess I'll be skipping that for now. Sorry to all the folks out there who'd benefit from multiple video quality options.
Anyway, once the bandwidth test was completed, the system suggested some settings to me, I accepted, and then it popped open some windows I'd never seen before in my current setup:

Well that's nice! I normally have a browser window open to setup the game settings, ticker, and then pop out the chat window. This will be a nice change of pace, we'll see if I like it or not. For now though, we need to figure out if OBS can see the blackmagicdesign card or not.
This is the moment of truth. The thing I've been waiting for. The worry that's been weighing on my heart since pressing the "buy" button on the linux box in the first place.

And unlike the youtube video I watched about setting up the card with OBS, nothing is in the Sources list for OBS. A quick search found a reddit thread where people had a similar issue and their fix?
I fixed the problem by reinstalling OBS slightly differently. Anyway thank you for your reply
But… but what does that mean? How did you install OBS? Ugh. Alright. I'll tell you what. Since the capture card appeared in the desktop media program without me having to do anything, and the apt-install for those packages didn't tell me I had to restart, I haven't actually restarted yet. So. I'm going to do that and see if it helps.
Nope. So I checked to see if the capture card was working as a passthrough. Turned on my TV, turned on the switch. Nothing. That's weird... is it working in media express still? Yup. And when I clicked on capture it started showing up on my TV. Oh cool! I clicked over to OBS, the TV went dark and the still no source. Hm. Clicking into preferences:

I clicked on the continue playback when in background and the TV stayed on, though not without a random hiccup every now and then. So... let's try the obvious thing I guess. Uninstalling OBS using the pop shop, and then installing it via apt instead.
$ sudo add-apt-repository ppa:obsproject/obs-studio $ sudo apt update $ sudo apt install obs-studio ... The following NEW packages will be installed: libavdevice58 libb2-1 libdc1394-25 libdouble-conversion3 libluajit-5.1-2 libluajit-5.1-common libmbedcrypto7 libmbedtls14 libmbedx509-1 libmd4c0 libopenal-data libopenal1 libqrcodegencpp1 libqt6core6 libqt6dbus6 libqt6gui6 libqt6network6 libqt6opengl6 libqt6qml6 libqt6qmlmodels6 libqt6quick6 libqt6svg6 libqt6waylandclient6 libqt6waylandcompositor6 libqt6waylandeglclienthwintegration6 libqt6waylandeglcompositorhwintegration6 libqt6widgets6 libqt6wlshellintegration6 libqt6xml6 libsdl2-2.0-0 libsndio7.0 libspeexdsp1 libts0 libvpl2 obs-studio qt6-gtk-platformtheme qt6-qpa-plugins qt6-wayland 0 upgraded, 38 newly installed, 0 to remove and 0 not upgraded. Need to get 108 MB of archives. After this operation, 356 MB of additional disk space will be used. Do you want to continue? [Y/n] y
Alright, how about now?

Progress. The screen is black though. Checking OBS's logs I see:
15:21:47.688: User added source 'Blackmagic Device' (decklink-input) to scene 'Scene' 15:21:49.808: decklink: Starting capture... 15:21:49.809: decklink: Failed to enable video input 15:22:55.693: decklink: Starting capture... 15:22:55.693: decklink: Failed to enable video input 15:23:27.946: decklink: Starting capture... 15:23:27.946: decklink: Failed to enable video input
Well. That certainly sounds like it's trying to capture something. So that's a good start. This is all murkey though. Searching for the error finds me a forum post that mentions "bmdtools"... sigh. Another thing to install? Eh... Actually. You know what. What if this is one of those silly things like the media express capture and log is blocking OBS from looking at it or something? That's at least worth a try before I go into install more random tools to troubleshoot mode...

Oh thank God. Well. Just out of curiousity though, what exactly is bmdtools? Oh, they've got a github and appear to be some tools for capturing from the cli it seems? Well, if I don't need them I don't them. The only other annoying thing is that it appears I didn't see the fine print about HDMI passthrough not being a thing, and only found out when I discovered that closing OBS gives me a blackscreen on my TV. It's not really a huge bother to have OBS open when I want to game though, I normally do anyway. Thanks youtube comment for highlighting this for me though:

Another good thing is that when it's OBS running, the hiccups and random stutters in the output on the TV disappear. Reminds me of the sound glitches I used to get when using ElGato's capture software instead of OBS. I assume it has something to do with buffering the output and whatnot, but that's just my guess with 0 real research into it.
とにかく, I've got video coming from the capture card now! So, now I've gotta to setup all the other stuff. So, it's time to find out if my linux box is going to play nicely with my audio technika headset. I've had two headsets over the years, and both are good quality. One, surprisingly, is dirt cheap:

This is a random headset I grabbed from amazon back when I first started streaming. It's USB input and is loud, like, I kept the thing at volume level 2 the entirety of my life and just used the OS to tweak it. If I don't have it on my head and accidently press the volume up button it gets as loud as a speaker. The strange thing is that I find it hard to find my exact model on amazon nowadays, though I can find it on walmart of all places, but the last time I ordered a replacement I ended up sending it back because they sent a totally different model the first time.
That said, it's a good headset, comfortable, loud, was plug-n-play, and only 30 bucks when I grabed it. However, a few years ago I was listening to Vinny Vinesauce talk about how nice the in-ear monitoring is on the audio-technica M50 and I decided to treat myself on my birthday to a new headset.

It took a bit to get used to, but at the time I think I was streaming the Ace Attorney games and being able to hear my own voice as I made voiced every character in the game was useful for trying to stay at least somewhat consistent. I digress though, the question we're trying to figure out is if I need to do anything extra or if the headset it going to be plug and play. So, the best way to tell is to toss on some music:

And plugging in the headset... audio still coming out of the speakers and nothing from the headset. That's not neccesarily a problem, after all the real question is if the device is even detected:

Oh good. It's plug and play! I just have to manually swap to it. That's good for my ears. I've been using Voicemeeter Potato on windows for quite some time to have audio channels setup and easily tweak game, discord, mic, and all those types of things individually easily. For the time being, I'm not going to install that yet because I think that the pulseaudio control application can actually do a lot of that for me.
But speaking of mics, does OBS recognize the microphone from the headset?

It does, but the capture card is WAY louder than my voice, so I'll have to tweak that and it will probably be an ongoing thing. No problems there. Oh, and the default screenshot directory is just my home directory. Weird, but I suppose it's crossplatform… or something.
Anyway that's audio done. Now one last thing before I call it a day on my streaming setup. While I did create a twitch bot before to handle redemptions and some other stuff. The other day I tried to use it and it didn't work. So I think that the library I'm using for twitch is out of date, so I won't be trying to carry that functionality over for the time being. But I do want to get my alerts and chat overlay into OBS.
This is one of those things that you do once, then forget how you ever did it. Popping over into my windows machine I see some random weird domain... giambaji for the chat embed, and then for my sound alerts streamlabs. I'm pretty sure both were through streamlabs though. So, off we go. Thankfully, streamlabs has some really handy tools, so I can just press test and then

A cute little Miku appears. Perfect. One of these days I'll be less lazy and make my own pizza themed icons or something for these types of things. But, as you may be able to tell from the length of this blogpost, I'm getting pretty tired. Also I've been using the same alerts since I started streaming, so why rock the boat now. After all, who could dislike Miku?
Anyway. The last thing to do is to get the chat up and working and that's just another streamlabs widget + browser source and we're good to go:

And now I'm all set for tomorrow's stream and to use the linux machine to passthrough for my daily fitness boxing workouts. Speaking of, time for me to get around to dealing with all the other software I need to make this box feel like home.
Useful software and useability notes↩
As I was working through the variety of issues I've mentioned so far. I occasionally needed to install some software. This section is really just a table that should serve as quick reference for anyone reading this post with the goal of migrating off windows and over to pop. Additionally, I've included some notes afterwards on some settings that you may also want to tweak.
Windows Software | Linux Replacement | Notes |
---|---|---|
Photos | Pinta | Install it from the flatpak, otherwise you get version 1.6 and not 2.x |
Potplayer | mpv | For my full current mpv.conf file checkout this footnote. 7 However, one super important thing to do is that you change the default application for videos to mpv or else you'll waste an hour trying to troubleshoot why the mpv.conf file isn't working, only to realize you weren't using mpv in the first place because PopOS ships with a "Videos" application. |
Shotcut | DaVinci Resolve | There's nothing wrong with Shotcut. I actually like it quite a bit and found it to be intuitive to use on windows. I've had some macromedia training about 15 or more years ago, so it's not like things were completely foreign to me on "more complex" programs. But I figure that since I've got black magic going and they included a "Free download!" postcard with the device I bought from them, I might as well try it out. |
Speccy (to check temps) | Vitals |
There's a lot of options for this type of thing. But after browsing for
a minute or two, I decided that I liked the look of vitals and installed
that so I could keep an eye on the temperature of my CPU/GPUs and whatnot.
I can always do something like watch -n 10 sensors -f to
look at my cpu or watch -n 10 nvidia-smi to check the GPU
from the terminal. But this one's a bit more convenient. Though, it doesn't
give me the expected range like watch does which is really
nice for knowing that the number in celcius doesn't mean my computer's
about to catch on fire.
|
Transmission | Transmission | Transmission is cross-platform, so no migration here at all. Always handy to be able to transfer something chunked as a torrent and whatnot. |
LosslessCut | LosslessCut | DaVinci resolve is way too heavy a hand to use for snipping out clips of videos I want to share with people. But lossless cut is pretty fantastic. I use it when I stream more than one game in a single session, it's super fast to split the vod file up into parts and then I just have to upload it to youtube! |
EasyVideoCrop | ? | I really love using the tsun video crop or, as its website calls it, "EasyVideoCrop". However it's windows only right now. It's really just a wrapper around ffmpeg, ffprobe, and imagemagick, but it's a really good wrapper. I'm not sure if Davinci Resolve has the ability to create random gifs for me or not (I haven't looked into it) but I'll probably need to do some digging to see if I can find a good way to replace this. That, or take a bunch of inspiration from the tool and make one for myself. Maybe in rust. Either way, I hope Tsun is doing well. I quite like the tool they made! |
Snip & Sketch | PopOS's built in prt sc | Up until some time last year, Snip & Sketch was the default snipping tool in windows 10 that came with your system. They recently changed this, I think around the time when they replaced the photos app for no good reason and removed cropping from it. Either way, I take a lot of screenshots (can you tell from this blogpost?) and so I need an easy thing to use for this. PopOS's built in (which I think maybe is just Gnomes?) works well and is a single button press away. The only downside is that it doesn't have a delay feature, which is useful for capturing context menus and other things that disappear when you press a button to screenshot. |
Steam | Steam + Proton |
This is one of many reasons I chose to migrate to PopOS rather than returning
to what I had used before windows (Mint). I logged in and tested one of my usual
games and it worked! I did experience a weird glitch when trying to take a screenshot
with the prt sc key in windowed mode that totally crashed things and
I had to use ctrl alt F5 to grab a TTY and then when I ran
systemctl restart gdm3 the screen blacked out until I rebooted the
whole machine by holding Alt + Print Screen and then while holding
them down, typing in r e i s u b slowly. After a bit the system
turned off and back online and I could go about my day. Lesson learned, don't use
the system screenshot and use steam's instead.
|
Chrome | Firefox | For the time being, I'm just using the default browser that came with Pop. Sort of like using Edge while you're on windows. I could use Chrome, but using Chrome while talking about wanting to get away from how invasive Windows has been is sort of defeating the point in some ways I think. I might move over to librewolf or try out ladybird when it gets released officially. |
Stacher | Stacher | Stacher is handy tool that I used to download youtube videos. Youtube takes things down, content creators nix stuff sometimes, or copyright or nintendo comes along and DMCAs something to stonewall an indie dev or similar. It's helpful to be able to download youtube videos easily. I sometimes run into trouble with cookies where a video is age restricted, but a plugin in the browser to export the cookies normally helps out with that. |
Hakuneko | Hakuneko | A manga reader that updates via RSS from various places that provide that sort of thing. I read a good amount of manga, and while I tend to buy physical, it's nice to be able to read on my computer when I feel like catching up on the latest chapter without having to go and grab it off the shelf. This has both a download from github, and a pop shop version, but for some reason when I press open it doesn't work. I'll have to look into this more later. |
And that's about it for my daily programs. I've already downloaded sublime text and I'll tweak my vim IRC in a bit to make it not behave like a maniac (default settings do some funky stuff with the backspace key by modern standards). There's a few programs that I'll need to grab off my github (like my FixJfif Java app), but those can all come another day and are pretty specific to my needs, so they're probably not worth noting here.
I'm still running the default PopOS settings right now though. And I think some of those are worth noting as to what I changed so far:
- Go to Users → unlock → set automatic login to true. This will log you in after you decrypt the drive without asking you for your password a second time.
- Change git's default core editor to vim, pop starts it off as nano for some reason
- Speaking of vim, Pop seems to only shop with vi for some reason.
sudo apt-get install vim
cures that - In firefox enable auto-scrolling, middle mouse wheel as paste is WEIRD
And that's about it. Really, the major hurdle I have up next is the fact that I have 4 external hardrives and a massive screenshots folder that's 15GB's worth of curated pics from anime I've watched over the years. I'm thinking about checking out copyparty to deal with that, but haven't looked too hard into it yet. During the writing of this blog post, while I needed to grab an image or two, I just ran up a little python server on the windows machine and fetched the file over my local network. Speaking of, I should probably install python at some point soon.
That can come another day though. This has been quite a weekend for me and I'm exhausted. Thanks for reading my tribulatory journal on migrating over to linux after using windows for a decade. I hope that if you came here trying to troubleshoot something that I also ran into, that this helped out! If you happen to know an altenative to Tsun's video crop or why Hakuneko crashes the moment it boots up on PopOS, then please, let me know! For now though, I need to go do something else for a while.
