<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on Tom Webster</title><link>https://www.samurailink3.com/tags/linux/</link><description>Recent content in Linux on Tom Webster</description><generator>Hugo</generator><language>en-us</language><copyright>CC-BY-4.0</copyright><lastBuildDate>Fri, 08 May 2026 00:00:00 -0500</lastBuildDate><atom:link href="https://www.samurailink3.com/tags/linux/index.xml" rel="self" type="application/rss+xml"/><item><title>NotionRSSGenerator</title><link>https://www.samurailink3.com/projects/2026-05-08-notionrssgenerator/</link><pubDate>Fri, 08 May 2026 00:00:00 -0500</pubDate><guid>https://www.samurailink3.com/projects/2026-05-08-notionrssgenerator/</guid><description>&lt;p&gt;My blog finally has RSS again (check the front page)! This was a major missing component of moving my site to Notion. I’ve decided to release the code under the Public Domain, but I have to issue a warning before you dig into it: &lt;strong&gt;ITS ROUGH!&lt;/strong&gt; The code was rapidly thrown together and based on two earlier projects: &lt;a href="https://gitlab.com/samurailink3/podcastmaker"&gt;PodcastMaker&lt;/a&gt; and &lt;a href="https://gitlab.com/samurailink3/notioncalendarexporter"&gt;NotionCalendarExporter&lt;/a&gt;. The resulting code has been thrown together in a blender to make RSS feeds quickly. There are functions that are too long, too complex, and plain-ol’ inefficient.&lt;/p&gt;
&lt;p&gt;Don’t get me wrong, &lt;em&gt;it works&lt;/em&gt;, but it ain’t pretty. Hopefully you can get some good out of it, just know its a mess.&lt;/p&gt;
&lt;h1 id="where-to-get-it"&gt;Where to get it&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://codeberg.org/SamuraiLink3/notionrssgenerator"&gt;NotionRSSGenerator&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Instructions are on the Readme on that page.&lt;/p&gt;</description></item><item><title>ZedBuilder</title><link>https://www.samurailink3.com/projects/2026-05-06-zedbuilder/</link><pubDate>Wed, 06 May 2026 00:00:00 -0500</pubDate><guid>https://www.samurailink3.com/projects/2026-05-06-zedbuilder/</guid><description>&lt;p&gt;As Microsoft started to get less and less trustworthy, I moved from VSCode to
&lt;a href="https://vscodium.com/"&gt;VSCodium&lt;/a&gt;, an open-source build of the VSCode source
without Microsoft’s add-ons. This mostly-worked for me, but the remote
development extensions were still Microsoft-proprietary (I work in
&lt;a href="https://containers.dev/"&gt;DevContainers&lt;/a&gt; a lot). I can work around that. What I
can’t work around is Microsoft sneakily(?) adding in more and more slop into the
only product of theirs I actually care about.&lt;/p&gt;
&lt;p&gt;Microsoft caught a bunch of hate for their buggy “feature” that &lt;a href="https://github.com/microsoft/vscode/pull/310226"&gt;automatically
added CoPilot as a co-author to any commit you make in
VSCode&lt;/a&gt;. It was supposed to add
this if you use CoPilot, and it was supposed to respect the “AI Killswitch” in
VSCode. Because of the buggy implementation, it did not.&lt;/p&gt;
&lt;p&gt;I’m tired of needing to constantly play defense with the software I use. I moved
&lt;a href="https://www.samurailink3.com/blog-posts/2025-10-27-windows-11-upgrade-pushed-me-to-reinstall-linux/"&gt;back to Linux for a
reason&lt;/a&gt;.
I’m tired of the cruft. I’m tired of the forced “features”. I’m tired of tech
companies removing my agency as a user.&lt;/p&gt;
&lt;p&gt;Moving to VSCodium was not enough. I needed to remove the last piece of
Microsoft software from my life. So I moved to &lt;a href="https://zed.dev/"&gt;Zed&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Zed seems great so far. Built by a lot of the same people who built the &lt;a href="https://atom-editor.cc/"&gt;Atom
editor&lt;/a&gt;, open-source (GPL!) code, and written in
&lt;a href="https://rust-lang.org/"&gt;Rust&lt;/a&gt;. But Zed isn’t perfect, its still pretty early-on
in the project’s public life. Debian packages aren’t directly available from the
project, but they are available from a
&lt;a href="https://zed.dev/docs/linux#debian-and-ubuntu"&gt;community-repo&lt;/a&gt; (even VSCodium
&lt;a href="https://vscodium.com/install#use-a-package-manager-deb-rpm-provided-by-vscodium-related-repos"&gt;has this
problem&lt;/a&gt;).
I &lt;em&gt;really&lt;/em&gt; don’t like adding random repos to my system, so avoiding that is
important.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://flathub.org/en/apps/dev.zed.Zed"&gt;Flatpak packages are available&lt;/a&gt;, but
making a Flatpak package work well with my existing system utilities is
(understandably) frustrating. Flatpak is a sandbox, tightly integrating it with
system utilities breaks the main point of Flatpak.&lt;/p&gt;
&lt;p&gt;I also wanted to change some Zed defaults. It also suffers from AI-infestation.
The project leads &lt;a href="https://zed.dev/blog/not-building-ai-for-the-money"&gt;have posted their
reasoning&lt;/a&gt;, and it is
logically sound, I understand where they’re coming from, they see AI as a tool
for humans, not a wholesale replacement. In the current landscape of
AI-boosterism, the Zed developers’ take is a reasonable one.&lt;/p&gt;
&lt;p&gt;That said, I still don’t want anything to do with the plagarism-machine. I
actually enjoy tech, I enjoy writing code, and I enjoy getting more skilled at
it under my own power. I love &lt;em&gt;the process&lt;/em&gt; of creation, not just the
end-result. AI steals much of that joy from me.&lt;/p&gt;
&lt;p&gt;So I decided to build a Zed-builder that runs in a container (to avoid polluting
your system with build tools), applies some patches to the default settings (to
disable AI and telemetry, among others), and gives you an archive that you can
install on your system.&lt;/p&gt;
&lt;h1 id="where-to-get-it"&gt;Where to get it&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://codeberg.org/SamuraiLink3/ZedBuilder"&gt;ZedBuilder&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Instructions are on the Readme on that page.&lt;/p&gt;
&lt;h1 id="how-it-works"&gt;How it works&lt;/h1&gt;
&lt;p&gt;Its not too complicated. Its a Dockerfile that includes all of the utilities
needed to build Zed. I’ve also used &lt;code&gt;git diff&lt;/code&gt; to make some default settings
patches that are applied before compilation. More information is in the Readme
on that page.&lt;/p&gt;</description></item><item><title>Debian: Waterfox Flatpak and KDE Plasma Browser Integration</title><link>https://www.samurailink3.com/blog-posts/2025-12-24-debian-waterfox-flatpak-and-kde-plasma-browser-integration/</link><pubDate>Wed, 24 Dec 2025 00:00:00 -0600</pubDate><guid>https://www.samurailink3.com/blog-posts/2025-12-24-debian-waterfox-flatpak-and-kde-plasma-browser-integration/</guid><description>&lt;p&gt;If you’re moving to &lt;a href="https://www.waterfox.com/"&gt;Waterfox&lt;/a&gt; because of the &lt;a href="https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/"&gt;Mozilla CEO’s recent threat that “[Firefox] will evolve into a modern AI browser…”&lt;/a&gt; and you use &lt;a href="https://kde.org/plasma-desktop/"&gt;KDE Plasma&lt;/a&gt;, you may be surprised to see that the native browser integration doesn’t work. Don’t fret though, the problem is actually because Waterfox is looking for files that haven’t been copied to the right place. Let’s fix that.&lt;/p&gt;
&lt;h1 id="the-workaround"&gt;The Workaround&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://www.samurailink3.com/img/content/2025-12-24-Debian-Waterfox-Flatpak-and-KDE-Plasma-Browser-Integration_01.png"&gt;&lt;img src="https://www.samurailink3.com/img/content/2025-12-24-Debian-Waterfox-Flatpak-and-KDE-Plasma-Browser-Integration_01.png" alt="A screenshot of the Waterfox browser with the Plasma Browser Integration add-on installed. The add-on shows an error message that reads “Failed to connect to the native host.” and gives some troubleshooting options and a link to the project wiki."&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The error message you may have seen.&lt;/p&gt;
&lt;p&gt;The most convenient way to install Waterfox and keep it updated automatically is through &lt;a href="https://flathub.org/en/apps/net.waterfox.waterfox"&gt;Flathub&lt;/a&gt;. The files we need will be created once &lt;em&gt;the Firefox Flatpak is installed&lt;/em&gt;. Go ahead and install the &lt;a href="https://flathub.org/en/apps/org.mozilla.firefox"&gt;Firefox Flatpak&lt;/a&gt; as well. You’ll also need &lt;a href="https://flathub.org/en/apps/com.github.tchx84.Flatseal"&gt;Flatseal&lt;/a&gt; to add a permission to Waterfox.&lt;/p&gt;
&lt;p&gt;Open your application launcher and search for “Background Services”. In the search bar, type &amp;ldquo;browser”. You should see two services:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.samurailink3.com/img/content/2025-12-24-Debian-Waterfox-Flatpak-and-KDE-Plasma-Browser-Integration_02.png"&gt;&lt;img src="https://www.samurailink3.com/img/content/2025-12-24-Debian-Waterfox-Flatpak-and-KDE-Plasma-Browser-Integration_02.png" alt="A screenshot of the KDE Background Services options window. The search bar has the word “browser” typed in it. There are two services listed: Plasma Browser Integration Flatpak Integration and Plasma Browser Integration Installation Reminder. Both are enabled and currently running."&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The two background services we need.&lt;/p&gt;
&lt;p&gt;Pause and unpause the &lt;em&gt;Plasma Browser Integration Flatpak Integration&lt;/em&gt; service. This step may be unnecessary, but will speed things up if you’re between polling cycles (this is mostly an assumption).&lt;/p&gt;
&lt;p&gt;Now, let’s copy some files:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Copy the integration host to Waterfox&amp;#39;s flatpak data directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cp ~/.var/app/org.mozilla.firefox/plasma-browser-integration-host ~/.var/app/net.waterfox.waterfox/plasma-browser-integration-host
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Make a director for the next file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir ~/.var/app/net.waterfox.waterfox/.waterfox/native-messaging-hosts
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Use sed to replace the Firefox flatpak app id with Waterfox&amp;#39;s flatpak app id,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# then output that file to where Waterfox will look for native-messaging-hosts.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Ref: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sed &lt;span style="color:#e6db74"&gt;&amp;#39;s/org\.mozilla\.firefox/net\.waterfox\.waterfox/&amp;#39;&lt;/span&gt; ~/.var/app/org.mozilla.firefox/.mozilla/native-messaging-hosts/org.kde.plasma.browser_integration.json &amp;gt; ~/.var/app/net.waterfox.waterfox/.waterfox/native-messaging-hosts/org.kde.plasma.browser_integration.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now, open Flatseal and select Waterfox to edit its settings. We need to go to &lt;em&gt;Session Bus → Talks&lt;/em&gt; and add a new item: &lt;code&gt;org.kde.plasma.browser.integration&lt;/code&gt; .&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.samurailink3.com/img/content/2025-12-24-Debian-Waterfox-Flatpak-and-KDE-Plasma-Browser-Integration_03.png"&gt;&lt;img src="https://www.samurailink3.com/img/content/2025-12-24-Debian-Waterfox-Flatpak-and-KDE-Plasma-Browser-Integration_03.png" alt="A screenshot of Flatseal with Waterfox selected. In the window, you can see the “Session Bus” section. Added to the “Talks” subsection is a new string with the contents “org.kde.plasma.browser.integration”. A warning symbol is shown next to the value to indicate the default permissions have been changed."&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When you’re done, Waterfox should look like this in Flatseal.&lt;/p&gt;
&lt;p&gt;Now, when you manage the &lt;em&gt;Plasma Integration&lt;/em&gt; add-on and go to &lt;em&gt;Preferences&lt;/em&gt;, you’ll see options! Furthermore, you can control your browser’s media with your media keys and system tray icons.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.samurailink3.com/img/content/2025-12-24-Debian-Waterfox-Flatpak-and-KDE-Plasma-Browser-Integration_04.png"&gt;&lt;img src="https://www.samurailink3.com/img/content/2025-12-24-Debian-Waterfox-Flatpak-and-KDE-Plasma-Browser-Integration_04.png" alt="A screen shot of Waterfox showing the “about:addons” page with “Plasma Integration” selected. The “Preferences” tab is selected with various options showing. This indicates that the extension can talk to our local messaging host."&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Plasma Integration add-on works in Waterfox Flatpak!&lt;/p&gt;
&lt;h1 id="the-real-fix"&gt;The Real Fix&lt;/h1&gt;
&lt;p&gt;This is a cool workaround, but the real issue lies in &lt;a href="https://invent.kde.org/plasma/plasma-browser-integration"&gt;https://invent.kde.org/plasma/plasma-browser-integration&lt;/a&gt;. The application watches for many different browsers, but not Waterfox… for now… hopefully… I have a merge request out to KDE with the fix for Waterfox, both Flatpak and native versions:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://invent.kde.org/plasma/plasma-browser-integration/-/merge_requests/180"&gt;feat: add waterfox support (!180) · Merge requests · Plasma / Plasma Browser Integration · GitLab&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;del&gt;If this is accepted&lt;/del&gt;, THIS WAS MERGED - it will eventually trickle down to various Linux distributions, fixing this problem without needing the tinkering shown here.&lt;/p&gt;
&lt;h1 id="personal-rant"&gt;&lt;strong&gt;Personal Rant&lt;/strong&gt;&lt;/h1&gt;
&lt;p&gt;This move by Anthony Enzor-DeMeo is extremely disappointing and disheartening. Honestly, this &lt;em&gt;&lt;strong&gt;dank meme&lt;/strong&gt;&lt;/em&gt; is the best way to sum up how I feel about the situation:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.samurailink3.com/img/content/2025-12-24-Debian-Waterfox-Flatpak-and-KDE-Plasma-Browser-Integration_05.png"&gt;&lt;img src="https://www.samurailink3.com/img/content/2025-12-24-Debian-Waterfox-Flatpak-and-KDE-Plasma-Browser-Integration_05.png" alt="A message on mastodon.social from @TheZeldaZone@mastodon.social with the text &amp;ldquo;Hello, We&amp;rsquo;re Firefox, The Only Browser That Hasn&amp;rsquo;t Hit Itself In The Dick With A Hammer. For years now, folks use us because of our un-hammered dick. Now, you may be wondering why today we&amp;rsquo;ve brought this hammer and pulled out our dick. Well I&amp;rsquo;m glad you asked&amp;ndash;”. It has 2.1K boosts and 3.4K favorites."&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ref: &lt;a href="https://mastodon.social/@TheZeldaZone/114082180124431864"&gt;https://mastodon.social/@TheZeldaZone/114082180124431864&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In return Alex Kontos of Waterfox replied with this:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.waterfox.com/blog/no-ai-here-response-to-mozilla/"&gt;No AI* Here - A Response to Mozilla&amp;rsquo;s Next Chapter - Waterfox Blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So I installed Waterfox, imported my data, and tried it out. &lt;em&gt;Its just Firefox with all the bullshit removed.&lt;/em&gt; Exactly how it was advertised. Exactly what I wanted. No Pocket, no sponsored stories on the new-tab page, no VPN ads in my menus, no telemetry. Sensible defaults that just work. It even has Tree-Style Tabs right out of the box. Its been a few days, but so far, I’m happy with this being my daily driver.&lt;/p&gt;</description></item><item><title>Sunrise</title><link>https://www.samurailink3.com/projects/2025-10-27-sunrise/</link><pubDate>Mon, 27 Oct 2025 00:00:00 -0500</pubDate><guid>https://www.samurailink3.com/projects/2025-10-27-sunrise/</guid><description>&lt;p&gt;Sunrise is a monitor-restart service written for Sunshine Linux Hosts!&lt;/p&gt;
&lt;p&gt;If you use Sunrise game streaming from a Linux host, there’s a good chance your monitors won’t wake up when you make a remote connection. The only real workaround was to never sleep your monitors, which seems wasteful and annoying. I wrote Sunrise to solve this problem for myself and put it on the internet, just in case it was helpful for other people.&lt;/p&gt;
&lt;p&gt;I wrote more about this bug and the solution in this section of this blog post: &lt;a href="https://www.samurailink3.com/blog-posts/2025-10-27-windows-11-upgrade-pushed-me-to-reinstall-linux/"&gt;Sunshine Streaming&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="where-to-get-it"&gt;Where to get it&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://codeberg.org/SamuraiLink3/sunrise"&gt;https://codeberg.org/SamuraiLink3/sunrise&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Instructions are on the Readme on that page.&lt;/p&gt;
&lt;h1 id="how-it-works"&gt;How it works&lt;/h1&gt;
&lt;p&gt;Sunrise checks Sunshine’s log file for a specific error message related to not finding the monitor, then it issues a command to wake the monitor. Pretty tiny, pretty easy to use.&lt;/p&gt;</description></item></channel></rss>