CozyNet RSS feed https://www.cozynet.org/ The CozyNet blog feed https://www.cozynet.org/feed/images/avatar.bmp CozyNet RSS feed https://www.cozynet.org/ CozyNet will be moving to a new hosting provider soon... https://www.cozynet.org/ Thu, 12 Mar 2026 14:37:00 CST So apparently my current VPS hosting provider for CozyNet, "AfterBurst," will be shutting down this May 26'th.

The full picture: the explosion in AI demand has made sourcing hardware at reasonable prices incredibly difficult. We're effectively priced out of the hardware market currently. At the same time a number of our servers are reaching the end of their lives, replacing them in the current situation would be extremely difficult.

Finally, being brutally honest, both of us have also reached a point in our lives/careers where we cannot dedicate the time needed to address these without compromising the quality of service you've come to expect from us and that's something we're not willing to do.

Rather than let things slowly degrade, we'd rather be straight with you and give you the time to make a clean transition.

Moving forward: we're deliberately not making recommendations on alternative providers, as every customer's needs are different and we wouldn't want to steer anyone in the wrong direction. That said, if you need any help during the transition the support desk will remain open.

Running Afterburst (or: FanaticalVPS back in the day!) for the past 16 years has been an absolute privilege. Many of you have been with us for years, some from the very beginning, and we genuinely mean it when we say it has been a pleasure serving you. Thank you for your trust, your loyalty, and your support. It’s been one hell of a ride!

And so with that, I'm on the lookout for a new provider. A lot of them out there block SMTP too, so I'm not sure who to go with yet. I might migrate the server into a friend of mine if I can't find anywhere else. Recommendations are welcome.

Basic requirements are SMTP support, reverse PTR record, IPv4, and US based since EU online laws are making the region unstable.

]]>
General Update v26 https://www.cozynet.org/blogs/20260307_blog.html Sun, 8 Mar 2026 12:30:00 CST

Iris's I planted last year are blooming!

Howdy there CozyNet readers, welcome to another general update blog post where I ramble about some of the things I've been up to. It's been little over a month since I've last posted anything, so I suppose I better get something out there!

I'll start off with the house and where my status is at on it.

So things are pretty slow around this time of year. I'm arranging a list of things that'll need to get done because I've been talking with some friends that are willing to help out. I'm thinking of tackling the junk in the back yard soon, which consists of a 70's camper falling apart and a barn filled to the brim with junk. Also that camper is full of junk too.

I've still not finished my windows in the kitchen. Just haven't had the time to do it really...

I spent some time climbing around in the attics to note down some things that might need repair. The ridge line of the roof sags a few inches down the center and half the floor on the second level slopes down a good three inches toward the front of the house. I'm trying to decide to either address it structurally or work around it like the previous owners.

I can tell that it's been this way probably half its life because of how it was worked around from previous remodels. It's caused by the upper portion of the walls bowing out which affects the roof ridge line. As for the floor sloping, I'm not kidding you, but it was made that way... I don't know why other than there have been some serious remodels over the decades because it use to be a smaller wing and gable style house in another life time. Due to the age, the joists have developed a bit of a sag in them which doesn't help any, but they're in alright condition; just doesn't look nice.

My bathroom is still torn apart from last years shenanigans. I'm planning to repair the leech pit instead of put in a new tank and system because there's nothing but solid limestone boulders three feet down. I couldn't ever dig a deep enough hole to fit a small tank in which made me pretty upset. Upset not because I couldn't carry out my plan, but upset to discover that after all this time and waiting, I could have just spared myself the headache and spent a few days repairing what was already there and have a functioning bathroom in no time. This is to say, I've spent the better part of two years without a functioning bathroom, using an outhouse and bathing in a livestock water trough I picked up at Tractor Supply because I was saving up and planning on installing a significantly better system than the pitiful handmade caved-in 70 year old leech-pit. Well that's not going to happen now, so yeah... guess I'm repairing the leech-pit after all!

I think I wrote last time about my truck and needing to repair the brakes. Well I got that work done, which wasn't cheap. It came out a little over $2,000 because I wanted new brakes all the way around. It also seriously needed new tires which I finally caved in and got after spinning out one night driving home in the dark.

