Skip to content

Instantly share code, notes, and snippets.

View plembo's full-sized avatar

Phil Lembo plembo

View GitHub Profile
@plembo
plembo / googlemessagespwa.md
Last active May 11, 2026 20:14
Installing Google Messages on Linux as a PWA

Google Messages PWA on Linux

Google Messages for the Web is a useful piece of software I've "installed" on my Linux machines, mostly because I'd rather manage texts on a 24" monitor than a 6" smartphone screen. That's possible because Messages is a Progressive Web App (PWA) that can be setup on a desktop using any Chromium-derived web browser, in this case Brave on Linux Mint 22.3 (Zena):

  1. Open Brave browser and go to https://messages.google.com/web
  2. Authenticate by "Pair with QR code"
  3. Click on the tiny computer icon over on the right-hand side of the address bar
  4. Select [Install]

At this point the Messages "app" will show up on the Mint menu under "Brave Browser Apps", but it will be lacking the Messages icon. To get that:

@plembo
plembo / makeifnamepredictable.md
Last active May 10, 2026 14:48
Make Linux interface names more predictable with udev

Use udev rules to lock in Linux ifnames

Create a udev rule to lock in the physical network interface name assigned by Linux, so that the system won't change it the next time a PCI device is added or removed.

Create /etc/udev/rules.d/10-network-names.rules, and then edit as follows:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="enpNxN"

"ATT{address}" is unique MAC of the physical network device (seen in output of ip addr), while "NAME" is the interface name assigned to it by Linux (this will usually be something like "enp6s0".

@plembo
plembo / ubuntu2mint.md
Last active May 10, 2026 17:08
Migrating from Ubuntu to Mint

Migrating from Ubuntu Desktop to Linux Mint

"No pain, no gain"

Some notes on the process of heading off the next upgrade apocalypse.

Loosely acknowledges the existence of the official Linux Mint Installation Guide.

Before install

Backup before install:

@plembo
plembo / braveonlinux.md
Last active March 31, 2026 12:45
Brave browser on desktop Linux

Brave on Linux desktop

Brave is a fork of Google's Chromium that provides a privacy-respecting alternative to the commercial Google Chrome browser. I use it where LibreWolf won't work at all or without unreasonable effort, like when I need WebUSB or a site's code spectacularly fails to conform to web professional best practices.

It goes without saying that what follows reflects my experience on Ubuntu 22.04 LTS desktop at a moment in time. Like many other software apps, the availability and configuration of some features change over time: so YMMV!

Installation

Brave works on all platforms. Since I'm currently on Ubuntu desktop, I follow the installation instructions for that distribution.

Configuration

The defaults for Brave are pretty reasonable, but here are the changes I make in Settings:

@plembo
plembo / ironfoxandroid.md
Last active March 31, 2026 12:45
ironfox on android

IronFox on Android

IronFox is a privacy-minded fork of Firefox mobile for Android. It comes recommended by the LibreWolf project, who have a similar privacy focus for the desktop. What I like most about both of these forks is that their choice of defaults requires minimal effort on my part to set up and maintain my primary browser.

Installation

Because I already make use of F-Droid for installing open source apps that are not included by Google's Play Store, I have added IronFox's standalone F-Droid repository to the F-Droid app on my Android devices and use that to install IronFox.

Configuration

Here are the changes I make to Settings in IronFox after installing:

  1. Open browser and accept the setup defaults (choose Cloudflare as DNS-over-HTTPS provider)
@plembo
plembo / librewolfconfig.md
Last active May 13, 2026 02:26
LIbrewolf configuration on Linux

LibreWolf on Linux

LibreWolf is my standard desktop browser. It is a Firefox fork that makes my llfe easier by having sensible privacy defaults out of the box.

Installation

As I am currently on a Debian based distribution (Linux Mint), following these instructions.

Configuration

Because of its shipping defaults, I have found LibreWolf quick and painless to configure. Here are the changes I make in Settings after installing:

  1. Home > Homepage and new windows > Custom URLs: enter my personal homepage URL
  2. Privacy & Security > Enhanced Tracking Protection > Strict > Fix major site issues: Check (enable)
  3. Privacy & Security > Delete cookies and site data when LibreWolf is closed: Uncheck (disable)
@plembo
plembo / killx11ubuntudesktop.md
Last active January 27, 2026 13:59
KIll X11 server under Ubuntu desktop keyboard shortcut

Keyboard shortcut to kill X11 server under Ubuntu desktop

The decision to disable/change the venerable Ctrl-Alt-Backspace keyboard shortcut for killing the X server in the Ubuntu/Gnome desktop has been a persistently unwise one.

At least for now, the most straighforward way to restore it is to install gnome-tweaks. Then go to:

Keyboard & Mouse > Additional Layout Options > Key sequence to kill the X server

Ctrl+Alt+Backspace: checked

References:

@plembo
plembo / notesondnsforandroid.md
Last active September 12, 2025 13:30
Notes on DNS for Android

Notes on local DNS for Android

Recent releases of Android famously ignore/bypass any local (i.e., self-hosted) nameserver passed along by DHCP or specified in a wifi profile, in favor of Google's own public nameservers. The only other option is to enable "Private DNS" (DNS over HTTPS, or DoH) in the global network settings for your devices. The stated reason for this are easy to understand: to avoid compromising security or privacy when connecting to random wifi networks. But we all know there's more to it than that. The most charitable explanation would be that Google (and others, including Mozilla) is fixated on getting everyone on DoH, even at the cost of frustrating we few peasants who want to run our own local DNS. Let them eat cake.

There are a few alternatives available to those of us who would like to address local hosts and services on our home networks by name, rather than IP address:

  1. Apple mDNS. Like Microsoft's legacy WINS, mDNS still isn't very reliable and won't work for hosts and device
@plembo
plembo / useicsp.md
Last active March 2, 2025 21:11
icsp ics to tsv converter in bash

icsp: a ICS to TSV converter

Alexandre Lotte, the author of icsp describes it as a "Small, fast and simple command-line tool to conver calendar exports (.ics files) into TSV/CSV files for easy analysis and usage in broader use-cases."

And so it is.

I had accidentally imported a holiday calendar into my default Proton Calendar, when I realized two very horrible things: (1) I had no backup; and (2) no one really provides tools for removing entries from calendars in bulk. Later, I would add "Proton Calendar doesn't have a versioning system". But then, no one else does either.

I was screwed.

A few minutes (OK, about a half hour) of searching the Internet, and I found icsp: which turned out to be everything its author wrote that it is.

@plembo
plembo / onenonrootpodman.md
Last active April 28, 2025 18:25
One non-root podman user to rule them all

One (non-root) podman account to rule them all

NOTE: This was written while experimenting with using podman in lieu of docker. But please be aware that not all docker solutions are compatible with podman, and some may still require root even under podman.

Going rootless is one of the main reasons for switching to podman. But if you're running shared services on server for internal users and don't want a separate account for each app, creating a special (non-privileged) account for all pods may be the answer.

This work was done on Ubuntu 22.04 LTS using the shipping Ubuntu package for podman (podman-3.4.4+ds1-1ubuntu1).

Prerequisites

Install podman and enable the podman.socket service (I'm using the version in my distro's official repository):