I hate driving in the dark! My eyes play tricks on me and I can't tell if I'm seeing something in the road ahead of me or not, and it certainly doesn't help that every jerk on the road drives with their head beams full blast into oncoming traffic. I thought I saw something in the road and hit the brakes which locked up one of the tires and caused me to spin out almost hitting mister high beams! Fortunately all was well, but it was a close call. I decided to get new tires ASAP.

In case you don't have a car or understand what happened, the low tread on the tires paired with new brakes caused one of the brakes to lock one of the tires unexpectedly because it didn't have enough traction to keep rolling with the rest. This caused the tire to skid and lose braking force, disrupting the overall balance. I should mention that this truck does have an ABS system, but this was on dry ground and happened too quick for it to be of any use since the tires are trash. Anyhow, that's minus $800 for new tires woohoo!

Oh but we're not done yet... You see, there was another night wherein I was in my snazzy little car and hit a friggin man hole without the cover over it! It was at an inner section where I couldn't see it nor was I paying attention because I was watching for other cars. Fortunately I was going quick enough while making a turn that only my front wheel was sort of able to glide over it, but it was just enough to take a good chunk of rubber off the inner side of the tire. I wouldn't find out about this until a few days later because I noticed my steering wheel kept vibrating and the alignment was messed up. I felt around on the backside of the tire and could feel wires poking out!

It's been a busy week of car maintenance here. Oh and also, that was minus $1000 something dollars too because the tires are expensive low profiles. I don't know if I'll ever get this house done at this rate...

Video of Poochie during the ice over in January.


I suppose I'll mention the work life and how things have been going back at the office.

One day I was assigned to work with this newly hired tech. He was tasked to setup a policy in Intune that would block browser extensions while permitting a few required by the company. I instructed him on what to do since I've done this before, but it didn't work this time because I forgot that Microsoft is a backwards company with their left hand on the right and right hand on the left; you don't even want to know where their mouth is!

So the correct terminology is a whitelist or "allowlist" if you want to be a hyper-pedant about it, but in Microsoft land there's no such thing. No no, you have to also make a blacklist to block everything on top of your whitelist! Gee doesn't that just sound sensible? If you've worked with firewalls in networking at all, Microsoft will break your mind over order of operations, but let's not concern ourselves with such details.

Anyhow I forgot to instruct the rookie that he needed to setup an implicit block everything list with a precious little "*" star in it, which meant that our allow list was a sad joke missing its punchline. So queue up the next day and I follow up with him on the status because nobody these days bothers to keep each other up-to-date unless you poke and prod them. He tells me it didn't work and that he got with his BFF "Co-Pilot" to concoct a harebrained solution. I really despise these stupid chat bots... All he had to do was read the documentation which is literally linked to by the policy we were working on, but no, he consulted a schizophrenic chat bot with out of date information instead. What is wrong with people?

It had him setup some custom policies that relied on ancient configurations only available by an ADMX template which of course isn't included on our tenant nor required since said template only exists for legacy purposes that are no longer relevant (say you want to configure MS Edge browser settings on server 2012 which didn't have the group policy options built in.) He couldn't get it to work and was very persistent that his BFF was correct and wouldn't let him down, so we take it up to one of our "specialists" that quickly shot down the harebrained plan to upload an old ADMX template and told him to set it back up the way we had it before.

So back to square one. He sets up the policy again and I point out in a chat after re-reading over the Microsoft documentation, which I must admit is quite decent despite MS being such a backwards company, the missing block-friggin-everything option that's required in tandem with the allow list so the whole joke comes together. It works, he's happy, I'm happy, end of story.


At any point I could have flipped out over a number of things, take over the task and do it myself, and complain to my manager that the new guy is talking to imaginary people on his computer giving bad advice, but I didn't. The reason why is that I've been trying to correct some flaws in my own character over the past few months here. It's not uncommon to hear about people upset with their jobs, and I was no exception, but I've come to realize that a lot of what bothers me tends to conflict with my self image.

Let's say you're transported into an alternate timeline where the culture is completely foreign and the way people work totally backwards and sometimes even straight-up stupid. Now imagine having to work with them and to do things their way, and anytime you try to make a correction or improvement, it creates pandemonium. Are you going to die on the hill of your ego just because you think you're right or will you adapt to the situation? There's a system here that you have to adapt to and it might seem totally stupid, but if you really think about it, the system you come from is probably just as stupid as the next.

This is what the world feels like to me now. It's like I've been transported to some wacko alternate reality with no way back to where I came from. I've looked all around too and everywhere is just as messed up and crazy as the next. I can either adapt or spiral out of control. I'm no longer concerned with proving myself like I use to, I just have to survive now. Yeah I know that square peg isn't going to fit thru that round hole, but you know what, they're paying me to do it. I do have my limits, but where my ego is concerned, it's not a problem.

I find myself getting along with people too now. Things have been turning around, but I guess that's no surprise since I'm trying to work with people instead of against them for the sake of self image. I'll maintain that I see a lot of things I do not like or agree with, but my place of occupation isn't the all of my life. I work so that I might live in this world, but I live to work for the Lord.

"Whatever you do, work at it with all your heart, as working for the Lord, not for human masters, since you know that you will receive an inheritance from the Lord as a reward."

Thanks for reading my blog!

A beautiful late evening view of the pasture.

]]>
Having a hoot with the old Flight Simulator! https://www.cozynet.org/blogs/20260125_blog.html Sun, 25 Jan 2026 20:41:00 CST

As a kid I was fascinated with the Wright Brothers Flyer, the Titanic, the Hindenburg, Golden Gate Bridge, the Empire State Building, Boeing B-17 Flying Fortresses, and the Saturn V rocket and lunar lander. I even assembled model kits of some them just to play with out in the yard and would draw out my own childish inventions as if to fortify and improve them.

With that being said, around every December to January it's been a tradition of mine to load up Flight Simulator to replay the Wright brothers historic moment of flight at Kill Devil Hills which took place on December 17, 1903. The flight lasted for 12 seconds reaching 120 feet at a top speed of 6.8 miles per hour, so this is usually my goal to reach in Flight Simulator while on the hardest difficulty.

Suffice it to say, I've only ever managed to pull it off a few times over the years and will eventually knock the difficulty settings down a little until I make it. It ain't easy!

On my 13'th birthday I got the legendary "Microsoft Flight Simulator 2004 A Century of Flight" with a joystick, which was back in December of '05. It was a big wish list item of mine all year long after reading about it in a magazine because you could re-fly historic flights such as the Wright Brothers, which was absolutely up my ally! At that time we didn't have a computer capable of running the game so I would take it with me to my grandparents to play on their computer which was a brand new e-machine PC. Back home ours was some old Gateway junk from the mid 90's that would get thrown out sometime the following year, which was right around when I got heavily involved in gaming and the internet.

I still have the original joystick and copy of the game to this day, which came with four discs and a manual in color print. You can see me with it in the following pictures.

And here it is today in all its glory!

I've always been a bit of an archivist and could never part with my old games and stuff despite not needing them or really ever playing them, so I still have everything that wasn't lost by pesky siblings.

I use to be able to load this game up in WineHQ no problem, but I've noticed modern versions of Wine don't seem to play so nice with older games these days. After beating my brains over error logs, I gave up perusing that route and booted up my old Windows 8 install where it works without a hitch.

So here's me 21 years later playing Microsoft Flight Simulator 2004, A Century of Flight.

Thanks for reading my blog!

]]>
How to install deno JS runtime for yt-dlp https://www.cozynet.org/blogs/20260101_blog.html Thu, 01 Jan 2026 13:00:00 CST

Screenshot of JavaScript source code.

Are you seeing console errors for a missing JavaScript runtime when running yt-dlp?

WARNING: [youtube] No supported JavaScript runtime could be found. YouTube extraction without a JS runtime has been deprecated, and some formats may be missing.

In this brief guide, I'm going to show you how to resolve this by installing the Deno JS runtime for yt-dlp. Oh and also, this guide assumes you're on a Linux-based operating systems. If you're on macOS or Windows, this probably won't be of much help to you.

Support for Deno is enabled by default in yt-dlp, provided it's present on your user environment PATH. Depending on how you've installed yt-dlp, this can either be an easy thing or perhaps a bit difficult.

This guide will assume that you've installed yt-dlp in a conventional manner. The best place for yt-dlp to be installed in is ~/.local/bin with the Unix/Linux executable. However, I have known some people to utilize the Python package manager PIP for installation too.

If you've installed yt-dlp thru PIP, then make sure it's installed with the default dependency group since it includes the yt-dlp-ejs package. The yt-dlp project highlights this in their wiki by the way.

pip install -U "yt-dlp[default]"

For those of you using the Linux executable provided directly from the GitHub release page, you don't have to bother with it since the necessary JavaScript components are already included (except deno.)

If you've installed yt-dlp in a non-conventional manner such as a containerized environment, then this guide probably won't be much help for you and I'm not going to bother delving into troubleshooting that layer of complication.

Installing deno

If you're on a modern version of Ubuntu with the SNAP package manager, you could install Deno from there which does work without any complication or special setup from my experience. But if you don't like the SNAP package management system nor use Ubuntu, then you'll need to download the Deno installer. You can do so from the Deno website: https://docs.deno.com/runtime/getting_started/installation/

I recommend downloading just the shell script installer, which is the first option for the Linux platform. There are other options for Nix, Cargo, and Docker, but you're looking for a hassle with those. Just use the shell script installer.

Once it's downloaded, make the installer executable:

chmod +x install.sh

Run it as your normal non-sudo non-root user:

./install.sh

It'll download some additional dependencies, then create a ".deno" directory in your user home. In my opinion, it's not the best place for dumping software, but it works and I do appreciate that it's all contained to that specific directory for easy removal.

Deno should become present in the user PATH after closing and re-opening the terminal. You might have to log out and back in too. You can test this with the following command:

$ which deno
/home/user/.deno/bin/deno

The path is included in your ~/.profile on the bottom:

. "/home/user/.deno/env"

On occasion you'll want to update the deno runtime which you can do from the terminal with the following command:

deno upgrade

I'll usually invoke this command around the same time I run yt-dlp -U when updating yt-dlp. Yt-dlp will automatically pickup deno and the warning messages for a JavaScript runtime should go away. If you still see the warning messages for a JavaScript runtime, then it means yt-dlp doesn't see deno, meaning deno is likely not on the user environment PATH.

It's unfortunate that a full blown JS runtime is even needed, but it's also understandable too seeing how overly-complicated the web is getting just to re-implement very simple things that were sol ved ages ago. It seems this rando internet prediction in the following image from 2020 came somewhat true after all...

Anyhow, this should be all you need to install the deno runtime for yt-dlp. I hope it helps.

Thanks for reading my blog!

]]>
General Update v25 https://www.cozynet.org/blogs/20251230_blog.html Tue, 30 Dec 2025 15:30:00 CST

Cozy kitchen

It's almost 2026 and I've been wanting to get another blog post out there before it's too late.

With it being the winter season here, I haven't been up to too terribly much when it comes to renovating and restoring the house. My kitchen window project is still incomplete after all these months since it has taken me so long to learn how to make window frames. Now that I've got a pretty good grasp on it, I'm unable to get any lumber because my truck is unfortunately down for the count. The break pads need to be replaced and its dangerous to drive as is.

This all happened right before Christmas, so every repair shop within a reasonably safe distance is closed until next year, leaving me without a truck until then. So therefore the main quest is on hiatus until I finish this side quest. If it were any warmer out, I'd might attempt to replace the break pads myself, but I'm one those sort of people who's joints freeze up and become miserably sore if exposed to the cold. The day time isn't so bad, but I really don't want to make the situation any worse either in case I mess it up, otherwise it could be stranded for the remainder of the season. January and March and sometimes February can be particularly cold here in Texas, so I'm thinking it would be best to just drive in somewhere local to have it repaired.


I suppose I should make a small update on the cats and dog. They've all been doing very well with no incidents. Poochie continues to run afoul with fleas because of wild filthy dogs coming up to his yard to visit. I usually bathe him once or twice a month in a flea killing shampoo, then later in the week apply a topical poison on his back and sprinkle his yard with sevin dust granules. It helps, but it's a chore for sure.

I haven't been able to walk him for a very long time due to the sand burs that took over the larger yard late in the summer. The burs are still there in the ground, which poke into his paws. I'm planning to buy a poison for those, which oddly I have to apply around this time of year, then again in spring. It's an expensive poison, but if it works, it would be worth it because those burs are awful. They're worse than stepping on legos!

As for the cats, I've moved their primary room upstairs for now. They were getting difficult to put up when I needed to leave the house, causing me to chase them around just to get them in their room; but it turns out, they just really like the upstairs bed room. I figured they can have it, and so far it's worked out great. They don't play keep away anymore and will go right up to their room when I need them too.


I almost forgot to write about this, but I did some work to restore my vintage General Electric fridge from 1953. I bought it from a guy for $100 off Craigslist in working condition, but it had a terrible habit of accumulating too much ice around the thermistor and condensation which was leaking out onto the floor and building up inside the door.

Upon close inspection, I realized that the lousy replacement gasket that the previous owner installed was actually installed in completely the wrong spot. I had to research some of the mechanics in how the door and gasket are supposed to function, which I found very interesting! The gasket is supposed to fit into a channel, and overlap onto the interior backboard. This is important because the backboard and fitting gasket are designed in such a way that when the door closes onto the fridge, the cold air causes a suction effect that draws the door in tight, compressing the gasket onto the backboard which squeezes it down around the edges upon the channel. The latching mechanism is mechanical and also draws the door in too, so this is all a bit different to modern fridges that employee magnets.

The previous owner at some point tore out the original gasket since it was no doubt old and brittle, then atop the backboard glued down a foam gasket. This left the channel and gap around the backboard exposed to the external environment, which drew in a lot of warm air causing the compressor to run a lot and subsequently produced a lot of condensation. If the foam gasket were applied in such a way that covered the gap and channel, it wouldn't have been nearly as bad...

I've spread open the gap between the backboard and the gasket channel so that you can see what it looks like.

I went ahead and pulled the door off the hinges and spent a week chiseling out pieces of the remaining old gasket which had fused into the channel. I cleaned it all out as best I could and applied a new proper rubber gasket I bought off of Amazon. Unfortunately it was just a hair too thick, causing the door to not shut properly since there was too much material next to the hinge-point. This was really disappointing because that gasket was expensive, costing me $127. I went back onto Amazon and bought another one with a slimmer dimension and this time it worked out a lot better.

Of course the seal wasn't perfect like it would have been with the original gasket since it doesn't compress enough near the latch point of the door, despite my best efforts in adjusting the latch draw distance. Since the remaining gaps around the seal were super thin, I utilized some spare stick on foam tape that I used on my water lines beneath the house. It was just enough material to make a perfect seal, and it doesn't look that too shabby either!

The black foam strip wasn't needed for the bottom and hinge-point.

I also wanted to share my awesome gasket cut profile here. I found that making a perfect miter cut was impossible, so I devised my own profile that tucks into itself with a small over lap. I made the bottom door corners of the gasket in such a way that if any liquid or by chance a bead of condensation were to trickle down the gasket, it would follow over the lap instead of collect into the bottom.

The later image is the door flipped up-side-down since it was off the hinges and I was rotating it to work with.

The fridge now works fantastically, save for the interior light switch not always working. I have a simple solution for that dealing with a motion detector I salvaged from work, but I'll get to it later. As for now, no more condensation build up, and it no longer runs as much either. I recall replacing the original thermostat in it for a newer one because I suspected the condensation and ice build up was possibly affecting it, so I wonder if it would work without issue now? It does still work, but I had trouble with it sticking on which might no longer be the case now that the interior environment is cool and dry. The newer thermostat works, but it's not calibrated for this fridge unlike the original and has a tendency to let things get a little too cold despite having it dialed in on the lowest setting possible.

Anyhow, I love the classic look of this fridge in my kitchen. I hope sometime next year I'll be able to rearrange things to their proper place. The present kitchen workflow and layout are inefficient with everything but the kitchen sink being in the wrong spot.

The first image is the current workflow. The later image is the goal.

There's a space for a dish washer beneath the counter top beside the sink, but I threw out the washer since it was junk. I might buy a dish washer in the future to place there, but I never use em so I don't know. The original spot for the stove is just in a terrible location that would be better fit for a fridge. At present, the space isn't wide enough for my old fridge, so I'll probably have to expand it by knocking out the side cubby.

The great big space presently occupied by a massive non-functioning fridge that was left there by the previous owners is where I want my 50's era stove with a nice big classic 50's era Vent-A-Hood (when I can find one).

Right now I have things a bit crammed into the kitchen and not yet in the right place, but once I can re-arrange it, I'll have a nice area for my small kitchen table to fit between the two back doors. Presently it's in front of a door I don't use.

Right now I'm held up until I get new propane lines and outlets installed where needed. The original propane outlets aren't in the right place and the old line is a permanent black cast iron pipe that broke off as the house shifted since the foundation was displaced from rotting apart (which I fixed back in 2023 and blogged about!) I think it would be best to just start anew, but I might still utilize the original line for some areas so long it doesn't leak.

Thanks for reading my blog!

]]>
Revisiting the Trinity Desktop Environment https://www.cozynet.org/blogs/20251219_blog.html Tue, 30 Dec 2025 15:30:00 CST

The Trinity Desktop Environment (TDE) is one of my favorite ones out there. I've written on it before, but would like to go over a few other things I've picked up along the way that make it especially nice to use since it can be a little rough around the edges.

I'm not using it as much these days since I've been working toward reducing the amount of time I spend tinkering on my computer, so I have it installed on an old desktop PC running Devuan I boot up every once in awhile.

You can use the below list to skip to parts you might find relevant in this post since it's gonna be a long one. Some of these I've written on before already, but figured it wouldn't hurt to bring back up.

Where and where not to use TDE

Like I said, TDE can be pretty rough around the edges. It comes from an era of computing that was done almost exclusively on Desktop Computer's, so laptops are really not an ideal choice of device here. It can be done, but the desktop focused paradigm the environment was made for just isn't geared for a mobile workflow where you might connect and disconnect external displays, docking stations, audio devices, etc. It needs a static setting where everything is setup once and for all.

If you're the sort that keeps changing the display orientation, resolution, and DPI scaling, then you should use the Plasma desktop or something else. You have to remember, this environment is old.

Why not use Plasma or something else?

Good question! I don't have a very satisfying answer, but it might mean something to someone out there...

Are you the kind of person that values a stable environment where you can expect things to remain relatively unchanged? Does it cause you distress or frustration to sign into your computer only to find that everything has been re-positioned, altered, or broken after an update? And worse yet, functionality you relied on was removed because the developers didn't have a "use case" for it within the testing of their own vacuum chambers.

Well my friend, TDE isn't going anywhere anytime soon - that is so long the project doesn't unexpectedly shutdown - so hop in cause we're going nowhere fast; It's the same old KDE3 we all knew and love from 20+ years ago, and not a lick of it has changed! Now isn't that simply wonderful?

I'm being a little facetious here, but I'm impressed that it's managed to hold up for as long as it has. In a time where major desktop environments are essentially bootstrapped web browser tech ramming updates down your throat every day and probably soon to be integrated chat bots, turning away from X11 support, re-writing their code base in a different language for grins, core apps being containerized and thus bloated, along with all the security theatrics chewing its way thru everything, it's kind of a breath of fresh-ish air honestly.

I've been using TDE on the Devuan distribution and nothing really ever gets in my way except for those rough edges, which I'll write about here soon. I never see reminders to "reboot your computer to install updates," or to connect my account to some online service, or any sort of network communication aside from the typical things like DNS and NTP. Shoot, TDE doesn't even come pre-installed with a notification system!

The rest of this post I'll share my finds and fixes to work out those rough edges, making TDE a practical desktop for those of you weary and tired of the modern age of computing.

How to fix display blanking DPMS timeouts

Have you ever noticed that the display will shut itself off after 15 minutes of inactivity? You'd think it was either coming from the power manager or the screensaver, but actually it's coming from X!

To fix this, all you need to do is put the following into an ".xinitrc" file in your home directory.

xset -dpms
xset s off

The next time you sign in, it'll run those commands which disables DPMS and screen blanking.

Get a better audio mixer

The default kmixer isn't very useful since it doesn't provide functionality to adjust individual application volume levels and switching audio devices. I recommend installing pavucontrol-qt for a better audio mixer, then add it as a launcher button to your panel for quick access.

[Advanced]

If you're like me and switch between audio devices frequently, it's nice to have pavucontrol open to the "Output" tab first instead of the "Playback" tab. With the following script, you can achieve just that. You'll need to install xdotool for this to work:

#!/bin/bash
winpid=$(xdotool getwindowpid `xdotool search --name 'Volume Control'`)
if [[ -n "$winpid" ]]; then
  kill -9 "$winpid"
  pavucontrol-qt &
  sleep 1 && xdotool getactivewindow key alt+o
else
  pavucontrol-qt &
  sleep 1 && xdotool getactivewindow key alt+o
fi

DBUS compatible notification daemon for TDE

This might depend on the distribution TDE supports, but I've noticed that it tends to not include a notification daemon with the default installation. Fortunately this can be easily resolved by installing kdbusnotification-trinity and libnotify-bin.

You'll want to start this up on login by running notification-daemon-tde from either a startup script or an autostart .desktop file. If you want to use a .desktop file as the autostart method, then create it in "~/.trinity/Autostart/" and append the following to it:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=noficiation-daemon-tde
Comment=notification daemon
Exec=notification-daemon-tde

Log out then log back in. You can test with the notify-send command in a console to verify it works.

I haven't yet been successful in modifying the style or geometry of the notification system, so if anyone knows how then by all means share with me!

Exposing network file-shares to the local file-system with GVFS

The Konqueror file manager has the built-in capability of mounting network file shares, namely SAMBA, but it mounts by a protocol exclusive to the file manager meaning that you can't open files from it without having to copy them to the local file system first since there isn't a direct path to said files to the file share. While Konqueror can see the files, your other applications won't.

I recommend using GVFS and Gigolo for handling remote file share mounts. You'll want to install the following:

$ apt install gigolo gvfs-daemons gvfs-backends gvfs-fuse gvfs-common

You’ll need to reboot after the install is complete.

Next up, you’ll need to configure Gigolo to connect to your network file share, which is pretty straight forward; I’m assuming that you should already know how to do this, so I’m not going to walk you thru that part, however there are a few settings I recommend.

Open Gigolo, click “edit” in the menu bar > preferences > Interface tab. Check “Start minimized in the Notification area,” this way it doesn’t start up with a window when logging in. Remove the checked option for “Show auto-connect error messages,” so that you’re not bombarded with connection error popups if your computer or file server should happen to fall off the network.

You’ll also want to make sure that Giglo starts up when logging in. You can do this by adding the following contents to a .desktop file in your "~/.trinity/Autostart/" directory.

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Gigolo
Comment=GVFS file mounter
Exec=gigolo

Once you have your network mount setup and connected in Gigolo, open Konqueror and navigate to the "/run/user/1000/gvfs/" directory. You should see the mounted share from here. You can bookmark it in Konqueror for quick access.

And that’s all there is to it! The next time you log back in, Gigolo should auto-mount the network share if it’s present, and you can simply click on your bookmark in Konqueror to access it.

Keyring requesting password after login

If you see the following dreaded mandatory popup after logging in:

Authentication Required: An application wants access to the Default Keyring but it is locked

This is the GNOME keyring manager known as Seahorse which is used by most applications that require a keyring service to store credentials. Alternatively, there's the KDE wallet which is a keyring service too which is no better in this situation; there's also the TDE wallet which does come pre-installed, but no modern application is ever going to work with it since it doesn't support DBUS on the back-end to facilitate keyring management. By the way, you really should only have one instead of both.

If you're wondering where it came from or how it got installed to your system, then it was likely installed as a dependency for some other package you installed.

The popups are certainly annoying and prevent you from using the desktop, so I suggest just removing the password requirement from it altogether because it'll never integrate with the TDE display server when logging into your system. It's the only way to fix it.

You can open the keyring by searching for seahorse or kdewallet, depending on which one you have on your system, then go into the settings and change the default keyring password to a blank password. The next time you login, you shouldn't be badgered by it anymore.

Some of you might cry "security vulnerability!" like a noisy klaxon alarm, but if you take a step back for a minute and realized that if you got malware on your system, that silly old keyring isn't going to save you one bit. It's like trying to prevent nuclear armageddon in just your own backyard; in other words, it's not going to work. Hijacking the DBUS API interface isn't out of the realm of possibility either. This whole keyring and DBUS implementation business is a farce.

qt5-style-plugin packages missing in Debian Trixie 13

If you need the qt5 styles for plastique, cde, cleanlooks, etc in qt5ct, you'll have to download the deb package from an older version of Debian because they're no longer included in Debian 13. Dunno why.

If you have a Debian 12 system, you can download the packages with the following command (replace <name of style> with the name of the package style you want):

$ apt download qt5-style-plugin-<name of style>

Alternatively, you can just download the package from the archive here: https://packages.debian.org/bookworm/libs/qt5-style-plugins

Click the one you want in the "dep" list, for example qt5-style-plugin-plastique, then scroll down to the bottom of the page and select your CPU architecture. The page will switch over to the download page where you're provided a list of mirrors to select from. Click either mirror and the .deb package will download to your system.

Extract the contents of the deb package, which will contain the data.tar.xz archive. Again, extract the data.tar.xz archive and copy the library file from its following directory into the corresponding system directory:

$ cp qt5-style-plugin-plastique_5.0.0+git23.g335dbec-4+b7_amd64/usr/lib/x86_64-linux-gnu/qt5/plugins/styles/libqplastiquestyle.so /usr/lib/x86_64-linux-gnu/qt5/plugins/styles/

If it doesn't take immediate effect, then reboot the system and re-open qt5ct to verify it picks up the style plugin.

Thanks for reading my blog!

]]>
ProtonVPN spoofing network traffic https://www.cozynet.org/blogs/20251218_blog.html Thu, 18 Dec 2025 17:45:00 CST

I've been using the ProtonVPN for a little while now and noticed some funky business going on with my network traffic.

I was testing one of my servers firewall rules making sure iptables was indeed working because sometimes it'll lie to you. Using good ol' netcat here I would try out a port that I knew was open (443) and a port that I knew wasn't opened (22). Both connections reported established.

$ test_port www.cozynet.org 443
$ Connection to www.cozynet.org (209.222.4.133) 443 port [tcp/https] succeeded!
$ test_port www.cozynet.org 22
$ Connection to www.cozynet.org (209.222.4.133) 22 port [tcp/ssh] succeeded!

Hang on, wait what? Port 22 is supposed to be blocked!

At first I thought maybe something was wrong with iptables and that it was leaving everything wide open to the world, but after a little investigating the culprit wasn't there. Also nothing is listening on that port anyhow, so how is it establishing a handshake?

Perhaps it was with netcat which is what I'm using in my test_port script in the above example. So I tried nmap and a few other tools, but they were all reporting established connections too.

By this point I decided to try these tools on one of my old servers which hasn't been touched in ages, knowing that at least it would prove who's right and who's wrong. And again netcat and nmap were reporting established connections to ports I know are blocked!

Me at my desk trying to figure out what's going on.

Short of throwing my laptop out the window, I hop onto another computer and BOOM! - the connections fail as they should. My laptop apparently was lying to me, so I dig into what in the world was going on and narrowed it down to ProtonVPN.

ProtonVPN is spoofing SYN/ACK responses where it should be failing. I don't know why, but maybe it's a means to deter people from using their VPN for nefarious port scanning by yeilding false results? I couldn't find much on the web about it except for this guys blog which goes into more detail than I was willing to spend the time of day on.

I suppose that if you should run into the same situation as me, then just remember to turn off the VPN.

P.S. I'm thinking of writing more short posts like these aimed mostly at technology, DIY, and "How To" stuff.

Thanks for reading my blog!

]]>